)]}'
{"ceilometer/storage/impl_hbase.py":[{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"dcabbd0b617888ac1e08a4f3ecc437e01acd3ef7","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            if source:"},{"line_number":360,"context_line":"                scan_args[\u0027columns\u0027] \u003d [\u0027f:s_%s\u0027 % source]"},{"line_number":361,"context_line":"            return (key for key, ignored in project_table.scan(**scan_args))"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def get_resources(self, user\u003dNone, project\u003dNone, source\u003dNone,"},{"line_number":364,"context_line":"                      start_timestamp\u003dNone, start_timestamp_op\u003dNone,"},{"line_number":365,"context_line":"                      end_timestamp\u003dNone, end_timestamp_op\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_2bb853e4","line":362,"updated":"2014-05-16 08:55:51.000000000","message":"Ilya, could you please create dependency on https://review.openstack.org/#/c/87249/? AFAIU, get_resources will not be changed by your patch in this case","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"610c204f2d6444d27cd25152c53c78f5759feb15","unresolved":false,"context_lines":[{"line_number":489,"context_line":""},{"line_number":490,"context_line":"                d_meter \u003d deserialize_entry(meter)[0]"},{"line_number":491,"context_line":"                d_meter[\u0027message\u0027][\u0027recorded_at\u0027] \u003d d_meter[\u0027recorded_at\u0027]"},{"line_number":492,"context_line":"                a.append(meter.get(\u0027f:user_id\u0027, None))"},{"line_number":493,"context_line":"                yield models.Sample(**d_meter[\u0027message\u0027])"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_b86046a6","line":492,"updated":"2014-05-15 14:33:28.000000000","message":"where is \"a\" ever used?","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"808b607db6cc7c94e0931446c5acf5b687a493af","unresolved":false,"context_lines":[{"line_number":489,"context_line":""},{"line_number":490,"context_line":"                d_meter \u003d deserialize_entry(meter)[0]"},{"line_number":491,"context_line":"                d_meter[\u0027message\u0027][\u0027recorded_at\u0027] \u003d d_meter[\u0027recorded_at\u0027]"},{"line_number":492,"context_line":"                a.append(meter.get(\u0027f:user_id\u0027, None))"},{"line_number":493,"context_line":"                yield models.Sample(**d_meter[\u0027message\u0027])"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_d746ad4e","line":492,"in_reply_to":"7adec928_b86046a6","updated":"2014-05-20 11:23:24.000000000","message":"Sorry, this variable are used for debug. I\u0027ll remove it","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"fae4fefb97d355737f9f6a6cd4d48b90e98c9960","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"},{"line_number":541,"context_line":"            q, start, stop, columns \u003d make_sample_query_from_filter("},{"line_number":542,"context_line":"                sample_filter)"},{"line_number":543,"context_line":"            #This fields are used in statistics\u0027 calculating"},{"line_number":544,"context_line":"            columns.extend([\u0027f:timestamp\u0027, \u0027f:counter_volume\u0027,"},{"line_number":545,"context_line":"                            \u0027f:counter_unit\u0027])"},{"line_number":546,"context_line":"            meters \u003d map(deserialize_entry, list(meter for (ignored, meter) in"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_4bc92a58","line":543,"updated":"2014-05-15 15:12:58.000000000","message":"*These* fields are used...","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"808b607db6cc7c94e0931446c5acf5b687a493af","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"},{"line_number":541,"context_line":"            q, start, stop, columns \u003d make_sample_query_from_filter("},{"line_number":542,"context_line":"                sample_filter)"},{"line_number":543,"context_line":"            #This fields are used in statistics\u0027 calculating"},{"line_number":544,"context_line":"            columns.extend([\u0027f:timestamp\u0027, \u0027f:counter_volume\u0027,"},{"line_number":545,"context_line":"                            \u0027f:counter_unit\u0027])"},{"line_number":546,"context_line":"            meters \u003d map(deserialize_entry, list(meter for (ignored, meter) in"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_175575fa","line":543,"in_reply_to":"7adec928_4bc92a58","updated":"2014-05-20 11:23:24.000000000","message":"Done","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"610c204f2d6444d27cd25152c53c78f5759feb15","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                    if key in columns:"},{"line_number":648,"context_line":"                        ret[row] \u003d data"},{"line_number":649,"context_line":"            rows \u003d ret"},{"line_number":650,"context_line":"        if filter:"},{"line_number":651,"context_line":"            # TODO(jdanjou): we should really parse this properly,"},{"line_number":652,"context_line":"            # but at the moment we are only going to support AND here"},{"line_number":653,"context_line":"            filters \u003d filter.split(\u0027AND\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_f80d6ee9","line":650,"updated":"2014-05-15 14:33:28.000000000","message":"is this change related to this patch? Should it be in a separate patch?","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"808b607db6cc7c94e0931446c5acf5b687a493af","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                    if key in columns:"},{"line_number":648,"context_line":"                        ret[row] \u003d data"},{"line_number":649,"context_line":"            rows \u003d ret"},{"line_number":650,"context_line":"        if filter:"},{"line_number":651,"context_line":"            # TODO(jdanjou): we should really parse this properly,"},{"line_number":652,"context_line":"            # but at the moment we are only going to support AND here"},{"line_number":653,"context_line":"            filters \u003d filter.split(\u0027AND\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_f74f2969","line":650,"in_reply_to":"7adec928_ab8aae18","updated":"2014-05-20 11:23:24.000000000","message":"Yes, it is fixing scan for this change.","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"fae4fefb97d355737f9f6a6cd4d48b90e98c9960","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                    if key in columns:"},{"line_number":648,"context_line":"                        ret[row] \u003d data"},{"line_number":649,"context_line":"            rows \u003d ret"},{"line_number":650,"context_line":"        if filter:"},{"line_number":651,"context_line":"            # TODO(jdanjou): we should really parse this properly,"},{"line_number":652,"context_line":"            # but at the moment we are only going to support AND here"},{"line_number":653,"context_line":"            filters \u003d filter.split(\u0027AND\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ab8aae18","line":650,"in_reply_to":"7adec928_f80d6ee9","updated":"2014-05-15 15:12:58.000000000","message":"it looks like scan fixing here, that is relevant for this change. Ilya, is this true?","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"dcabbd0b617888ac1e08a4f3ecc437e01acd3ef7","unresolved":false,"context_lines":[{"line_number":842,"context_line":""},{"line_number":843,"context_line":"    return res_q"},{"line_number":844,"context_line":""},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"def get_columns(metaquery, **kwargs):"},{"line_number":847,"context_line":"    \"\"\"Return a required columns for scan."},{"line_number":848,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_6bc97b58","line":845,"updated":"2014-05-16 08:55:51.000000000","message":"Could you please add the comment that get_columns is for meter table scanning only. btw, do we need the same for Resource table?","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"610c204f2d6444d27cd25152c53c78f5759feb15","unresolved":false,"context_lines":[{"line_number":850,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"},{"line_number":851,"context_line":"     column name in db"},{"line_number":852,"context_line":"    \"\"\""},{"line_number":853,"context_line":"    #this columns required for creating new Sample"},{"line_number":854,"context_line":"    columns \u003d [\u0027f:message\u0027, \u0027f:recorded_at\u0027]"},{"line_number":855,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":856,"context_line":"    if metaquery:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_38227652","line":853,"updated":"2014-05-15 14:33:28.000000000","message":"# these columns are required for creating a new Sample","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"808b607db6cc7c94e0931446c5acf5b687a493af","unresolved":false,"context_lines":[{"line_number":850,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"},{"line_number":851,"context_line":"     column name in db"},{"line_number":852,"context_line":"    \"\"\""},{"line_number":853,"context_line":"    #this columns required for creating new Sample"},{"line_number":854,"context_line":"    columns \u003d [\u0027f:message\u0027, \u0027f:recorded_at\u0027]"},{"line_number":855,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":856,"context_line":"    if metaquery:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_773cf9c8","line":853,"in_reply_to":"7adec928_38227652","updated":"2014-05-20 11:23:24.000000000","message":"Done","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"3cbf31cd44a6ca0dd91243998f344e862905db7a","unresolved":false,"context_lines":[{"line_number":855,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":856,"context_line":"    if metaquery:"},{"line_number":857,"context_line":"        columns.extend([\"f:r_%s\" % k for k, v in metaquery.items() if v])"},{"line_number":858,"context_line":"    # raise Exception(str(columns) + \" \" + str(kwargs))"},{"line_number":859,"context_line":"    return columns"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_f51e575e","line":858,"updated":"2014-05-15 13:38:22.000000000","message":"could you please remove commented code?","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"808b607db6cc7c94e0931446c5acf5b687a493af","unresolved":false,"context_lines":[{"line_number":855,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":856,"context_line":"    if metaquery:"},{"line_number":857,"context_line":"        columns.extend([\"f:r_%s\" % k for k, v in metaquery.items() if v])"},{"line_number":858,"context_line":"    # raise Exception(str(columns) + \" \" + str(kwargs))"},{"line_number":859,"context_line":"    return columns"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_57245dae","line":858,"in_reply_to":"7adec928_f51e575e","updated":"2014-05-20 11:23:24.000000000","message":"Done","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"dcabbd0b617888ac1e08a4f3ecc437e01acd3ef7","unresolved":false,"context_lines":[{"line_number":875,"context_line":"        start\u003dsample_filter.start, start_op\u003dsample_filter.start_timestamp_op,"},{"line_number":876,"context_line":"        end\u003dsample_filter.end, end_op\u003dsample_filter.end_timestamp_op,"},{"line_number":877,"context_line":"        some_id\u003dmeter)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    q \u003d make_query(metaquery\u003dsample_filter.metaquery,"},{"line_number":880,"context_line":"                   user_id\u003dsample_filter.user,"},{"line_number":881,"context_line":"                   project_id\u003dsample_filter.project,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_6ba25b9a","line":878,"updated":"2014-05-16 08:55:51.000000000","message":"you may extract the variable block to a separate variable to avoid duplication.\nkwargs \u003d {user_id: sample_filteruser_id,.....}\nq\u003dmake_query(mataquery, **kwargs)\ncolumns \u003d get_columns(mataquery, **kwargs)","commit_id":"da7c2929aa7ee49e8fcf00fe506e380afe0f9d1a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            start\u003dstart_timestamp, start_timestamp_op\u003dstart_timestamp_op,"},{"line_number":333,"context_line":"            end\u003dend_timestamp, end_timestamp_op\u003dend_timestamp_op,"},{"line_number":334,"context_line":"            resource\u003dresource, source\u003dsource, metaquery\u003dmetaquery)"},{"line_number":335,"context_line":"        q, start_row, stop_row, ignore \u003d make_sample_query_from_filter("},{"line_number":336,"context_line":"            sample_filter, require_meter\u003dFalse)"},{"line_number":337,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":338,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_9468d8bb","line":335,"updated":"2014-05-23 13:24:57.000000000","message":"(nit) rename to ignore to __ (double underscore)","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            start\u003dstart_timestamp, start_timestamp_op\u003dstart_timestamp_op,"},{"line_number":333,"context_line":"            end\u003dend_timestamp, end_timestamp_op\u003dend_timestamp_op,"},{"line_number":334,"context_line":"            resource\u003dresource, source\u003dsource, metaquery\u003dmetaquery)"},{"line_number":335,"context_line":"        q, start_row, stop_row, ignore \u003d make_sample_query_from_filter("},{"line_number":336,"context_line":"            sample_filter, require_meter\u003dFalse)"},{"line_number":337,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":338,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_d4a3649c","line":335,"in_reply_to":"7adec928_9468d8bb","updated":"2014-05-28 14:19:47.000000000","message":"Done","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                sample_filter, require_meter\u003dFalse)"},{"line_number":426,"context_line":"            LOG.debug(_(\"Query Meter Table: %s\") % q)"},{"line_number":427,"context_line":"            gen \u003d meter_table.scan(filter\u003dq, row_start\u003dstart, row_stop\u003dstop,"},{"line_number":428,"context_line":"                                   columns\u003dcolumns)"},{"line_number":429,"context_line":"            for ignored, meter in gen:"},{"line_number":430,"context_line":"                if limit is not None:"},{"line_number":431,"context_line":"                    if limit \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_4f0a3922","line":428,"updated":"2014-05-23 13:24:57.000000000","message":"i might be missing something here but columns will never have counter volume/unit (based on make_sample_query_from_filter)... \ndoesn\u0027t that mean when we build Samples, they\u0027ll be missing those qualifiers as well?","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                sample_filter, require_meter\u003dFalse)"},{"line_number":426,"context_line":"            LOG.debug(_(\"Query Meter Table: %s\") % q)"},{"line_number":427,"context_line":"            gen \u003d meter_table.scan(filter\u003dq, row_start\u003dstart, row_stop\u003dstop,"},{"line_number":428,"context_line":"                                   columns\u003dcolumns)"},{"line_number":429,"context_line":"            for ignored, meter in gen:"},{"line_number":430,"context_line":"                if limit is not None:"},{"line_number":431,"context_line":"                    if limit \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_d40c4445","line":428,"in_reply_to":"7adec928_4f0a3922","updated":"2014-05-28 14:19:47.000000000","message":"For creating Sample we are using data[\u0027message\u0027]. Message is origin dict which is sent to record_metering_data. In current case we are using columns only for filtering.\nEarly we did the same but took all columns. It caused 2x data overhead.","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"02b9801cf45b787bec1440ed167f97af58f032a7","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":485,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"},{"line_number":486,"context_line":"            q, start, stop, columns \u003d make_sample_query_from_filter("},{"line_number":487,"context_line":"                sample_filter)"},{"line_number":488,"context_line":"            #These fields are used in statistics\u0027 calculating"},{"line_number":489,"context_line":"            columns.extend([\u0027f:timestamp\u0027, \u0027f:counter_volume\u0027,"},{"line_number":490,"context_line":"                            \u0027f:counter_unit\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_7a442074","line":487,"updated":"2014-05-23 07:41:36.000000000","message":"I don\u0027t like such an explicit extension but cannot suggest anything better :(","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        with self.conn_pool.connection() as conn:"},{"line_number":485,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"},{"line_number":486,"context_line":"            q, start, stop, columns \u003d make_sample_query_from_filter("},{"line_number":487,"context_line":"                sample_filter)"},{"line_number":488,"context_line":"            #These fields are used in statistics\u0027 calculating"},{"line_number":489,"context_line":"            columns.extend([\u0027f:timestamp\u0027, \u0027f:counter_volume\u0027,"},{"line_number":490,"context_line":"                            \u0027f:counter_unit\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_17214efb","line":487,"in_reply_to":"7adec928_7a442074","updated":"2014-05-28 14:19:47.000000000","message":"I did not find any better way too.","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        del self._rows[key]"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def scan(self, filter\u003dNone, columns\u003d[], row_start\u003dNone, row_stop\u003dNone,"},{"line_number":577,"context_line":"             batch_size\u003dNone):"},{"line_number":578,"context_line":"        sorted_keys \u003d sorted(self._rows)"},{"line_number":579,"context_line":"        # copy data between row_start and row_stop into a dict"},{"line_number":580,"context_line":"        rows \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_14a208ae","line":577,"updated":"2014-05-23 13:24:57.000000000","message":"i assume this was intended to be used at one point but dropped?","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        del self._rows[key]"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def scan(self, filter\u003dNone, columns\u003d[], row_start\u003dNone, row_stop\u003dNone,"},{"line_number":577,"context_line":"             batch_size\u003dNone):"},{"line_number":578,"context_line":"        sorted_keys \u003d sorted(self._rows)"},{"line_number":579,"context_line":"        # copy data between row_start and row_stop into a dict"},{"line_number":580,"context_line":"        rows \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_572cb602","line":577,"in_reply_to":"7adec928_14a208ae","updated":"2014-05-28 14:19:47.000000000","message":"Done","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    return res_q"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"def get_columns(metaquery, **kwargs):"},{"line_number":792,"context_line":"    \"\"\"Return a required columns for scan of meter table."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    :param metaquery: optional metaquery dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_94db78ec","line":791,"updated":"2014-05-23 13:24:57.000000000","message":"should probably be private","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    return res_q"},{"line_number":789,"context_line":""},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"def get_columns(metaquery, **kwargs):"},{"line_number":792,"context_line":"    \"\"\"Return a required columns for scan of meter table."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    :param metaquery: optional metaquery dict"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_9759de00","line":791,"in_reply_to":"7adec928_94db78ec","updated":"2014-05-28 14:19:47.000000000","message":"Done","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":789,"context_line":""},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"def get_columns(metaquery, **kwargs):"},{"line_number":792,"context_line":"    \"\"\"Return a required columns for scan of meter table."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    :param metaquery: optional metaquery dict"},{"line_number":795,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_142768b7","line":792,"updated":"2014-05-23 13:24:57.000000000","message":"(nit) s/Return a required columns for scan of meter table./Return a list of required columns to be scanned/","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":789,"context_line":""},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"def get_columns(metaquery, **kwargs):"},{"line_number":792,"context_line":"    \"\"\"Return a required columns for scan of meter table."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    :param metaquery: optional metaquery dict"},{"line_number":795,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_37d72aef","line":792,"in_reply_to":"7adec928_142768b7","updated":"2014-05-28 14:19:47.000000000","message":"Done","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d68c2e17ca4617dfc536344128017d2b57857f17","unresolved":false,"context_lines":[{"line_number":795,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"},{"line_number":796,"context_line":"     column name in db"},{"line_number":797,"context_line":"    \"\"\""},{"line_number":798,"context_line":"    #These columns required for creating new Sample"},{"line_number":799,"context_line":"    columns \u003d [\u0027f:message\u0027, \u0027f:recorded_at\u0027]"},{"line_number":800,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":801,"context_line":"    if metaquery:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_a9201db1","line":798,"updated":"2014-05-23 13:24:57.000000000","message":"this comment probably isn\u0027t necessary since we\u0027ve stated it in docstring.","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"8ded7e33c34ff40934d32f084449a4436718e6a3","unresolved":false,"context_lines":[{"line_number":795,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"},{"line_number":796,"context_line":"     column name in db"},{"line_number":797,"context_line":"    \"\"\""},{"line_number":798,"context_line":"    #These columns required for creating new Sample"},{"line_number":799,"context_line":"    columns \u003d [\u0027f:message\u0027, \u0027f:recorded_at\u0027]"},{"line_number":800,"context_line":"    columns.extend([\"f:%s\" % k for k, v in kwargs.items() if v])"},{"line_number":801,"context_line":"    if metaquery:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_7708d291","line":798,"in_reply_to":"7adec928_a9201db1","updated":"2014-05-28 14:19:47.000000000","message":"Done","commit_id":"22593cf4158547eb340e9ca972358191f30023fc"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"b57aebb7caffc16715f6812b9a843ba05decc835","unresolved":false,"context_lines":[{"line_number":489,"context_line":"            meter_table \u003d conn.table(self.METER_TABLE)"},{"line_number":490,"context_line":"            q, start, stop, columns \u003d make_sample_query_from_filter("},{"line_number":491,"context_line":"                sample_filter)"},{"line_number":492,"context_line":"            #These fields are used in statistics\u0027 calculating"},{"line_number":493,"context_line":"            columns.extend([\u0027f:timestamp\u0027, \u0027f:counter_volume\u0027,"},{"line_number":494,"context_line":"                            \u0027f:counter_unit\u0027])"},{"line_number":495,"context_line":"            meters \u003d map(deserialize_entry, list(meter for (ignored, meter) in"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_ddf57ecc","line":492,"updated":"2014-05-30 04:12:24.000000000","message":"nit: s/#These/# These/","commit_id":"37e5bcaddaf807ec0fad467b952a9b29cd717341"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6766658a590d05db1ab0b56435d7eca00388f24a","unresolved":false,"context_lines":[{"line_number":794,"context_line":""},{"line_number":795,"context_line":""},{"line_number":796,"context_line":"def _get_meter_columns(metaquery, **kwargs):"},{"line_number":797,"context_line":"    \"\"\"Return a list of required columns im meter table to be scanned ."},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    :param metaquery: optional metaquery dict"},{"line_number":800,"context_line":"    :param kwargs: key-value pairs to filter on. Key should be a real"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_6e063bd0","line":797,"updated":"2014-05-28 16:20:03.000000000","message":"s/columns im meter/columns in meter/","commit_id":"37e5bcaddaf807ec0fad467b952a9b29cd717341"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"b57aebb7caffc16715f6812b9a843ba05decc835","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                  message_id\u003dsample_filter.message_id)"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"    q \u003d make_query(metaquery\u003dsample_filter.metaquery,"},{"line_number":835,"context_line":"                   **kwargs)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"    if q:"},{"line_number":838,"context_line":"        ts_query \u003d (\" AND \" + ts_query) if ts_query else \"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_3dd3c239","line":835,"updated":"2014-05-30 04:12:24.000000000","message":"nit: I think the **kwargs can be moved to L834","commit_id":"37e5bcaddaf807ec0fad467b952a9b29cd717341"}]}
