示例#1
0
    def build_updated_request(self):
        """ Updates the given message request as per last scanned key
        """
        r_kwargs = {
            "table_name": self.message.table_name,
            "filter": self.message.filter,
        }

        if self.message.rows_limit != 0:
            r_kwargs["rows_limit"] = max(
                1, self.message.rows_limit - self.rows_read_so_far
            )

        # if neither RowSet.row_keys nor RowSet.row_ranges currently exist,
        # add row_range that starts with last_scanned_key as start_key_open
        # to request only rows that have not been returned yet
        if not self.message.HasField("rows"):
            row_range = data_v2_pb2.RowRange(start_key_open=self.last_scanned_key)
            r_kwargs["rows"] = data_v2_pb2.RowSet(row_ranges=[row_range])
        else:
            row_keys = self._filter_rows_keys()
            row_ranges = self._filter_row_ranges()
            r_kwargs["rows"] = data_v2_pb2.RowSet(
                row_keys=row_keys, row_ranges=row_ranges
            )
        return data_messages_v2_pb2.ReadRowsRequest(**r_kwargs)
示例#2
0
    def build_updated_request(self):
        """ Updates the given message request as per last scanned key
        """
        r_kwargs = {
            'table_name': self.message.table_name,
            'filter': self.message.filter
        }

        if self.message.rows_limit != 0:
            r_kwargs['rows_limit'] = max(
                1, self.message.rows_limit - self.rows_read_so_far)

        row_keys = self._filter_rows_keys()
        row_ranges = self._filter_row_ranges()
        r_kwargs['rows'] = data_v2_pb2.RowSet(row_keys=row_keys,
                                              row_ranges=row_ranges)

        return data_messages_v2_pb2.ReadRowsRequest(**r_kwargs)