)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2b42196188c931f2901ba93f94fa24a9ca62429b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"There are 2 methods:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"utils.change_deleted_column_type_to_id_type() method"},{"line_number":15,"context_line":"This method change type of `deleted` column from Boolen to"},{"line_number":16,"context_line":"type of `id`. This method allows us to do it in generic way"},{"line_number":17,"context_line":"for all backends. It fix problem with sqlite, that doesn\u0027t"},{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FXOc%3D","line":15,"updated":"2013-05-13 15:55:30.000000000","message":"s/Boolen/Boolean/","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":12,"context_line":"There are 2 methods:"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"utils.change_deleted_column_type_to_id_type() method"},{"line_number":15,"context_line":"This method change type of `deleted` column from Boolen to"},{"line_number":16,"context_line":"type of `id`. This method allows us to do it in generic way"},{"line_number":17,"context_line":"for all backends. It fix problem with sqlite, that doesn\u0027t"},{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FW4k%3D","line":15,"in_reply_to":"AAAAOn%2F%2FXOc%3D","updated":"2013-05-22 16:06:42.000000000","message":"Done","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2b42196188c931f2901ba93f94fa24a9ca62429b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"type of `id`. This method allows us to do it in generic way"},{"line_number":17,"context_line":"for all backends. It fix problem with sqlite, that doesn\u0027t"},{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."},{"line_number":19,"context_line":"And columns with BoolenConstraints have CheckConstraints"},{"line_number":20,"context_line":"(value in (0, 1)). So for sqlite it works through shadow tables."},{"line_number":21,"context_line":"For others dbs it works throuhg alter table."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FXOY%3D","line":19,"updated":"2013-05-13 15:55:30.000000000","message":"Boolean","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":16,"context_line":"type of `id`. This method allows us to do it in generic way"},{"line_number":17,"context_line":"for all backends. It fix problem with sqlite, that doesn\u0027t"},{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."},{"line_number":19,"context_line":"And columns with BoolenConstraints have CheckConstraints"},{"line_number":20,"context_line":"(value in (0, 1)). So for sqlite it works through shadow tables."},{"line_number":21,"context_line":"For others dbs it works throuhg alter table."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FW4g%3D","line":19,"in_reply_to":"AAAAOn%2F%2FXOY%3D","updated":"2013-05-22 16:06:42.000000000","message":"Done","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2b42196188c931f2901ba93f94fa24a9ca62429b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."},{"line_number":19,"context_line":"And columns with BoolenConstraints have CheckConstraints"},{"line_number":20,"context_line":"(value in (0, 1)). So for sqlite it works through shadow tables."},{"line_number":21,"context_line":"For others dbs it works throuhg alter table."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"utils.change_deleted_column_type_to_boolean_type() methods"},{"line_number":24,"context_line":"This method allows us to revert result of previous method."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FXOU%3D","line":21,"updated":"2013-05-13 15:55:30.000000000","message":"through","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":18,"context_line":"allow any operation with columns that have CheckConstraints."},{"line_number":19,"context_line":"And columns with BoolenConstraints have CheckConstraints"},{"line_number":20,"context_line":"(value in (0, 1)). So for sqlite it works through shadow tables."},{"line_number":21,"context_line":"For others dbs it works throuhg alter table."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"utils.change_deleted_column_type_to_boolean_type() methods"},{"line_number":24,"context_line":"This method allows us to revert result of previous method."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAOn%2F%2FW4c%3D","line":21,"in_reply_to":"AAAAOn%2F%2FXOU%3D","updated":"2013-05-22 16:06:42.000000000","message":"Done","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"}],"nova/db/sqlalchemy/utils.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da1a3766f032c1d2b17107b7b308f7767c8c59dd","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            execute()"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    table.c.deleted.drop()"},{"line_number":297,"context_line":"    table.c.old_deleted.alter(name\u003d\"deleted\")"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"def _change_deleted_column_type_to_boolean_sqlite(migrate_engine, table_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FXCI%3D","line":297,"updated":"2013-05-13 17:19:59.000000000","message":"We also need to add the new column to any compound indexes which contained the dropped column... We all missed this in the reviews a while back, and Nova is missing several indexes now. Let\u0027s not repeat that mistake :)","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            execute()"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    table.c.deleted.drop()"},{"line_number":297,"context_line":"    table.c.old_deleted.alter(name\u003d\"deleted\")"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"def _change_deleted_column_type_to_boolean_sqlite(migrate_engine, table_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FzuQ%3D","line":297,"in_reply_to":"AAAAOn%2F%2FXCI%3D","updated":"2013-05-22 16:06:42.000000000","message":"done, thanks","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da1a3766f032c1d2b17107b7b308f7767c8c59dd","unresolved":false,"context_lines":[{"line_number":369,"context_line":"            values(new_deleted\u003dtable.c.id).\\"},{"line_number":370,"context_line":"            execute()"},{"line_number":371,"context_line":"    table.c.deleted.drop()"},{"line_number":372,"context_line":"    table.c.new_deleted.alter(name\u003d\"deleted\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"def _change_deleted_column_type_to_id_type_sqlite(migrate_engine, table_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FXCA%3D","line":372,"updated":"2013-05-13 17:19:59.000000000","message":"Again, since we\u0027re dropping and adding a new column, we need to add that column to any compound indexes that the old column was part of.","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":369,"context_line":"            values(new_deleted\u003dtable.c.id).\\"},{"line_number":370,"context_line":"            execute()"},{"line_number":371,"context_line":"    table.c.deleted.drop()"},{"line_number":372,"context_line":"    table.c.new_deleted.alter(name\u003d\"deleted\")"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"def _change_deleted_column_type_to_id_type_sqlite(migrate_engine, table_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FzuM%3D","line":372,"in_reply_to":"AAAAOn%2F%2FXCA%3D","updated":"2013-05-22 16:06:42.000000000","message":"Done","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"}],"nova/tests/test_migration_utils.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"da1a3766f032c1d2b17107b7b308f7767c8c59dd","unresolved":false,"context_lines":[{"line_number":391,"context_line":"            self.assertRaises(OperationalError,"},{"line_number":392,"context_line":"                              utils.create_shadow_table,"},{"line_number":393,"context_line":"                              engine, table_name\u003dtable_name)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def test_change_deleted_column_type_to_id_type_integer(self):"},{"line_number":396,"context_line":"        table_name \u003d \u0027abc\u0027"},{"line_number":397,"context_line":"        for key, engine in self.engines.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FXBc%3D","line":394,"updated":"2013-05-13 17:19:59.000000000","message":"Should also test the presence of a compound index, eg, with table definition like:\n\n  Column(id)\n  Column(val)\n  Column(deleted)\n  Index(val, deleted)\n\nand ensure the index is still present after the changes.","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"34a7ff95c17424355e53b78259da37f6a5805839","unresolved":false,"context_lines":[{"line_number":391,"context_line":"            self.assertRaises(OperationalError,"},{"line_number":392,"context_line":"                              utils.create_shadow_table,"},{"line_number":393,"context_line":"                              engine, table_name\u003dtable_name)"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def test_change_deleted_column_type_to_id_type_integer(self):"},{"line_number":396,"context_line":"        table_name \u003d \u0027abc\u0027"},{"line_number":397,"context_line":"        for key, engine in self.engines.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FzuA%3D","line":394,"in_reply_to":"AAAAOn%2F%2FXBc%3D","updated":"2013-05-22 16:06:42.000000000","message":"I have add test, but it could be run only locally, not with jenkis. \nBut I check it all, and it works fine.","commit_id":"962a453993011e195fe8d6625b4978028d719c8d"}]}
