)]}'
{"oslo_db/sqlalchemy/utils.py":[{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"74f2b2d28f840bd2a97941116b395e73ab89fc65","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"# copy from glance/db/sqlalchemy/api.py"},{"line_number":140,"context_line":"def paginate_query(query, model, limit, sort_keys, marker\u003dNone,"},{"line_number":141,"context_line":"                   sort_dir\u003dNone, sort_dirs\u003dNone, asso_model\u003dNone):"},{"line_number":142,"context_line":"    \"\"\"Returns a query with sorting / pagination criteria added."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    Pagination works by requiring a unique sort_key, specified by sort_keys."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_e0cf6827","line":141,"updated":"2017-02-09 16:47:34.000000000","message":"Hmm, do we really need this? I mean, can\u0027t we use http://docs.sqlalchemy.org/en/latest/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.target_class attribute instead?","commit_id":"05b28b127ac182618c75bcac32fe8b9cd59b39fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"74f2b2d28f840bd2a97941116b395e73ab89fc65","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                    if isinstance("},{"line_number":238,"context_line":"                            model_attr,"},{"line_number":239,"context_line":"                            ass_pro.AssociationProxy) and asso_model:"},{"line_number":240,"context_line":"                        model_attr \u003d getattr(asso_model, sort_keys[j])"},{"line_number":241,"context_line":"                    attr \u003d sql_ex.case(["},{"line_number":242,"context_line":"                        (sql_ex.false() if model_attr is None"},{"line_number":243,"context_line":"                         else sql_ex.true(), model_attr), ])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_e0e688af","line":240,"updated":"2017-02-09 16:47:34.000000000","message":"this could probably be\n  if isinstance(model_attr, ass_pro.AssociationProxy):\n      model_attr \u003d model_attr.remote_attr","commit_id":"05b28b127ac182618c75bcac32fe8b9cd59b39fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"74f2b2d28f840bd2a97941116b395e73ab89fc65","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                            model_attr,"},{"line_number":239,"context_line":"                            ass_pro.AssociationProxy) and asso_model:"},{"line_number":240,"context_line":"                        model_attr \u003d getattr(asso_model, sort_keys[j])"},{"line_number":241,"context_line":"                    attr \u003d sql_ex.case(["},{"line_number":242,"context_line":"                        (sql_ex.false() if model_attr is None"},{"line_number":243,"context_line":"                         else sql_ex.true(), model_attr), ])"},{"line_number":244,"context_line":"                    crit_attrs.append((attr \u003d\u003d marker_values[j]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a430d35_00bab46e","line":241,"updated":"2017-02-09 16:47:34.000000000","message":"I\u0027m not sure I\u0027m following. If this is an another table, how can we refer to its column values without JOIN\u0027ining first?","commit_id":"05b28b127ac182618c75bcac32fe8b9cd59b39fe"}]}
