Beispiel #1
0
 def _encode_one_row_to_stream(self, value: Row, out_stream, nested):
     field_coders = self._field_coders
     self._write_mask(value, out_stream, value.get_row_kind().value)
     for i in range(self._field_count):
         item = value[i]
         if item is not None:
             field_coders[i].encode_to_stream(item, out_stream, nested)
Beispiel #2
0
    def to_external(self, value: Row) -> OUT:
        if value is None:
            return None

        values = value._values
        fields = tuple([self._field_data_converters[i].to_external(values[i])
                        for i in range(len(values))])
        return value.get_row_kind().value, fields
Beispiel #3
0
    def encode_to_stream(self, value: Row, out_stream):
        # encode mask value
        self._mask_utils.write_mask(value._values, value.get_row_kind().value, out_stream)

        # encode every field value
        for i in range(self._field_count):
            item = value[i]
            if item is not None:
                self._field_coders[i].encode_to_stream(item, out_stream)
Beispiel #4
0
    def to_external(self, value: Row) -> OUT:
        if value is None:
            return None

        self._reuse_external_row[0] = value.get_row_kind().value
        values = value._values
        for i in range(len(values)):
            self._reuse_external_row_data[i] = self._field_data_converters[
                i].to_external(values[i])
        return self._reuse_external_row
Beispiel #5
0
 def is_accumulate_msg(data: Row):
     return data.get_row_kind(
     ) == RowKind.UPDATE_AFTER or data.get_row_kind() == RowKind.INSERT
Beispiel #6
0
 def is_retract_msg(data: Row):
     return data.get_row_kind(
     ) == RowKind.UPDATE_BEFORE or data.get_row_kind() == RowKind.DELETE