Source code for sqlspec.adapters.aiosqlite.data_dictionary

"""SQLite-specific data dictionary for metadata queries via aiosqlite."""

from typing import TYPE_CHECKING, Any, ClassVar, cast

from mypy_extensions import mypyc_attr

from sqlspec.adapters.aiosqlite.core import format_identifier
from sqlspec.data_dictionary import (
    ColumnMetadata,
    ForeignKeyMetadata,
    IndexMetadata,
    TableMetadata,
    VersionInfo,
    get_data_dictionary_loader,
    get_dialect_config,
)
from sqlspec.data_dictionary.dialects.sqlite import list_sqlite_available_features, resolve_sqlite_json_type
from sqlspec.driver import AsyncDataDictionaryBase

if TYPE_CHECKING:
    from sqlspec.adapters.aiosqlite.driver import AiosqliteDriver
    from sqlspec.data_dictionary._types import DialectConfig

__all__ = ("AiosqliteDataDictionary",)

SQLITE_INDEX_EXPRESSION_COLUMN_ID = -2


@mypyc_attr(allow_interpreted_subclasses=True, native_class=False)
class AiosqliteDataDictionary(AsyncDataDictionaryBase):
    """SQLite-specific async data dictionary."""

    dialect: ClassVar[str] = "sqlite"

    def __init__(self) -> None:
        super().__init__()
def get_dialect_config(self) -> "DialectConfig": """Return the dialect configuration for this data dictionary.""" return get_dialect_config(type(self).dialect)