Skip to content

Snowflake Data Dictionary & SQL Catalog

from sqlspec.data_dictionary import get_data_dictionary_loader, get_dialect_config

config = get_dialect_config("snowflake")

Queries Snowflake INFORMATION_SCHEMA, GET_DDL, and SHOW PRIMARY, UNIQUE, and IMPORTED KEYS through the native connector and ADBC adapters. See the Snowflake Guide and Data Dictionary Guide for usage examples.

Dialect Configuration

Setting Value
Dialect Name snowflake
Default Schema None
Version Pattern ^(\d+)\.(\d+)(?:\.(\d+))?
DDL Strategy Native GET_DDL and SHOW KEYS metadata
Catalog .sql Files 11 files (24 named queries)

Capabilities & Type Mappings

Capability Status / Minimum Version Logical Type Target Physical Type
supports_arrays True array ARRAY
supports_clustering True bigint NUMBER(38,0)
supports_cte True binary BINARY
supports_for_update False blob BINARY
supports_geography True boolean BOOLEAN
supports_json True date DATE
supports_maps True datetime TIMESTAMP_TZ
supports_merge True decimal NUMBER
supports_on_conflict False double FLOAT
supports_prepared_statements True float FLOAT
supports_returning False geography GEOGRAPHY
supports_roles True integer NUMBER(38,0)
supports_schemas True json VARIANT
supports_sequences True numeric NUMBER
supports_skip_locked False struct OBJECT
supports_structs True text VARCHAR
supports_time_travel True time TIME
supports_transactional_ddl False timestamp TIMESTAMP_TZ
supports_transactions True timestamptz TIMESTAMP_TZ
supports_update_from True uuid VARCHAR(36)
supports_upsert True varchar VARCHAR({length})
supports_uuid False - -
supports_vectors True - -
supports_window_functions True - -

Adapter Data Dictionary Classes

Catalog SQL Queries

The snowflake dialect pack defines 24 named queries across 11 domain .sql files loaded via DataDictionaryLoader (sqlspec/data_dictionary/dialects/snowflake/):

Domain Pack Source File Named Queries Bind Parameters
columns.sql sqlspec/data_dictionary/dialects/snowflake/sql/columns.sql by_schema, by_table (2 named queries) :schema_name, :table_name
constraints.sql sqlspec/data_dictionary/dialects/snowflake/sql/constraints.sql by_schema, by_table, primary_keys_by_schema, primary_keys_by_table, unique_keys_by_schema, unique_keys_by_table (6 named queries) :schema_name, :table_name
ddl.sql sqlspec/data_dictionary/dialects/snowflake/sql/ddl.sql by_object (1 named query) :object_name, :object_type
foreign_keys.sql sqlspec/data_dictionary/dialects/snowflake/sql/foreign_keys.sql by_schema, by_table (2 named queries) none
objects.sql sqlspec/data_dictionary/dialects/snowflake/sql/objects.sql by_schema (1 named query) :schema_name
routines.sql sqlspec/data_dictionary/dialects/snowflake/sql/routines.sql by_schema, functions_by_schema, procedures_by_schema (3 named queries) :schema_name
schemas.sql sqlspec/data_dictionary/dialects/snowflake/sql/schemas.sql list, current (2 named queries) none
sequences.sql sqlspec/data_dictionary/dialects/snowflake/sql/sequences.sql by_schema, by_name (2 named queries) :schema_name, :sequence_name
tables.sql sqlspec/data_dictionary/dialects/snowflake/sql/tables.sql by_schema, by_table (2 named queries) :schema_name, :table_name
version.sql sqlspec/data_dictionary/dialects/snowflake/sql/version.sql current (1 named query) none
views.sql sqlspec/data_dictionary/dialects/snowflake/sql/views.sql by_schema, by_name (2 named queries) :schema_name, :view_name