This is an automated email from the ASF dual-hosted git repository.
kgyrtkirk pushed a commit to branch 36.0.0
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/36.0.0 by this push:
new 1e7da512237 fix issue with projection schema deserialization from
existing v9 segment metadata (#18916) (#18917)
1e7da512237 is described below
commit 1e7da5122371e3add9aa9e27f19cd66e4c00fefd
Author: Clint Wylie <[email protected]>
AuthorDate: Tue Jan 20 03:16:50 2026 -0800
fix issue with projection schema deserialization from existing v9 segment
metadata (#18916) (#18917)
---
.../segment/projections/ProjectionSchema.java | 3 +-
.../segment/AggregateProjectionMetadataTest.java | 50 +++++++++++++++++++++-
2 files changed, 51 insertions(+), 2 deletions(-)
diff --git
a/processing/src/main/java/org/apache/druid/segment/projections/ProjectionSchema.java
b/processing/src/main/java/org/apache/druid/segment/projections/ProjectionSchema.java
index 71e56abac54..e8c6b249de6 100644
---
a/processing/src/main/java/org/apache/druid/segment/projections/ProjectionSchema.java
+++
b/processing/src/main/java/org/apache/druid/segment/projections/ProjectionSchema.java
@@ -21,6 +21,7 @@ package org.apache.druid.segment.projections;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.OptBoolean;
import org.apache.druid.data.input.impl.AggregateProjectionSpec;
import org.apache.druid.java.util.common.granularity.Granularity;
import org.apache.druid.query.OrderBy;
@@ -38,7 +39,7 @@ import java.util.List;
*
* For V10 segment format {@link
org.apache.druid.segment.file.SegmentFileMetadata}
*/
-@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type",
requireTypeIdForSubtypes = OptBoolean.FALSE)
@JsonSubTypes(value = {
@JsonSubTypes.Type(name = AggregateProjectionSpec.TYPE_NAME, value =
AggregateProjectionSchema.class),
@JsonSubTypes.Type(name = TableProjectionSchema.TYPE_NAME, value =
TableProjectionSchema.class),
diff --git
a/processing/src/test/java/org/apache/druid/segment/AggregateProjectionMetadataTest.java
b/processing/src/test/java/org/apache/druid/segment/AggregateProjectionMetadataTest.java
index 7bc751df46a..df0e4c2e3eb 100644
---
a/processing/src/test/java/org/apache/druid/segment/AggregateProjectionMetadataTest.java
+++
b/processing/src/test/java/org/apache/druid/segment/AggregateProjectionMetadataTest.java
@@ -72,9 +72,57 @@ class AggregateProjectionMetadataTest extends
InitializedNullHandlingTest
spec,
JSON_MAPPER.readValue(JSON_MAPPER.writeValueAsString(spec),
AggregateProjectionMetadata.class)
);
+ String legacy = "{\n"
+ + " \"type\" : \"aggregate\",\n"
+ + " \"schema\" : {\n"
+ + " \"name\" : \"some_projection\",\n"
+ + " \"timeColumnName\" : \"time\",\n"
+ + " \"filter\" : {\n"
+ + " \"type\" : \"equals\",\n"
+ + " \"column\" : \"a\",\n"
+ + " \"matchValueType\" : \"STRING\",\n"
+ + " \"matchValue\" : \"a\"\n"
+ + " },\n"
+ + " \"virtualColumns\" : [ {\n"
+ + " \"type\" : \"expression\",\n"
+ + " \"name\" : \"time\",\n"
+ + " \"expression\" :
\"timestamp_floor(__time,'PT1H',null,'UTC')\",\n"
+ + " \"outputType\" : \"LONG\"\n"
+ + " } ],\n"
+ + " \"groupingColumns\" : [ \"a\", \"b\", \"time\",
\"c\", \"d\" ],\n"
+ + " \"aggregators\" : [ {\n"
+ + " \"type\" : \"count\",\n"
+ + " \"name\" : \"count\"\n"
+ + " }, {\n"
+ + " \"type\" : \"longSum\",\n"
+ + " \"name\" : \"e\",\n"
+ + " \"fieldName\" : \"e\"\n"
+ + " } ],\n"
+ + " \"ordering\" : [ {\n"
+ + " \"columnName\" : \"a\",\n"
+ + " \"order\" : \"ascending\"\n"
+ + " }, {\n"
+ + " \"columnName\" : \"b\",\n"
+ + " \"order\" : \"ascending\"\n"
+ + " }, {\n"
+ + " \"columnName\" : \"time\",\n"
+ + " \"order\" : \"ascending\"\n"
+ + " }, {\n"
+ + " \"columnName\" : \"c\",\n"
+ + " \"order\" : \"ascending\"\n"
+ + " }, {\n"
+ + " \"columnName\" : \"d\",\n"
+ + " \"order\" : \"ascending\"\n"
+ + " } ]\n"
+ + " },\n"
+ + " \"numRows\" : 12345\n"
+ + "}";
+ Assertions.assertEquals(
+ spec,
+ JSON_MAPPER.readValue(legacy, AggregateProjectionMetadata.class)
+ );
}
-
@Test
void testComparator()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]