Skip to content

feat: preserve Snowflake CREATE SCHEMA modifiers - #52

Merged
osipovartem merged 24 commits into
embucket-sync-df55.0.0from
feat/snowflake-schema-modifiers-20261113
Nov 13, 2026
Merged

osipovartem merged 24 commits into
embucket-sync-df55.0.0from
feat/snowflake-schema-modifiers-20261113

Conversation

@osipovartem

Copy link
Copy Markdown

Summary

Preserve Snowflake CREATE [OR REPLACE] [TRANSIENT] SCHEMA ... [WITH MANAGED ACCESS] as native AST fields rather than losing modifiers or reparsing SQL in downstream consumers. The public parse_create_schema() entry point is preserved; the private helper carries admitted flags. Existing COMMENT/retention options and CLONE compose with the new grammar.

Dialect capability checks preserve other dialects' behavior. Unsupported TEMP/TEMPORARY/PERSISTENT/SECURE/global and OR ALTER forms still reject. Display emits canonical syntax; serde defaults accept older serialized ASTs.

Reference: Snowflake CREATE SCHEMA syntax.

Compatibility

The three new fields (or_replace, transient, with_managed_access) are a Rust AST source change: exhaustive constructors/patterns must be updated. Serde defaults do not remove that source compatibility requirement. DataFusion and Rustice will be pinned coherently to this revision; unsupported execution modifiers must be rejected, not silently discarded. This parser PR itself enables no schema replacement or managed-access authorization semantics.

Validation

  • Full all-feature suite: 1,625 passed, zero failed, seven existing ignored, including doctests.
  • All-target/all-feature Clippy with -D warnings passed.
  • Formatting and whitespace checks passed.
  • Independent read-only review explicitly approved correctness, regression, performance, API and test coverage.
  • The initial new negative test incorrectly compared different dialect error messages. The corrected test retains every input and separately requires each dialect to reject it; production code was unchanged by that correction.

osipovartem and others added 24 commits October 12, 2026 03:11
Preserve quoted identifiers and spans in Snowflake COPY transformations
Preserve zero-padded staged placeholders in COPY AST
…ot-exists

Parse Snowflake ALTER TABLE ADD COLUMN IF NOT EXISTS
* test(snowflake): preserve CREATE DATABASE batch delimiters

* test(snowflake): use canonical single-statement comment formatting

* fix(snowflake): leave CREATE DATABASE delimiters to statement parser

* test(snowflake): format CREATE DATABASE regression controls

* ci: run license audit on supported Python and fail on tool errors
Snowflake: Accept storage integration after stage endpoint
Snowflake: Add typed warehouse statements
Co-Authored-By: Claude Opus 5.5 <[email protected]>
(cherry picked from commit e727809)
Backport native DESCRIBE DATABASE/SCHEMA parsing
…261113

Snowflake: parse CREATE SCHEMA comment and retention options
…ons-20261113

Support Snowflake ALTER SCHEMA SET/UNSET properties
@osipovartem
osipovartem merged commit 1bb6530 into embucket-sync-df55.0.0 Nov 13, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants