)]}'
{"oslo/db/exception.py":[{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"04c18cbbd7a507ef60496f2fcc269d19b6dc61ed","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    \"\"\"Error raised when no column or an invalid column is found.\"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class ConstraintNotFound(DBError):"},{"line_number":79,"context_line":"    \"\"\"Wraps an error due to a missing constraing.\"\"\""},{"line_number":80,"context_line":"    def __init__(self, constraint, relation, inner_exception):"},{"line_number":81,"context_line":"        super(ConstraintNotFound, self).__init__(inner_exception)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_5ffb71bd","line":78,"updated":"2014-07-25 16:56:33.000000000","message":"I remain concerned that some backends will not allow us to discern an \"object not found\" from \"constraint not found\" hence I\u0027d still prefer that ConstraintNotFound descend from SchemaObjectFound, which is then descended from DBError.","commit_id":"622d53b10e1282ca8ed608452fa3762b95317585"}],"oslo/db/sqlalchemy/exc_filters.py":[{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"04c18cbbd7a507ef60496f2fcc269d19b6dc61ed","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"@filters(\"postgresql\", sqla_exc.ProgrammingError,"},{"line_number":231,"context_line":"         r\u0027.*constraint \"([^\"]+)\" of relation \"([^\"]+)\" does not exist.*\u0027)"},{"line_number":232,"context_line":"def _raise_constraint_not_found(error, match, engine_name, is_disconnect):"},{"line_number":233,"context_line":"    \"\"\"Filter for postgresql constraint does not exist."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    Messages have the structure:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_1f6e5996","line":232,"updated":"2014-07-25 16:56:33.000000000","message":"this needs to catch the appropriate OperationalError as well.  Also this will ultimately be for all backends so \"Filter for constraint does not exist\".","commit_id":"622d53b10e1282ca8ed608452fa3762b95317585"}]}
