Skip to content

Snowflake: Add CREATE EXTERNAL VOLUME - #2475

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

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 Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Snowflake's CREATE EXTERNAL VOLUME did not parse. Example that failed before:

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

This adds CREATE [OR REPLACE] EXTERNAL VOLUME [IF NOT EXISTS], following the merged CREATE WAREHOUSE (#2388). Each storage location is a parenthesized key-value option list. It is parsed generically into the existing KeyValueOptions, so its fields, including the nested ENCRYPTION = (...) list, may appear in any order, as in 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. The statement round-trips.

See the Snowflake CREATE EXTERNAL VOLUME docs.

DROP EXTERNAL VOLUME was split out into #2750 per review feedback. The related ALTER (#2474), DESC (#2472) and SHOW (#2473) PRs are separate.

@sabir-akhadov-localstack

Copy link
Copy Markdown
Contributor Author

Rebased on latest main. @iffyio @LucaCappelletti94 could you take a look when you have a moment? This is the first of the PRs split out of #2397 (#2472 and #2473 are the others; #2474 is stacked on this one).

@codecov-commenter

codecov-commenter commented Oct 15, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.30435% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.37%. Comparing base (4c82c3a) to head (aa80fef).

Files with missing lines Patch % Lines
src/ast/mod.rs 76.92% 1 Missing and 5 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2475      +/-   ##
==========================================
+ Coverage   82.34%   82.37%   +0.02%     
==========================================
  Files          42       42              
  Lines       35263    35332      +69     
  Branches    35263    35332      +69     
==========================================
+ Hits        29039    29106      +67     
+ Misses       2677     2675       -2     
- Partials     3547     3551       +4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sabir-akhadov-localstack
sabir-akhadov-localstack force-pushed the pr/05-external-volume branch 2 times, most recently from 2ec07ae to 0bc62fe Compare October 27, 2026 16:27
@LucaCappelletti94

Copy link
Copy Markdown
Contributor

Hi! Can you please split it into two PRs?

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sabir-akhadov-localstack sabir-akhadov-localstack changed the title Snowflake: Add CREATE and DROP EXTERNAL VOLUME Snowflake: Add CREATE EXTERNAL VOLUME Oct 28, 2026
@sabir-akhadov-localstack

Copy link
Copy Markdown
Contributor Author

Thanks, done. This PR now covers only CREATE EXTERNAL VOLUME, and DROP EXTERNAL VOLUME is in #2750. The two are independent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs rebasing The PR has collisions with main and requires rebasing Snowflake

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants