Data Dictionary#
The data dictionary module provides schema introspection, table and column metadata, foreign key resolution, dependency ordering, and database version capability profiling.
Metadata Types#
- class sqlspec.data_dictionary.TableMetadata[source]#
Bases:
TypedDictMetadata for a database table.
- class sqlspec.data_dictionary.TableDetails[source]#
Bases:
ObjectMetadataRich table metadata including optional DDL status.
- class sqlspec.data_dictionary.ColumnMetadata[source]#
Bases:
TypedDictMetadata for a database column.
- schema_name#
Schema containing the table.
- table_name#
Table name.
- column_name#
Name of the column.
- data_type#
Dialect or canonical data type name.
- is_nullable#
Whether the column allows null values.
- column_default#
Default value expression or sequence default.
- ordinal_position#
1-based column position in the table.
- max_length#
Maximum character or byte length.
- numeric_precision#
Numeric precision.
- numeric_scale#
Numeric scale.
- is_primary#
Whether the column is part of the primary key.
- is_unique#
Whether the column has a unique constraint.
- extra#
Dialect-specific extra column attributes.
- column_type#
Full column type specification (e.g. on MySQL).
- column_key#
Index key designation (e.g. MySQL
PRI,UNI,MUL).
- identity_generation#
Identity column generation type (
afor ALWAYS,dfor BY DEFAULT).
- sequence_name#
Name of the sequence owned by a serial or identity column.
- is_generated#
Whether the column is a generated/computed column.
- class sqlspec.data_dictionary.ColumnDetails[source]#
Bases:
ObjectMetadataRich metadata for a column.
- class sqlspec.data_dictionary.ForeignKeyMetadata[source]#
Bases:
objectMetadata for a foreign key constraint.
- class sqlspec.data_dictionary.IndexMetadata[source]#
Bases:
TypedDictMetadata for a database index.
- class sqlspec.data_dictionary.IndexDetails[source]#
Bases:
ObjectMetadataRich metadata for an index.
- class sqlspec.data_dictionary.PartitionMetadata[source]#
Bases:
ObjectMetadataRich metadata for partition, clustering, storage, or table options.
- class sqlspec.data_dictionary.PrivilegeMetadata[source]#
Bases:
ObjectMetadataRich metadata for a grant, role edge, or privilege.
- class sqlspec.data_dictionary.RoutineMetadata[source]#
Bases:
ObjectMetadataRich metadata for a routine, function, procedure, or package member.
Database Capability and Versions#
- class sqlspec.data_dictionary.VersionInfo[source]#
Bases:
objectParsed database version info.
- class sqlspec.data_dictionary.FeatureFlags[source]#
Bases:
TypedDictTyped feature flags for data dictionary dialects.
- class sqlspec.data_dictionary.FeatureVersions[source]#
Bases:
TypedDictTyped feature version requirements for data dictionary dialects.
- class sqlspec.data_dictionary.MetadataCapabilityProfile[source]#
Bases:
objectCapability report for one adapter and dialect.
- get(domain)[source]#
Return capability for a domain, or unknown when it has not been reported.
- Return type:
MetadataCapability
Data Dictionary Loader and Queries#
- class sqlspec.data_dictionary.DataDictionaryLoader[source]#
Bases:
objectLoads and manages data dictionary SQL for all dialects.
- get_domain_query(dialect, domain, query_name, *, mode=None, version=None, required_features=())[source]#
Get a data-dictionary query by dialect, domain, and query name.
- Parameters:
- Return type:
- Returns:
MetadataQuery containing SQL when supported, otherwise an unsupported status.
- get_domain_queries(dialect, domain, query_names, *, mode=None, version=None, required_features=())[source]#
Get multiple data-dictionary queries from one domain pack.
- Parameters:
query_names¶ (
Iterable[str]) -- Query names inside the domain pack.mode¶ (
str|None) -- Optional SQL dialect mode for multi-mode engines.version¶ (
VersionInfo|None) -- Optional database version used for feature gates.required_features¶ (
tuple[str,...]) -- Feature flags/version gates required by every query.
- Return type:
- Returns:
Ordered mapping of normalized query names to metadata query results.
- get_domain_query_text(dialect, domain, query_name, *, mode=None, version=None, required_features=())[source]#
Get raw SQL text for a domain query, or None when unsupported.
- class sqlspec.data_dictionary.MetadataQuery[source]#
Bases:
objectLoaded data-dictionary query plus capability status.
Helper Functions#
- sqlspec.data_dictionary.get_data_dictionary_loader()[source]#
Get singleton data dictionary loader instance.
- Return type:
- Returns:
DataDictionaryLoader singleton.
- sqlspec.data_dictionary.get_dialect_config(dialect)[source]#
Get configuration for a dialect.
- Parameters:
- Return type:
DialectConfig- Returns:
DialectConfig for the requested dialect.
- Raises:
ValueError -- When the dialect is unknown.
- sqlspec.data_dictionary.sort_dependencies(objects, edges, *, order='create')[source]#
Sort metadata objects by typed dependency edges.
- Parameters:
objects¶ (
Iterable[ObjectIdentity]) -- Initial object identities to include in the graph.edges¶ (
Iterable[DependencyEdge]) -- Dependency edges. Edge endpoints are added to the graph automatically.order¶ (
Literal['create','drop']) --"create"for dependencies before dependents,"drop"for dependents before dependencies.
- Return type:
DependencySortResult- Returns:
Ordered objects plus cycle diagnostics if cycles prevented a complete order.