[fix][sql][branch-3.0] Fix long decimal compatibility in Trino 368. #23419
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.
Motivation
After upgrading to trino368 #20016, the long decimal type is represented by a block type.
However, Trino expects to get an Int128 type, which causes an error.
Modifications
PulsarRecordCursor.getObject()
: We can't simply assume that a Block is an object in trino368;Int128ArrayBlock
, convert to Int32: This is a simple workaround for the current version. In the new version of Trino,FieldValueProvider
has provided getObject to replacegetBlock
, keeping it consistent with theRecordCursor
interface. Since it's only contributed back to branch-3.0, a simple fix is provided here.Verifying this change
Documentation
doc
doc-required
doc-not-needed
doc-complete
Matching PR in forked repository
PR in forked repository: