Skip to content

Pin native schema modifiers and refuse lossy planning - #190

Merged
osipovartem merged 1 commit into
df55-physical-udf-instancefrom
fix/schema-modifiers-parser-pin-20261113
Nov 13, 2026
Merged

osipovartem merged 1 commit into
df55-physical-udf-instancefrom
fix/schema-modifiers-parser-pin-20261113

Conversation

@osipovartem

Copy link
Copy Markdown
Collaborator

Which issue does this PR close?

Supports the bounded Oracle schema work; parser change: Embucket/datafusion-sqlparser-rs#52.

Rationale for this change

Native Snowflake CREATE SCHEMA modifiers must survive parsing. The generic DataFusion schema plan does not implement replacement, transient lifetime, or managed-access authorization, so silently dropping those flags would be incorrect.

What changes are included in this PR?

  • Pin the parser and derive crate to 874cfbb8, retaining the native schema modifiers.
  • Explicitly reject unsupported modifiers in generic SQL planning.
  • Preserve ordinary conditional schema creation. Rustice admits its supported subset through its existing owned local publisher.

The base is df55-physical-udf-instance, the integration branch already used by Rustice and recent dependency PRs. No existing fork patches are removed.

Are these changes tested?

  • Focused CREATE SCHEMA planner tests: 4 passed.
  • Full documented extended workspace command on Rust 1.97: 10,782 passed, 10 existing ignored, plus 509/509 SQLLogicTest files; zero failures. Excludes only the documented examples, benchmarks, and CLI packages.
  • Whole-workspace clippy --all-targets --all-features -- -D warnings on Rust 1.97: passed.
  • cargo fmt --all -- --check and git diff --check: passed.
  • Independent read-only agent review: approved, covering correctness, regression risk, performance, API and tests. The flags are checked only on the cold CREATE SCHEMA path.

The parser itself separately passes 1,625 tests with seven existing ignored, and strict all-target/all-feature Clippy. Local qualification is reported separately from remote CI.

Are there any user-facing changes?

Generic planning now explicitly refuses modifiers it cannot execute. The dependency's CREATE SCHEMA AST gains three boolean fields, with serde defaults for older serialized input; downstream Rust constructors must account for the new fields.

@github-actions github-actions Bot added the sql label Nov 13, 2026
@osipovartem
osipovartem merged commit 1d91aac into df55-physical-udf-instance Nov 13, 2026
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant