fix json compat layer to not rewrite v4 into v5 after segment merging (#14997)

This commit is contained in:
Clint Wylie 2023-10-04 00:18:18 -07:00 committed by GitHub
parent 28870c702a
commit 632811b285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -28,9 +28,9 @@ import org.apache.druid.guice.NestedDataModule;
import org.apache.druid.jackson.DefaultObjectMapper;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.java.util.common.guava.Comparators;
import org.apache.druid.segment.AutoTypeColumnSchema;
import org.apache.druid.segment.DimensionHandler;
import org.apache.druid.segment.NestedCommonFormatColumnHandler;
import org.apache.druid.segment.NestedDataColumnHandlerV4;
import org.apache.druid.segment.NestedDataColumnSchema;
import org.apache.druid.segment.column.ColumnBuilder;
import org.apache.druid.segment.column.ColumnCapabilities;
import org.apache.druid.segment.column.ColumnCapabilitiesImpl;
@ -168,13 +168,13 @@ public class NestedDataComplexTypeSerde extends ComplexMetricSerde
@Override
public DimensionHandler getColumnHandler(String columnName)
{
return new NestedCommonFormatColumnHandler(columnName);
return new NestedDataColumnHandlerV4(columnName);
}
@Override
public DimensionSchema getColumnSchema(String columnName)
{
return new AutoTypeColumnSchema(columnName);
return new NestedDataColumnSchema(columnName, 4);
}
@Override

View File

@ -41,7 +41,9 @@ import org.apache.druid.segment.ColumnValueSelector;
import org.apache.druid.segment.DimensionSelector;
import org.apache.druid.segment.IndexSpec;
import org.apache.druid.segment.IndexableAdapter;
import org.apache.druid.segment.NestedDataColumnHandlerV4;
import org.apache.druid.segment.NestedDataColumnIndexerV4;
import org.apache.druid.segment.NestedDataColumnSchema;
import org.apache.druid.segment.ObjectColumnSelector;
import org.apache.druid.segment.QueryableIndex;
import org.apache.druid.segment.SimpleAscendingOffset;
@ -226,6 +228,9 @@ public class NestedDataColumnSupplierV4Test extends InitializedNullHandlingTest
final ColumnCapabilities capabilities = holder.getCapabilities();
Assert.assertEquals(ColumnType.NESTED_DATA, capabilities.toColumnType());
Assert.assertTrue(holder.getColumnFormat() instanceof NestedDataComplexTypeSerde.NestedColumnFormatV4);
Assert.assertTrue(holder.getColumnFormat().getColumnHandler("test") instanceof NestedDataColumnHandlerV4);
NestedDataColumnSchema schema = (NestedDataColumnSchema) holder.getColumnFormat().getColumnSchema("test");
Assert.assertEquals(4, schema.getFormatVersion());
try (NestedDataComplexColumn column = (NestedDataComplexColumn) holder.getColumn()) {
smokeTest(column);
}