Skip to content

Snowflake: Add CREATE and DROP EXTERNAL VOLUME - #2397

Closed
sabir-akhadov-localstack wants to merge 1 commit into
apache:mainfrom
localstack:pr/05-external-volume
Closed

Snowflake: Add CREATE and DROP EXTERNAL VOLUME#2397
sabir-akhadov-localstack wants to merge 1 commit into
apache:mainfrom
localstack:pr/05-external-volume

Conversation

@sabir-akhadov-localstack

@sabir-akhadov-localstack sabir-akhadov-localstack commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Snowflake's external-volume DDL did not parse. Per the review suggestion this PR was split into four; this one now covers only CREATE [OR REPLACE] EXTERNAL VOLUME [IF NOT EXISTS] and DROP EXTERNAL VOLUME (mirroring the merged CREATE/DROP WAREHOUSE, #2388). The follow-ups are ALTER (#2474), DESC (#2472) and SHOW (#2473).

Example that failed before:

CREATE EXTERNAL VOLUME my_vol STORAGE_LOCATIONS = (
    (NAME = 'loc1' STORAGE_PROVIDER = 'S3' STORAGE_BASE_URL = 's3://bucket/path/'));

Each storage location is a parenthesized key-value option list parsed generically into the existing KeyValueOptions, so fields (including the nested ENCRYPTION = (...) list) may appear in any order, matching real Snowflake. Only an empty location is rejected; semantic checks such as the required STORAGE_BASE_URL or duplicate fields are left to the consumer, in line with the parser's permissive stance. The trailing ALLOW_WRITES and COMMENT properties are accepted in either order. DROP EXTERNAL VOLUME reuses the generic Statement::Drop via a new ObjectType::ExternalVolume. All statements round-trip.

See the Snowflake CREATE EXTERNAL VOLUME docs.

@sabir-akhadov-localstack
sabir-akhadov-localstack marked this pull request as ready for review July 3, 2026 15:41
@sabir-akhadov-localstack

Copy link
Copy Markdown
Contributor Author

Friendly ping on this one when someone has a moment. 🙂

It's been open since early July; CI is green and it's conflict-free against main. It follows the same structure as the recently merged CREATE WAREHOUSE support (#2388), so it should hopefully be a familiar review. Happy to rebase or adjust anything if needed. Thanks!

@LucaCappelletti94

Copy link
Copy Markdown
Contributor

I suggest you split this into 4 PRs, one for macro type, so it is more likely to be digested a bit more quickly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sabir-akhadov-localstack sabir-akhadov-localstack changed the title Snowflake: Add EXTERNAL VOLUME DDL Snowflake: Add CREATE and DROP EXTERNAL VOLUME Sep 1, 2026
@sabir-akhadov-localstack

Copy link
Copy Markdown
Contributor Author

Done, thanks for the suggestion! This PR is now scoped down to CREATE + DROP (mirroring the merged CREATE/DROP WAREHOUSE, #2388), and the rest is split out:

@sabir-akhadov-localstack

Copy link
Copy Markdown
Contributor Author

Closed in favor of the fresh split PRs: CREATE + DROP is now #2475, alongside ALTER (#2474), DESC (#2472) and SHOW (#2473).

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.

2 participants