Preserve projection metadata and dialect-aware CREATE parsing - #46
Merged
osipovartem merged 4 commits intoAug 31, 2026
Merged
Conversation
osipovartem
force-pushed
the
fix-df55-snowflake-create-dialect
branch
3 times, most recently
from
August 30, 2026 20:24
b1657a1 to
0a8252c
Compare
osipovartem
force-pushed
the
fix-df55-snowflake-create-dialect
branch
from
August 30, 2026 20:36
0a8252c to
549b436
Compare
osipovartem
requested review from
Vedin and
camuel
and removed request for
camuel
August 30, 2026 23:49
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.
Summary
CREATEstatements back through the configured SQL dialect, restoring SnowflakeCREATE ICEBERG TABLE,CREATE STAGE, and fork-providedCREATE EXTERNAL VOLUMEparsing used by RusticeCREATE EXTERNAL TABLEparser only for an actual[TEMPORARY] TABLEprefixRUSTDOCFLAGS=-D warningsforce_hash_collisions, while preserving collision coverage inside each partition's hash tableThis prevents DataFusion 55's physical
ProjectionPushdownoptimizer from restoring sourcePARQUET:field_idmetadata that a logical projection intentionally removed, while avoiding the opposite regression where native extension metadata was lost.DataFusion 50/53 port audit
The three Embucket commits on DF50 were carried into the DF53 fork lineage; both histories were checked before classifying the items below.
Retained on DF55:
[patch.crates-io]pin, includingEXTERNAL VOLUME, standaloneBEGIN,SHOW VARIABLES, timestamp precision, partitioning, and Snowflake string escapesSuperseded or owned elsewhere:
Pivotnode is replaced by DF55 lowering to standard aggregate/union plansTO_DATEcoercion is upstream in DF55REGEXP_SUBSTRis implemented and tested in RusticeNot blindly ported:
||coercionThose coercions broaden upstream behavior and should only return behind Snowflake differential correctness tests.
Verification
cargo +1.97.0 fmt --all -- --checkcargo +1.97.0 test -p datafusion-sql(91 unit, 572 integration, 12 doctests passed; 1 doctest ignored)cargo +1.97.0 clippy -p datafusion-sql --all-targets -- -D warningscargo +1.97.0 test -p datafusion-physical-expr --lib(1,586 passed; 2 ignored)RUSTDOCFLAGS='-D warnings' cargo +1.97.0 doc --document-private-items --no-deps --workspacecargo +1.97.0 clippy -p datafusion-common -p datafusion-physical-plan --lib --features datafusion-physical-plan/force_hash_collisions,datafusion-common/force_hash_collisions -- -D warningscargo +1.97.0 test -p executor --lib --locked(436 passed; 7 intentionally ignored), including fork-backedCREATE EXTERNAL VOLUMEparsingRequired by Embucket/rustice#59.