[FLINK-14848][table] Remove deprecated setNullAt/write in BinaryWriter and use NullSetter/ValueSetter instead #12924
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.
What is the purpose of the change
In
BinaryWriter
, we have special logic when dealing null values ofDecimalType
andTimestampType
. However, the currently deprecated (but still largely in use)setNullAt
method cannot determine the type of the specified field so this method cannot handleDecimalType
andTimestampType
correctly, thus causing the bug in FLINK-14848.This PR remove deprecated
setNullAt
andwrite
methods inBinaryWriter
and useNullSetter
/ValueSetter
to replace them.Brief change log
Verifying this change
This change is already covered by existing tests (including binary writer tests, serializer tests, IT cases involving code generation, etc.). This PR also adds some test cases for verifying.
Note that this PR removes two test cases in which Kryo serializers are specified in the
ExecutionConfig
. This feature is not supported in table API.Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: noDocumentation