timeplus-io / timeplus-native-jdbc

Timeplus JDBC driver which speaks native TCP protocol to Timeplus Core
Apache License 2.0
1 stars 0 forks source link

Fix the problem of map(low_cardinality) and tuple(low_cardinality) #51

Closed Jasmine-ge closed 2 months ago

Jasmine-ge commented 2 months ago

Fix some of the existed problems of nested low_cardinality types. close #50

yl-lisen commented 2 months ago

need revisit the interfaces:

/// only write column data
void Column::flushToSerializer()
{
    serializeBinaryBulkPrefix();
    serializeBinaryBulk();
    serializeBinaryBulkSuffix();
}
/// only read column data
Object[] DataType::readFromDeserializer()
{
    deserializeBinaryBulkPrefix();
    deserializeBinaryBulk();
    deserializeBinaryBulkSuffix();
}

/// write a column
serializer.writeUTF8StringBinary(column.name);
serializer.writeUTF8StringBinary(column.type.name());
column.flushToSerializer(serializer, true);

/// read a column:
String name = deserializer.readUTF8StringBinary();
String type = deserializer.readUTF8StringBinary();

IDataType dataType = DataTypeFactory.get(type, serverContext);
Object[] arr = dataType.readFromDeserializer(rowCnt, deserializer);
column = ColumnFactory.createColumn(name, dataType, arr);