)]}'
{"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"f576b5ee6f9218b9c7dd7ab6357e20d3a08fb3b7","unresolved":false,"context_lines":[{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def _make_stats_query(self, sample_filter, groupby, aggregate):"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        select \u003d ["},{"line_number":690,"context_line":"            models.Meter.unit,"},{"line_number":691,"context_line":"            func.min(models.Sample.timestamp).label(\u0027tsmin\u0027),"},{"line_number":692,"context_line":"            func.max(models.Sample.timestamp).label(\u0027tsmax\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FOU0%3D","line":689,"updated":"2014-03-07 14:10:55.000000000","message":"There is a MeterSample helper model, which has counter_unit. IIUC, it would be better to use that helper model instead of the join below.","commit_id":"01c05d5f3f3bc88f238bb08e8edfc68fd9a8a00c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"80baa683af99b86d65d7048f73241bd4ab9b5bd0","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        if groupby:"},{"line_number":706,"context_line":"            query \u003d query.group_by(*group_attributes)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"        return make_query_from_filter(session, query, sample_filter)"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"    @staticmethod"},{"line_number":711,"context_line":"    def _stats_result_aggregates(result, aggregate):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FNRw%3D","line":708,"updated":"2014-03-07 16:28:49.000000000","message":"so apparently the sample_filter works fine against the original query in sqlite... (see https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/storage/test_storage_scenarios.py#L1157) \n\nit just falls apart when using a real db.\n\ni\u0027ll rewrite this to make it work but i don\u0027t think the tests will actually verify it until we tests against real backend.","commit_id":"01c05d5f3f3bc88f238bb08e8edfc68fd9a8a00c"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"3c34708cf07b96e8d521ae72052533fb04eef839","unresolved":false,"context_lines":[{"line_number":700,"context_line":"            group_attributes \u003d [getattr(models.Sample, g) for g in groupby]"},{"line_number":701,"context_line":"            select.extend(group_attributes)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        query \u003d session.query(*select).filter("},{"line_number":704,"context_line":"            models.Meter.id \u003d\u003d models.Sample.meter_id)"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        if groupby:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FKSo%3D","line":703,"updated":"2014-03-07 23:37:47.000000000","message":"Was this supposed to be a join or is filter correct?","commit_id":"b530bc4fb2c12bc94b34950e450c0d63fb77402f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"46d150e44d59b48ae6e11e108b054d8480560731","unresolved":false,"context_lines":[{"line_number":700,"context_line":"            group_attributes \u003d [getattr(models.Sample, g) for g in groupby]"},{"line_number":701,"context_line":"            select.extend(group_attributes)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        query \u003d session.query(*select).filter("},{"line_number":704,"context_line":"            models.Meter.id \u003d\u003d models.Sample.meter_id)"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        if groupby:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FAzg%3D","line":703,"in_reply_to":"AAAAVn%2F%2FF80%3D","updated":"2014-03-10 18:01:01.000000000","message":"not a bug in sqlite. just a gap in test case and me being an idiot and testing against wrong code.\n\nthe test case i added discovers this bug correctly.","commit_id":"b530bc4fb2c12bc94b34950e450c0d63fb77402f"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"690017c93d54dd0338f4e72864fd313bd0ac448f","unresolved":false,"context_lines":[{"line_number":700,"context_line":"            group_attributes \u003d [getattr(models.Sample, g) for g in groupby]"},{"line_number":701,"context_line":"            select.extend(group_attributes)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        query \u003d session.query(*select).filter("},{"line_number":704,"context_line":"            models.Meter.id \u003d\u003d models.Sample.meter_id)"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        if groupby:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FF80%3D","line":703,"in_reply_to":"AAAAVn%2F%2FKSo%3D","updated":"2014-03-09 23:36:31.000000000","message":"so the session.query(*select) object evaluates to:\n\nselect \u003ccolumns\u003e from meter, sample;\n\nso by default it gives us a cross join implicitly... which is incorrect. for whatever reason, sqlite somehow interprets this as a proper inner join... the statement should have a where/filter clause to properly inner join the two tables.\n\ni\u0027m testing this with a newer sqlite build to see whether it\u0027s a bug.","commit_id":"b530bc4fb2c12bc94b34950e450c0d63fb77402f"}]}
