fix issue with segment metadata cache and complex types when doing out of order upgrades from 0.22 (#14948)

This commit is contained in:
Clint Wylie 2023-09-11 19:54:35 -07:00 committed by GitHub
parent 757603a773
commit 5cecf6ce8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View File

@ -961,6 +961,9 @@ public class SegmentMetadataCache
// likelyhood of upgrading from some version lower than 0.23 is low
try {
valueType = ColumnType.fromString(entry.getValue().getType());
if (valueType == null) {
valueType = ColumnType.ofComplex(entry.getValue().getType());
}
}
catch (IllegalArgumentException ignored) {
valueType = ColumnType.UNKNOWN_COMPLEX;

View File

@ -1417,9 +1417,21 @@ public class SegmentMetadataCacheTest extends SegmentMetadataCacheCommon
false,
true,
1234,
26,
"a",
"z",
null,
null,
null,
null
),
"distinct",
new ColumnAnalysis(
null,
"hyperUnique",
false,
true,
1234,
null,
null,
null,
null
)
)
@ -1433,7 +1445,7 @@ public class SegmentMetadataCacheTest extends SegmentMetadataCacheCommon
)
);
Assert.assertEquals(
RowSignature.builder().add("a", ColumnType.STRING).add("count", ColumnType.LONG).build(),
RowSignature.builder().add("a", ColumnType.STRING).add("count", ColumnType.LONG).add("distinct", ColumnType.ofComplex("hyperUnique")).build(),
signature
);
}