Fix type mismatch when COLLATE is used with type cast in distributed …#8498
Open
bfa-dev wants to merge 6 commits intocitusdata:mainfrom
Open
Fix type mismatch when COLLATE is used with type cast in distributed …#8498bfa-dev wants to merge 6 commits intocitusdata:mainfrom
bfa-dev wants to merge 6 commits intocitusdata:mainfrom
Conversation
…queries RelabelTypeToCollateExpr was dropping the type cast (e.g. ::VARCHAR) when converting RelabelType nodes to CollateExpr for deparsing. When the RelabelType changes both collation and type, preserve the cast by wrapping the CollateExpr in a new RelabelType. Fixes citusdata#8469
…har-type-mismatch
…ub.com/bfa-dev/citus into fix/8469-collate-varchar-type-mismatch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
DESCRIPTION: Fixes type mismatch when COLLATE is used with type cast in distributed queries
RelabelTypeToCollateExprwas dropping the type cast (e.g.::VARCHAR) when convertingRelabelTypenodes toCollateExprfor deparsing. Workers receivedexpr COLLATE "C"(returningtext) instead of(expr COLLATE "C")::varchar, causing "attribute of type record has wrong type" errors.Fix: when the
RelabelTypechanges both type and collation, preserve the cast by wrapping theCollateExprin a newRelabelTypewithDEFAULT_COLLATION_OIDto avoid re-detection.Fixes #8469