)]}'
{"mistral/db/v2/sqlalchemy/api.py":[{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"ba625ba7aefa3a5f4f1a0256e433b1b653ebfe44","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    sort_keys \u003d sort_keys if sort_keys else []"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    if \u0027id\u0027 not in sort_keys:"},{"line_number":150,"context_line":"        sort_keys.append(\u0027id\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    query \u003d db_utils.paginate_query("},{"line_number":153,"context_line":"        query,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_a6f11f98","line":150,"updated":"2016-07-22 10:37:57.000000000","message":"if \u0027id\u0027 is added here, the length of sort_keys and sort_dirs are different. that\u0027s why error happened here: http://paste.openstack.org/show/539682/","commit_id":"f7eab6328330ab9b6e1d44d33d3079cf72de1365"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"ea41f76cd3412de3dd61eb3d238b038e3d5fc421","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        query \u003d query.filter(expr)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    if marker or limit:"},{"line_number":197,"context_line":"        # Paginate query only if query set is limited."},{"line_number":198,"context_line":"        query \u003d _paginate_query("},{"line_number":199,"context_line":"            model,"},{"line_number":200,"context_line":"            limit,"},{"line_number":201,"context_line":"            marker,"},{"line_number":202,"context_line":"            sort_keys,"},{"line_number":203,"context_line":"            sort_dirs,"},{"line_number":204,"context_line":"            query"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    try:"},{"line_number":208,"context_line":"        return query.all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_60774f02","line":205,"range":{"start_line":196,"start_character":4,"end_line":205,"end_character":9},"updated":"2016-07-21 09:57:35.000000000","message":"Should this also be inside \u0027try\u0027 block?","commit_id":"f7eab6328330ab9b6e1d44d33d3079cf72de1365"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d98d455b74c577b7b23a6c7a99567d9bb323ca9d","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        query \u003d query.filter(expr)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    if marker or limit:"},{"line_number":197,"context_line":"        # Paginate query only if query set is limited."},{"line_number":198,"context_line":"        query \u003d _paginate_query("},{"line_number":199,"context_line":"            model,"},{"line_number":200,"context_line":"            limit,"},{"line_number":201,"context_line":"            marker,"},{"line_number":202,"context_line":"            sort_keys,"},{"line_number":203,"context_line":"            sort_dirs,"},{"line_number":204,"context_line":"            query"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    try:"},{"line_number":208,"context_line":"        return query.all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_b29fa664","line":205,"range":{"start_line":196,"start_character":4,"end_line":205,"end_character":9},"in_reply_to":"dada55a8_60774f02","updated":"2016-07-22 08:00:12.000000000","message":"Good question. I\u0027m glad you noticed this change.\n\nThe answer is \"no\". The logic here why I excluded it from try-except is the following: _paginate_query doesn\u0027t hit a database, it\u0027s a query statement preparation step, hence if something goes wrong here it indicates an unhandled error (something is wrong in the app logic itself and it should be fixed) whereas query.all() hits a database and errors from there will indicate real DB errors.","commit_id":"f7eab6328330ab9b6e1d44d33d3079cf72de1365"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"0f28ff50aecc5c8252142cdfa9c545c2991519b3","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        query \u003d query.filter(expr)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    if marker or limit:"},{"line_number":197,"context_line":"        # Paginate query only if query set is limited."},{"line_number":198,"context_line":"        query \u003d _paginate_query("},{"line_number":199,"context_line":"            model,"},{"line_number":200,"context_line":"            limit,"},{"line_number":201,"context_line":"            marker,"},{"line_number":202,"context_line":"            sort_keys,"},{"line_number":203,"context_line":"            sort_dirs,"},{"line_number":204,"context_line":"            query"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    try:"},{"line_number":208,"context_line":"        return query.all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_52546a20","line":205,"range":{"start_line":196,"start_character":4,"end_line":205,"end_character":9},"in_reply_to":"dada55a8_b29fa664","updated":"2016-07-22 08:08:54.000000000","message":"OK. Thanks for the explanation.","commit_id":"f7eab6328330ab9b6e1d44d33d3079cf72de1365"}]}
