)]}'
{"keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"df8d9507c327e9ee42b72982349d049f00bab224","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    role_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    if migrate_engine.name \u003d\u003d \u0027ibm_db_sa\u0027:"},{"line_number":58,"context_line":"        # NOTE(blk-u): SQLAlchemy for PostgreSQL picks the name tenant_name_key"},{"line_number":59,"context_line":"        # for the unique constraint, but for DB2 doesn\u0027t give the UC a name"},{"line_number":60,"context_line":"        # unless we tell it to and there is no DDL to alter a column to drop"},{"line_number":61,"context_line":"        # an unnamed unique constraint, so this code creates a named unique"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAPn%2F%2Fgsc%3D","line":58,"updated":"2013-06-28 20:02:39.000000000","message":"nice comments!","commit_id":"f993a3898adfb864ca55a591e68d80bca3c02850"}],"keystone/common/sql/migration_helpers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"589396660f5ba006a072ec32c1b8a481f99619f2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    This works on databases that don\u0027t support renaming tables that have"},{"line_number":68,"context_line":"    constraints on them (DB2)."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    `renames` is a dict, mapping {\u0027to_table_name\u0027: from_Table, ...}"},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    if engine.name !\u003d \u0027sqlite\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FmwE%3D","line":70,"updated":"2013-06-26 21:17:16.000000000","message":"accidental backwards camel_Case?","commit_id":"d4e94f09ca0e97732f515ada39375b7082d63e03"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6e37618a55df96efc97d3ca65c5072fb8eb1da90","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    This works on databases that don\u0027t support renaming tables that have"},{"line_number":68,"context_line":"    constraints on them (DB2)."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    `renames` is a dict, mapping {\u0027to_table_name\u0027: from_Table, ...}"},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    if engine.name !\u003d \u0027sqlite\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FhEo%3D","line":70,"in_reply_to":"AAAAPn%2F%2FmwE%3D","updated":"2013-06-28 22:39:19.000000000","message":"Done","commit_id":"d4e94f09ca0e97732f515ada39375b7082d63e03"}],"tests/test_sql_upgrade.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"589396660f5ba006a072ec32c1b8a481f99619f2","unresolved":false,"context_lines":[{"line_number":600,"context_line":""},{"line_number":601,"context_line":"        if self.metadata.bind.engine.name \u003d\u003d \u0027ibm_db_sa\u0027:"},{"line_number":602,"context_line":"            # For DB2, need quotes around name to prevent normalizing."},{"line_number":603,"context_line":"            data_col \u003d \u0027\"data\"\u0027"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        r \u003d session.execute(\u0027select \u0027 + data_col + \u0027 from metadata where \u0027"},{"line_number":606,"context_line":"                            \u0027user_id\u003d:user and tenant_id\u003d:tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2Fmvo%3D","line":603,"updated":"2013-06-26 21:17:16.000000000","message":"can we not just use `data` (backticks) for all db\u0027s?","commit_id":"d4e94f09ca0e97732f515ada39375b7082d63e03"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6e37618a55df96efc97d3ca65c5072fb8eb1da90","unresolved":false,"context_lines":[{"line_number":600,"context_line":""},{"line_number":601,"context_line":"        if self.metadata.bind.engine.name \u003d\u003d \u0027ibm_db_sa\u0027:"},{"line_number":602,"context_line":"            # For DB2, need quotes around name to prevent normalizing."},{"line_number":603,"context_line":"            data_col \u003d \u0027\"data\"\u0027"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        r \u003d session.execute(\u0027select \u0027 + data_col + \u0027 from metadata where \u0027"},{"line_number":606,"context_line":"                            \u0027user_id\u003d:user and tenant_id\u003d:tenant\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FgcM%3D","line":603,"in_reply_to":"AAAAPn%2F%2Fmvo%3D","updated":"2013-06-28 22:39:19.000000000","message":"Done. I switched to using SQLAlchemy\u0027s queries rather than SQL.\n\n`data` doesn\u0027t work for DB2, it says that the ` is not valid where it\u0027s used.","commit_id":"d4e94f09ca0e97732f515ada39375b7082d63e03"}]}
