|
22 | 22 | import com.datastax.oss.driver.api.core.metadata.schema.ColumnMetadata;
|
23 | 23 | import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
|
24 | 24 | import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata;
|
| 25 | +import com.datastax.oss.driver.api.core.type.CqlVectorType; |
25 | 26 | import com.datastax.oss.driver.api.core.type.DataType;
|
26 | 27 | import com.datastax.oss.driver.api.core.type.ListType;
|
27 | 28 | import com.datastax.oss.driver.api.core.type.MapType;
|
@@ -74,6 +75,13 @@ public AbstractNativeConverter(KeyspaceMetadata ksm, TableMetadata tm, List<Colu
|
74 | 75 | subSchemas.put(field.name(), collectionSchema);
|
75 | 76 | log.info("Add collection schema {}={}", field.name(), collectionSchema);
|
76 | 77 | break;
|
| 78 | + case ProtocolConstants.DataType.CUSTOM: |
| 79 | + if (cm.getType() instanceof CqlVectorType) { |
| 80 | + Schema vectorSchema = dataTypeSchema(ksm, cm.getType()); |
| 81 | + subSchemas.put(field.name(), vectorSchema); |
| 82 | + log.info("Add vector schema {}={}", field.name(), vectorSchema); |
| 83 | + } |
| 84 | + break; |
77 | 85 | }
|
78 | 86 | }
|
79 | 87 | }
|
@@ -121,6 +129,8 @@ boolean isSupportedCqlType(DataType dataType) {
|
121 | 129 | case ProtocolConstants.DataType.SET:
|
122 | 130 | case ProtocolConstants.DataType.MAP:
|
123 | 131 | return true;
|
| 132 | + case ProtocolConstants.DataType.CUSTOM: |
| 133 | + return dataType instanceof CqlVectorType; |
124 | 134 | }
|
125 | 135 | return false;
|
126 | 136 | }
|
@@ -189,6 +199,11 @@ Schema dataTypeSchema(KeyspaceMetadata ksm, DataType dataType) {
|
189 | 199 | case ProtocolConstants.DataType.MAP:
|
190 | 200 | MapType mapType = (MapType) dataType;
|
191 | 201 | return org.apache.avro.Schema.createMap(dataTypeSchema(ksm, mapType.getValueType()));
|
| 202 | + case ProtocolConstants.DataType.CUSTOM: |
| 203 | + if (dataType instanceof CqlVectorType) { |
| 204 | + CqlVectorType vectorType = (CqlVectorType) dataType; |
| 205 | + return org.apache.avro.Schema.createArray(dataTypeSchema(ksm, vectorType.getSubtype())); |
| 206 | + } |
192 | 207 | default:
|
193 | 208 | throw new UnsupportedOperationException("Ignoring unsupported type=" + dataType.asCql(false, true));
|
194 | 209 | }
|
|
0 commit comments