fix: Handle missing valueType column after upgrade #14105
+5
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe the issue this Pull Request addresses
#14108
Column
valueType
is added to ColumnStats record in recent change in master branch (1.1.x version), as causes backward compatibility issue since old ColumnStats records do not have this column. That is, when MDT tries to access this column from these old records say from 1.0.2 version, they would throw exception sayingorg.apache.avro.AvroRuntimeException: Not a valid schema field: valueType
.The reason that these old record would use their writer schema is because they are from log files of MDT that contains their writer schema in the log block header. When these log records are deserialized, the old writer schema is used.
Summary and Changelog
The solution is to check if
valueType
column exists in current records before access. If not exists, we returnV1EmptyMetadata
object instead.I see we also return
V1EmptyMetadata
object when the value ofvalueType
is NULL. Therefore, afterV1EmptyMetadata
is returned, the sequential operations should be handled properly.Impact
Fix one compatibility issue after upgrade to version 9.
Risk Level
Low.
Documentation Update
Contributor's checklist