)]}'
{"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"e6a7909eed02fdbd2546c6f47a97a08fa79a80ff","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                 \"\u003e\u003d\": operator.ge,"},{"line_number":185,"context_line":"                 \"\u003d\u003e\": operator.ge,"},{"line_number":186,"context_line":"                 \"!\u003d\": operator.ne,"},{"line_number":187,"context_line":"                 \"in\": operator_in}"},{"line_number":188,"context_line":"    complex_operators \u003d {\"or\": or_,"},{"line_number":189,"context_line":"                         \"and\": and_}"},{"line_number":190,"context_line":"    ordering_functions \u003d {\"asc\": asc,"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2BigM%3D","line":187,"updated":"2014-02-20 16:29:02.000000000","message":"Did you try operator.contains?","commit_id":"6ce311d0009baa787d745acad37c2749071a94b1"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"dd157af8e650e8800b405e8536e15ad81def52f5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                 \"\u003e\u003d\": operator.ge,"},{"line_number":185,"context_line":"                 \"\u003d\u003e\": operator.ge,"},{"line_number":186,"context_line":"                 \"!\u003d\": operator.ne,"},{"line_number":187,"context_line":"                 \"in\": operator_in}"},{"line_number":188,"context_line":"    complex_operators \u003d {\"or\": or_,"},{"line_number":189,"context_line":"                         \"and\": and_}"},{"line_number":190,"context_line":"    ordering_functions \u003d {\"asc\": asc,"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2BaRU%3D","line":187,"in_reply_to":"AAAAUX%2F%2Bcic%3D","updated":"2014-02-21 10:30:41.000000000","message":"In case of the \u0027in\u0027 operator, it can be transformed to an expression, which uses the \u0027or\u0027 relation as it was asked earlier by Gordon. It is also a fact that not every feature is supported by every database backend, but as this clause can be replaced, I think it is not that risky and also this feature was the initial one, from which the whole complex query idea came out (first version of this was: bp  improving-ceilometer-api-query-filtering).\n\nAs for operator.contains, it can be discussed, if it is really needed or not.","commit_id":"6ce311d0009baa787d745acad37c2749071a94b1"},{"author":{"_account_id":6230,"name":"Rob Raymond","email":"rob.raymond@hp.com","username":"rob-raymond"},"change_message_id":"c3de652f77c143e7a685dc26899628050740b4b4","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                 \"\u003e\u003d\": operator.ge,"},{"line_number":185,"context_line":"                 \"\u003d\u003e\": operator.ge,"},{"line_number":186,"context_line":"                 \"!\u003d\": operator.ne,"},{"line_number":187,"context_line":"                 \"in\": operator_in}"},{"line_number":188,"context_line":"    complex_operators \u003d {\"or\": or_,"},{"line_number":189,"context_line":"                         \"and\": and_}"},{"line_number":190,"context_line":"    ordering_functions \u003d {\"asc\": asc,"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2Bcic%3D","line":187,"in_reply_to":"AAAAUX%2F%2BiJY%3D","updated":"2014-02-21 04:29:33.000000000","message":"I am nervous of exposing query language features based on what is available from sqlalchemy or any database. I would prefer to take a more cautious approach of exposing the minimal set of features until there is a clear need. The risk of course is that the API support is tied to the database implementation.","commit_id":"6ce311d0009baa787d745acad37c2749071a94b1"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"3a0db99ccb20f20ebf63d184493f040be7f220d6","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                 \"\u003e\u003d\": operator.ge,"},{"line_number":185,"context_line":"                 \"\u003d\u003e\": operator.ge,"},{"line_number":186,"context_line":"                 \"!\u003d\": operator.ne,"},{"line_number":187,"context_line":"                 \"in\": operator_in}"},{"line_number":188,"context_line":"    complex_operators \u003d {\"or\": or_,"},{"line_number":189,"context_line":"                         \"and\": and_}"},{"line_number":190,"context_line":"    ordering_functions \u003d {\"asc\": asc,"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUX%2F%2BiJY%3D","line":187,"in_reply_to":"AAAAUX%2F%2BigM%3D","updated":"2014-02-20 17:04:05.000000000","message":"Actually not, but it implements a different functionality, than what we need here.\n\nWe need the information, if the value of a field is contained in the list of values, specified for the in operator or not. It replaces several or clauses, which check it one by one.\n\nThe operator.contains checks string containment according to the specification in the SQLAlchemy doc: http://docs.sqlalchemy.org/en/rel_0_8/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.contains\n\nIt is a valid feature and it also can be implemented in MongoDB too, so we will add it in a separate patch, thanks for the idea.","commit_id":"6ce311d0009baa787d745acad37c2749071a94b1"}],"ceilometer/tests/api/v2/test_complex_query_scenarios.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"76e2112fb0ba8609930c71b1b41d29652e45171b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        super(TestQueryMetersController, self).setUp()"},{"line_number":50,"context_line":"        self.url \u003d \u0027/query/samples\u0027"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        for cnt in ["},{"line_number":53,"context_line":"            sample.Sample(\u0027meter.test\u0027,"},{"line_number":54,"context_line":"                          \u0027cumulative\u0027,"},{"line_number":55,"context_line":"                          \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2FnJk%3D","line":52,"updated":"2014-02-25 17:21:18.000000000","message":"can we add one more sample. there\u0027s a few query below which filter on both samples... adding additional sample makes sure it\u0027s actually filtering and not just returning the entire set.","commit_id":"6ce311d0009baa787d745acad37c2749071a94b1"}]}
