)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20996,"name":"Avinash Raghavendra","email":"avinash.raghavendra@ericsson.com","username":"eragavi"},"change_message_id":"8ebb4c8284405e33898cf1328b425182ed8e274e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Got error \u0027empty (sub)expression\u0027 from regexp\""},{"line_number":11,"context_line":"from db layer."},{"line_number":12,"context_line":"nova should handle special characters by adding"},{"line_number":13,"context_line":"\u0027\\\u0027 before the \u0027|\u0027 to make db layer accept it."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ice2e21666905fdb76c001195e8fca21b427ea737"},{"line_number":16,"context_line":"Closes-Bug: 1546396"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1af94dfe_1ddd5d0e","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":3},"updated":"2016-03-17 06:47:21.000000000","message":"I dont want to be a stickler here, but you need to update the commit message with \u0027\\\\\u0027 not \u0027\\\u0027. Are you also pending code update to Sharath\u0027s request?","commit_id":"048b52a5739fcbcc4f841daf45c550b5894f1a3e"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"729a7d70984f855c605e08956a2722c5f623f732","unresolved":false,"context_lines":[{"line_number":2282,"context_line":"                                filters, exact_match_filter_names)"},{"line_number":2283,"context_line":"    if query_prefix is None:"},{"line_number":2284,"context_line":"        return []"},{"line_number":2285,"context_line":"    query_prefix \u003d _regex_instance_filter(query_prefix, filters)"},{"line_number":2286,"context_line":"    query_prefix \u003d _tag_instance_filter(context, query_prefix, filters)"},{"line_number":2287,"context_line":""},{"line_number":2288,"context_line":"    # paginate query"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_a62c5a4b","line":2285,"updated":"2016-03-16 08:29:43.000000000","message":"I think this to due regex filter. The error we get from the db was:\n(1139, u\"Got error \u0027empty (sub)expression\u0027 from regexp\")\n\n\nSo you can try this:\nysql\u003e select * from instances where instances.display_name REGEXP \"|\"\n    -\u003e ;\nERROR 1139 (42000): Got error \u0027empty (sub)expression\u0027 from regexp\n\nThe SQL should write like this:\nmysql\u003e select * from instances where instances.display_name REGEXP \"\\\\|\"","commit_id":"33e5a2f83ed1ceb3f443242dc2393159d38a96f3"},{"author":{"_account_id":18675,"name":"Sharath Rao","email":"sharath.rao@ericsson.com","username":"sharath.rao"},"change_message_id":"6becc035e42f7f9f441f11c555f0e78aa021cf18","unresolved":false,"context_lines":[{"line_number":2190,"context_line":"            filter_val \u003d str(filter_val)"},{"line_number":2191,"context_line":"        if db_regexp_op \u003d\u003d \u0027LIKE\u0027:"},{"line_number":2192,"context_line":"            query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":2193,"context_line":"                                 u\u0027%\u0027 + filter_val + u\u0027%\u0027))"},{"line_number":2194,"context_line":"        else:"},{"line_number":2195,"context_line":"            filter_val \u003d _replace_sub_expression(filter_val)"},{"line_number":2196,"context_line":"            query \u003d query.filter(column_attr.op(db_regexp_op)("}],"source_content_type":"text/x-python","patch_set":4,"id":"1af94dfe_e6cbd4a3","line":2193,"range":{"start_line":2193,"start_character":40,"end_line":2193,"end_character":50},"updated":"2016-03-16 20:41:44.000000000","message":"So we do not need to change the filter_val in this instance?","commit_id":"048b52a5739fcbcc4f841daf45c550b5894f1a3e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5f00ba0b216a4e6b76bdde19e9448a0c986e70f3","unresolved":false,"context_lines":[{"line_number":2190,"context_line":"            filter_val \u003d str(filter_val)"},{"line_number":2191,"context_line":"        if db_regexp_op \u003d\u003d \u0027LIKE\u0027:"},{"line_number":2192,"context_line":"            query \u003d query.filter(column_attr.op(db_regexp_op)("},{"line_number":2193,"context_line":"                                 u\u0027%\u0027 + filter_val + u\u0027%\u0027))"},{"line_number":2194,"context_line":"        else:"},{"line_number":2195,"context_line":"            filter_val \u003d _replace_sub_expression(filter_val)"},{"line_number":2196,"context_line":"            query \u003d query.filter(column_attr.op(db_regexp_op)("}],"source_content_type":"text/x-python","patch_set":4,"id":"1af94dfe_912a087d","line":2193,"range":{"start_line":2193,"start_character":40,"end_line":2193,"end_character":50},"in_reply_to":"1af94dfe_e6cbd4a3","updated":"2016-03-16 20:58:21.000000000","message":"yes, the problem only occurs in REGEX,\nmaybe I will shrink this to mysql only ...","commit_id":"048b52a5739fcbcc4f841daf45c550b5894f1a3e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"86aac23bc38134b48d79a0a0a5ea7090434eb264","unresolved":false,"context_lines":[{"line_number":2501,"context_line":"    things, however, one can argue putting such complicated regex into"},{"line_number":2502,"context_line":"    name search probably means you are doing this wrong."},{"line_number":2503,"context_line":"    \"\"\""},{"line_number":2504,"context_line":"    return raw_string.sub(\u0027|\u0027, \u0027\\\\|\u0027)"},{"line_number":2505,"context_line":""},{"line_number":2506,"context_line":""},{"line_number":2507,"context_line":"def _get_regexp_ops():"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_3eb47633","line":2504,"range":{"start_line":2504,"start_character":22,"end_line":2504,"end_character":25},"updated":"2016-04-26 18:20:54.000000000","message":"do we need to consider special case like |a, a|, |a|?","commit_id":"c63e616d49eeb368ccbbd1a5f44567d8e909160a"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bfa8f42ea92536fd22b60ae4163f443ab7dfcf44","unresolved":false,"context_lines":[{"line_number":2499,"context_line":"    support something like foo|bar to match completely different"},{"line_number":2500,"context_line":"    things, however, one can argue putting such complicated regex into"},{"line_number":2501,"context_line":"    name search probably means you are doing this wrong."},{"line_number":2502,"context_line":"    \"\"\""},{"line_number":2503,"context_line":"    ret \u003d copy.copy(raw_string)"},{"line_number":2504,"context_line":"    if raw_string[0] \u003d\u003d \u0027|\u0027:"},{"line_number":2505,"context_line":"        ret \u003d \u0027\\\\|\u0027 + ret[1:]"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_1eeab174","line":2502,"updated":"2016-05-03 15:17:51.000000000","message":"this comment no longer reflects the code. I pretty much don\u0027t think we should let raw | into the regex engine, as it is just pretty nutty.","commit_id":"63c6b8844334cafb8567f2e60a6ff5bfbd830eeb"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bfa8f42ea92536fd22b60ae4163f443ab7dfcf44","unresolved":false,"context_lines":[{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":""},{"line_number":2527,"context_line":"def _regex_instance_filter(query, filters):"},{"line_number":2528,"context_line":""},{"line_number":2529,"context_line":"    \"\"\"Applies regular expression filtering to an Instance query."},{"line_number":2530,"context_line":""},{"line_number":2531,"context_line":"    Returns the updated query."}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_3e9e8d07","line":2528,"updated":"2016-05-03 15:17:51.000000000","message":"nit: extra space, I think I screwed that one up in my patch","commit_id":"63c6b8844334cafb8567f2e60a6ff5bfbd830eeb"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":9581,"name":"Ren Qiaowei","email":"qiaowei.ren@intel.com","username":"qiaowei"},"change_message_id":"58c839c4c46eb644224c62d5bb5f46081966d26c","unresolved":false,"context_lines":[{"line_number":1214,"context_line":"                              sort_keys\u003dkeys)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    @mock.patch.object(query.Query, \u0027all\u0027)"},{"line_number":1217,"context_line":"    def test_instance_get_all_by_filters_filter_invalid(self, mock_all):"},{"line_number":1218,"context_line":"        mock_all.side_effect \u003d db_exc.DBError"},{"line_number":1219,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":1220,"context_line":"                          db.instance_get_all_by_filters_sort,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_20e4ea0b","line":1217,"range":{"start_line":1217,"start_character":8,"end_line":1217,"end_character":55},"updated":"2016-02-19 08:43:08.000000000","message":"looks like that \"test_instance_get_all_by_filters_sort_filter_invalid\" will be better. ^-^","commit_id":"6274f605862e7bfa53e549a125c9a7d2df2a7a4f"}]}
