)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b74dd6b245ccc4364774ac1df736cd446dca66b9","unresolved":false,"context_lines":[{"line_number":5838,"context_line":"    metadata \u003d MetaData()"},{"line_number":5839,"context_line":"    metadata.bind \u003d engine"},{"line_number":5840,"context_line":"    table \u003d Table(tablename, metadata, autoload\u003dTrue)"},{"line_number":5841,"context_line":"    default_deleted_value \u003d _get_default_deleted_value(table)"},{"line_number":5842,"context_line":"    shadow_tablename \u003d _SHADOW_TABLE_PREFIX + tablename"},{"line_number":5843,"context_line":"    rows_archived \u003d 0"},{"line_number":5844,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_baa8078d","side":"PARENT","line":5841,"updated":"2015-03-13 17:21:09.000000000","message":"NO. This is important and removing this causes the regression.","commit_id":"b6e7a8f6b239f99c445576feac170f19dc7c429e"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"41d868da5bcbd4e45817358d9e18eaab22f767ba","unresolved":false,"context_lines":[{"line_number":5837,"context_line":"    conn \u003d engine.connect()"},{"line_number":5838,"context_line":"    metadata \u003d MetaData()"},{"line_number":5839,"context_line":"    metadata.bind \u003d engine"},{"line_number":5840,"context_line":"    table \u003d models.BASE.metadata.tables[tablename]"},{"line_number":5841,"context_line":""},{"line_number":5842,"context_line":"    shadow_tablename \u003d _SHADOW_TABLE_PREFIX + tablename"},{"line_number":5843,"context_line":"    rows_archived \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_aead2c86","line":5840,"updated":"2015-03-13 17:46:32.000000000","message":"this is exactly what I wanted to do.","commit_id":"d1f93e4747615d5a70c15fded827be11594dd6eb"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"41d868da5bcbd4e45817358d9e18eaab22f767ba","unresolved":false,"context_lines":[{"line_number":5857,"context_line":"    # database\u0027s limit of maximum parameter in one SQL statement."},{"line_number":5858,"context_line":"    deleted_column \u003d table.c.deleted"},{"line_number":5859,"context_line":"    columns \u003d [c.name for c in table.c]"},{"line_number":5860,"context_line":"    insert \u003d shadow_table.insert(inline\u003dTrue).\\"},{"line_number":5861,"context_line":"        from_select(columns,"},{"line_number":5862,"context_line":"                    sql.select([table],"},{"line_number":5863,"context_line":"                               deleted_column !\u003d deleted_column.default.arg)."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_2ee21ca0","line":5860,"updated":"2015-03-13 17:46:32.000000000","message":"here\u0027s where it didn\u0027t work for me - the list of columns from the \"model\" table did not match the ordering from what was reflected from the \"shadow\" tables, and I didn\u0027t want to get into reworking that just to fix the issue.  But yeah you\u0027re using insert().from_select() directly and feeding in the same names into the from_select() so this is great!","commit_id":"d1f93e4747615d5a70c15fded827be11594dd6eb"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"41d868da5bcbd4e45817358d9e18eaab22f767ba","unresolved":false,"context_lines":[{"line_number":5860,"context_line":"    insert \u003d shadow_table.insert(inline\u003dTrue).\\"},{"line_number":5861,"context_line":"        from_select(columns,"},{"line_number":5862,"context_line":"                    sql.select([table],"},{"line_number":5863,"context_line":"                               deleted_column !\u003d deleted_column.default.arg)."},{"line_number":5864,"context_line":"                    order_by(column).limit(max_rows))"},{"line_number":5865,"context_line":"    query_delete \u003d sql.select([column],"},{"line_number":5866,"context_line":"                          deleted_column !\u003d deleted_column.default.arg).\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_4eecb0bb","line":5863,"updated":"2015-03-13 17:46:32.000000000","message":"this is also good, because this is now the table from \"models\" (also what I wanted to do!)","commit_id":"d1f93e4747615d5a70c15fded827be11594dd6eb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d14a69b027e8ac4a2655136ad482c876c7bdfc0","unresolved":false,"context_lines":[{"line_number":5839,"context_line":"    metadata.bind \u003d engine"},{"line_number":5840,"context_line":"    # NOTE(tdurakov): table metadata should be received"},{"line_number":5841,"context_line":"    # from models, not db tables. Default value specified by SoftDeleteMixin"},{"line_number":5842,"context_line":"    # is known only by models, not DB layer."},{"line_number":5843,"context_line":"    # IMPORTANT: please do not change source of metadata information for table."},{"line_number":5844,"context_line":"    table \u003d models.BASE.metadata.tables[tablename]"},{"line_number":5845,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_9cadb135","line":5842,"updated":"2015-03-16 19:28:18.000000000","message":"I\u0027m not entirely sure what you mean by \"from models, not db tables\". Below, you are using the table objects from the SA MetaData object. Those aren\u0027t the models. Is that what you meant to say here?","commit_id":"fa2a6afe7639726fad201a51832b8fcb06c95a75"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"92fa33b5d3fc2345c3a5ae08aa02ea4c7f5a3e0b","unresolved":false,"context_lines":[{"line_number":5839,"context_line":"    metadata.bind \u003d engine"},{"line_number":5840,"context_line":"    # NOTE(tdurakov): table metadata should be received"},{"line_number":5841,"context_line":"    # from models, not db tables. Default value specified by SoftDeleteMixin"},{"line_number":5842,"context_line":"    # is known only by models, not DB layer."},{"line_number":5843,"context_line":"    # IMPORTANT: please do not change source of metadata information for table."},{"line_number":5844,"context_line":"    table \u003d models.BASE.metadata.tables[tablename]"},{"line_number":5845,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_309949d1","line":5842,"in_reply_to":"9a80dd14_9cadb135","updated":"2015-03-16 19:30:33.000000000","message":"i believe the comment means the Table metadata from the model as opposed to querying the \"SHOW CREATE TABLE\" or information schema data.","commit_id":"fa2a6afe7639726fad201a51832b8fcb06c95a75"}]}
