sqlspec 0.47.0__cp314-cp314-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- f68e0789eb443ecb1c2c__mypyc.cp314-win_amd64.pyd +0 -0
- sqlspec/__init__.py +167 -0
- sqlspec/__main__.py +12 -0
- sqlspec/__metadata__.py +14 -0
- sqlspec/_typing.py +714 -0
- sqlspec/adapters/__init__.py +0 -0
- sqlspec/adapters/adbc/__init__.py +13 -0
- sqlspec/adapters/adbc/_typing.py +106 -0
- sqlspec/adapters/adbc/adk/__init__.py +5 -0
- sqlspec/adapters/adbc/adk/store.py +1280 -0
- sqlspec/adapters/adbc/config.py +378 -0
- sqlspec/adapters/adbc/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/adbc/core.py +922 -0
- sqlspec/adapters/adbc/data_dictionary.py +339 -0
- sqlspec/adapters/adbc/driver.py +534 -0
- sqlspec/adapters/adbc/events/__init__.py +5 -0
- sqlspec/adapters/adbc/events/store.py +285 -0
- sqlspec/adapters/adbc/litestar/__init__.py +5 -0
- sqlspec/adapters/adbc/litestar/store.py +534 -0
- sqlspec/adapters/adbc/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/adbc/type_converter.py +142 -0
- sqlspec/adapters/aiomysql/__init__.py +21 -0
- sqlspec/adapters/aiomysql/_typing.py +137 -0
- sqlspec/adapters/aiomysql/adk/__init__.py +5 -0
- sqlspec/adapters/aiomysql/adk/store.py +678 -0
- sqlspec/adapters/aiomysql/config.py +305 -0
- sqlspec/adapters/aiomysql/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/aiomysql/core.py +536 -0
- sqlspec/adapters/aiomysql/data_dictionary.py +121 -0
- sqlspec/adapters/aiomysql/driver.py +386 -0
- sqlspec/adapters/aiomysql/events/__init__.py +5 -0
- sqlspec/adapters/aiomysql/events/store.py +104 -0
- sqlspec/adapters/aiomysql/litestar/__init__.py +5 -0
- sqlspec/adapters/aiomysql/litestar/store.py +314 -0
- sqlspec/adapters/aiosqlite/__init__.py +26 -0
- sqlspec/adapters/aiosqlite/_typing.py +109 -0
- sqlspec/adapters/aiosqlite/adk/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/adk/store.py +829 -0
- sqlspec/adapters/aiosqlite/config.py +315 -0
- sqlspec/adapters/aiosqlite/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/aiosqlite/core.py +315 -0
- sqlspec/adapters/aiosqlite/data_dictionary.py +202 -0
- sqlspec/adapters/aiosqlite/driver.py +311 -0
- sqlspec/adapters/aiosqlite/events/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/events/store.py +20 -0
- sqlspec/adapters/aiosqlite/litestar/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/litestar/store.py +279 -0
- sqlspec/adapters/aiosqlite/pool.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/aiosqlite/pool.py +734 -0
- sqlspec/adapters/asyncmy/__init__.py +21 -0
- sqlspec/adapters/asyncmy/_typing.py +113 -0
- sqlspec/adapters/asyncmy/adk/__init__.py +5 -0
- sqlspec/adapters/asyncmy/adk/store.py +644 -0
- sqlspec/adapters/asyncmy/config.py +307 -0
- sqlspec/adapters/asyncmy/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/asyncmy/core.py +538 -0
- sqlspec/adapters/asyncmy/data_dictionary.py +122 -0
- sqlspec/adapters/asyncmy/driver.py +391 -0
- sqlspec/adapters/asyncmy/events/__init__.py +5 -0
- sqlspec/adapters/asyncmy/events/store.py +104 -0
- sqlspec/adapters/asyncmy/litestar/__init__.py +5 -0
- sqlspec/adapters/asyncmy/litestar/store.py +296 -0
- sqlspec/adapters/asyncpg/__init__.py +26 -0
- sqlspec/adapters/asyncpg/_typing.py +103 -0
- sqlspec/adapters/asyncpg/adk/__init__.py +5 -0
- sqlspec/adapters/asyncpg/adk/store.py +483 -0
- sqlspec/adapters/asyncpg/config.py +575 -0
- sqlspec/adapters/asyncpg/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/asyncpg/core.py +480 -0
- sqlspec/adapters/asyncpg/data_dictionary.py +157 -0
- sqlspec/adapters/asyncpg/driver.py +487 -0
- sqlspec/adapters/asyncpg/events/__init__.py +6 -0
- sqlspec/adapters/asyncpg/events/_hub.py +181 -0
- sqlspec/adapters/asyncpg/events/backend.py +210 -0
- sqlspec/adapters/asyncpg/events/store.py +40 -0
- sqlspec/adapters/asyncpg/litestar/__init__.py +5 -0
- sqlspec/adapters/asyncpg/litestar/store.py +251 -0
- sqlspec/adapters/bigquery/__init__.py +15 -0
- sqlspec/adapters/bigquery/_typing.py +108 -0
- sqlspec/adapters/bigquery/config.py +362 -0
- sqlspec/adapters/bigquery/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/bigquery/core.py +768 -0
- sqlspec/adapters/bigquery/data_dictionary.py +120 -0
- sqlspec/adapters/bigquery/driver.py +542 -0
- sqlspec/adapters/bigquery/events/__init__.py +5 -0
- sqlspec/adapters/bigquery/events/store.py +139 -0
- sqlspec/adapters/bigquery/litestar/__init__.py +5 -0
- sqlspec/adapters/bigquery/litestar/store.py +325 -0
- sqlspec/adapters/bigquery/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/bigquery/type_converter.py +107 -0
- sqlspec/adapters/cockroach_asyncpg/__init__.py +26 -0
- sqlspec/adapters/cockroach_asyncpg/_typing.py +73 -0
- sqlspec/adapters/cockroach_asyncpg/adk/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/adk/store.py +465 -0
- sqlspec/adapters/cockroach_asyncpg/config.py +248 -0
- sqlspec/adapters/cockroach_asyncpg/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/cockroach_asyncpg/core.py +55 -0
- sqlspec/adapters/cockroach_asyncpg/data_dictionary.py +110 -0
- sqlspec/adapters/cockroach_asyncpg/driver.py +142 -0
- sqlspec/adapters/cockroach_asyncpg/events/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/events/store.py +20 -0
- sqlspec/adapters/cockroach_asyncpg/litestar/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/litestar/store.py +142 -0
- sqlspec/adapters/cockroach_psycopg/__init__.py +39 -0
- sqlspec/adapters/cockroach_psycopg/_typing.py +137 -0
- sqlspec/adapters/cockroach_psycopg/adk/__init__.py +13 -0
- sqlspec/adapters/cockroach_psycopg/adk/store.py +1039 -0
- sqlspec/adapters/cockroach_psycopg/config.py +511 -0
- sqlspec/adapters/cockroach_psycopg/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/cockroach_psycopg/core.py +63 -0
- sqlspec/adapters/cockroach_psycopg/data_dictionary.py +220 -0
- sqlspec/adapters/cockroach_psycopg/driver.py +273 -0
- sqlspec/adapters/cockroach_psycopg/events/__init__.py +6 -0
- sqlspec/adapters/cockroach_psycopg/events/store.py +34 -0
- sqlspec/adapters/cockroach_psycopg/litestar/__init__.py +3 -0
- sqlspec/adapters/cockroach_psycopg/litestar/store.py +327 -0
- sqlspec/adapters/duckdb/__init__.py +29 -0
- sqlspec/adapters/duckdb/_typing.py +104 -0
- sqlspec/adapters/duckdb/adk/__init__.py +14 -0
- sqlspec/adapters/duckdb/adk/store.py +935 -0
- sqlspec/adapters/duckdb/config.py +386 -0
- sqlspec/adapters/duckdb/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/duckdb/core.py +332 -0
- sqlspec/adapters/duckdb/data_dictionary.py +140 -0
- sqlspec/adapters/duckdb/driver.py +426 -0
- sqlspec/adapters/duckdb/events/__init__.py +5 -0
- sqlspec/adapters/duckdb/events/store.py +57 -0
- sqlspec/adapters/duckdb/litestar/__init__.py +5 -0
- sqlspec/adapters/duckdb/litestar/store.py +330 -0
- sqlspec/adapters/duckdb/pool.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/duckdb/pool.py +350 -0
- sqlspec/adapters/duckdb/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/duckdb/type_converter.py +118 -0
- sqlspec/adapters/mysqlconnector/__init__.py +39 -0
- sqlspec/adapters/mysqlconnector/_typing.py +186 -0
- sqlspec/adapters/mysqlconnector/adk/__init__.py +15 -0
- sqlspec/adapters/mysqlconnector/adk/store.py +1183 -0
- sqlspec/adapters/mysqlconnector/config.py +421 -0
- sqlspec/adapters/mysqlconnector/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/mysqlconnector/core.py +472 -0
- sqlspec/adapters/mysqlconnector/data_dictionary.py +230 -0
- sqlspec/adapters/mysqlconnector/driver.py +516 -0
- sqlspec/adapters/mysqlconnector/events/__init__.py +8 -0
- sqlspec/adapters/mysqlconnector/events/store.py +98 -0
- sqlspec/adapters/mysqlconnector/litestar/__init__.py +5 -0
- sqlspec/adapters/mysqlconnector/litestar/store.py +426 -0
- sqlspec/adapters/oracledb/__init__.py +39 -0
- sqlspec/adapters/oracledb/_json_handlers.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/_json_handlers.py +196 -0
- sqlspec/adapters/oracledb/_param_types.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/_param_types.py +46 -0
- sqlspec/adapters/oracledb/_typing.py +258 -0
- sqlspec/adapters/oracledb/_uuid_handlers.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/_uuid_handlers.py +163 -0
- sqlspec/adapters/oracledb/_vector_handlers.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/_vector_handlers.py +228 -0
- sqlspec/adapters/oracledb/adk/__init__.py +21 -0
- sqlspec/adapters/oracledb/adk/store.py +2453 -0
- sqlspec/adapters/oracledb/config.py +575 -0
- sqlspec/adapters/oracledb/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/core.py +820 -0
- sqlspec/adapters/oracledb/data_dictionary.py +404 -0
- sqlspec/adapters/oracledb/driver.py +1277 -0
- sqlspec/adapters/oracledb/events/__init__.py +16 -0
- sqlspec/adapters/oracledb/events/_hub.py +345 -0
- sqlspec/adapters/oracledb/events/backend.py +300 -0
- sqlspec/adapters/oracledb/events/store.py +420 -0
- sqlspec/adapters/oracledb/litestar/__init__.py +5 -0
- sqlspec/adapters/oracledb/litestar/store.py +781 -0
- sqlspec/adapters/oracledb/migrations.py +539 -0
- sqlspec/adapters/oracledb/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/oracledb/type_converter.py +211 -0
- sqlspec/adapters/psqlpy/__init__.py +18 -0
- sqlspec/adapters/psqlpy/_typing.py +121 -0
- sqlspec/adapters/psqlpy/adk/__init__.py +5 -0
- sqlspec/adapters/psqlpy/adk/store.py +591 -0
- sqlspec/adapters/psqlpy/config.py +376 -0
- sqlspec/adapters/psqlpy/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/psqlpy/core.py +694 -0
- sqlspec/adapters/psqlpy/data_dictionary.py +121 -0
- sqlspec/adapters/psqlpy/driver.py +411 -0
- sqlspec/adapters/psqlpy/events/__init__.py +6 -0
- sqlspec/adapters/psqlpy/events/_hub.py +204 -0
- sqlspec/adapters/psqlpy/events/backend.py +210 -0
- sqlspec/adapters/psqlpy/events/store.py +20 -0
- sqlspec/adapters/psqlpy/litestar/__init__.py +5 -0
- sqlspec/adapters/psqlpy/litestar/store.py +270 -0
- sqlspec/adapters/psqlpy/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/psqlpy/type_converter.py +113 -0
- sqlspec/adapters/psycopg/__init__.py +38 -0
- sqlspec/adapters/psycopg/_typing.py +218 -0
- sqlspec/adapters/psycopg/adk/__init__.py +10 -0
- sqlspec/adapters/psycopg/adk/store.py +1106 -0
- sqlspec/adapters/psycopg/config.py +695 -0
- sqlspec/adapters/psycopg/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/psycopg/core.py +520 -0
- sqlspec/adapters/psycopg/data_dictionary.py +278 -0
- sqlspec/adapters/psycopg/driver.py +1033 -0
- sqlspec/adapters/psycopg/events/__init__.py +20 -0
- sqlspec/adapters/psycopg/events/_hub.py +388 -0
- sqlspec/adapters/psycopg/events/backend.py +398 -0
- sqlspec/adapters/psycopg/events/store.py +42 -0
- sqlspec/adapters/psycopg/litestar/__init__.py +5 -0
- sqlspec/adapters/psycopg/litestar/store.py +554 -0
- sqlspec/adapters/psycopg/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/psycopg/type_converter.py +93 -0
- sqlspec/adapters/pymysql/__init__.py +21 -0
- sqlspec/adapters/pymysql/_typing.py +92 -0
- sqlspec/adapters/pymysql/adk/__init__.py +5 -0
- sqlspec/adapters/pymysql/adk/store.py +657 -0
- sqlspec/adapters/pymysql/config.py +176 -0
- sqlspec/adapters/pymysql/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/pymysql/core.py +469 -0
- sqlspec/adapters/pymysql/data_dictionary.py +120 -0
- sqlspec/adapters/pymysql/driver.py +271 -0
- sqlspec/adapters/pymysql/events/__init__.py +5 -0
- sqlspec/adapters/pymysql/events/store.py +50 -0
- sqlspec/adapters/pymysql/litestar/__init__.py +5 -0
- sqlspec/adapters/pymysql/litestar/store.py +232 -0
- sqlspec/adapters/pymysql/pool.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/pymysql/pool.py +184 -0
- sqlspec/adapters/spanner/__init__.py +33 -0
- sqlspec/adapters/spanner/_typing.py +102 -0
- sqlspec/adapters/spanner/adk/__init__.py +5 -0
- sqlspec/adapters/spanner/adk/store.py +758 -0
- sqlspec/adapters/spanner/config.py +355 -0
- sqlspec/adapters/spanner/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/spanner/core.py +263 -0
- sqlspec/adapters/spanner/data_dictionary.py +120 -0
- sqlspec/adapters/spanner/driver.py +407 -0
- sqlspec/adapters/spanner/events/__init__.py +5 -0
- sqlspec/adapters/spanner/events/store.py +187 -0
- sqlspec/adapters/spanner/litestar/__init__.py +5 -0
- sqlspec/adapters/spanner/litestar/store.py +291 -0
- sqlspec/adapters/spanner/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/spanner/type_converter.py +342 -0
- sqlspec/adapters/sqlite/__init__.py +19 -0
- sqlspec/adapters/sqlite/_typing.py +123 -0
- sqlspec/adapters/sqlite/adk/__init__.py +5 -0
- sqlspec/adapters/sqlite/adk/store.py +992 -0
- sqlspec/adapters/sqlite/config.py +240 -0
- sqlspec/adapters/sqlite/core.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/sqlite/core.py +357 -0
- sqlspec/adapters/sqlite/data_dictionary.py +198 -0
- sqlspec/adapters/sqlite/driver.py +527 -0
- sqlspec/adapters/sqlite/events/__init__.py +5 -0
- sqlspec/adapters/sqlite/events/store.py +20 -0
- sqlspec/adapters/sqlite/litestar/__init__.py +5 -0
- sqlspec/adapters/sqlite/litestar/store.py +316 -0
- sqlspec/adapters/sqlite/pool.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/sqlite/pool.py +237 -0
- sqlspec/adapters/sqlite/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/adapters/sqlite/type_converter.py +114 -0
- sqlspec/base.py +832 -0
- sqlspec/builder/__init__.py +181 -0
- sqlspec/builder/_base.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_base.py +1071 -0
- sqlspec/builder/_column.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_column.py +521 -0
- sqlspec/builder/_ddl.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_ddl.py +1691 -0
- sqlspec/builder/_delete.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_delete.py +95 -0
- sqlspec/builder/_dml.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_dml.py +386 -0
- sqlspec/builder/_explain.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_explain.py +579 -0
- sqlspec/builder/_expression_wrappers.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_expression_wrappers.py +46 -0
- sqlspec/builder/_factory.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_factory.py +1884 -0
- sqlspec/builder/_insert.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_insert.py +405 -0
- sqlspec/builder/_join.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_join.py +489 -0
- sqlspec/builder/_merge.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_merge.py +823 -0
- sqlspec/builder/_parsing_utils.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_parsing_utils.py +295 -0
- sqlspec/builder/_select.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_select.py +1666 -0
- sqlspec/builder/_temporal.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_temporal.py +167 -0
- sqlspec/builder/_update.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_update.py +173 -0
- sqlspec/builder/_vector_distance.cp314-win_amd64.pyd +0 -0
- sqlspec/builder/_vector_distance.py +330 -0
- sqlspec/cli.py +1095 -0
- sqlspec/config.py +2383 -0
- sqlspec/core/__init__.py +372 -0
- sqlspec/core/_correlation.cp314-win_amd64.pyd +0 -0
- sqlspec/core/_correlation.py +176 -0
- sqlspec/core/_pagination.py +42 -0
- sqlspec/core/_pool.cp314-win_amd64.pyd +0 -0
- sqlspec/core/_pool.py +76 -0
- sqlspec/core/cache.cp314-win_amd64.pyd +0 -0
- sqlspec/core/cache.py +1085 -0
- sqlspec/core/compiler.cp314-win_amd64.pyd +0 -0
- sqlspec/core/compiler.py +1090 -0
- sqlspec/core/config_runtime.cp314-win_amd64.pyd +0 -0
- sqlspec/core/config_runtime.py +174 -0
- sqlspec/core/explain.cp314-win_amd64.pyd +0 -0
- sqlspec/core/explain.py +275 -0
- sqlspec/core/filters.cp314-win_amd64.pyd +0 -0
- sqlspec/core/filters.py +969 -0
- sqlspec/core/hashing.cp314-win_amd64.pyd +0 -0
- sqlspec/core/hashing.py +266 -0
- sqlspec/core/metrics.cp314-win_amd64.pyd +0 -0
- sqlspec/core/metrics.py +83 -0
- sqlspec/core/parameters/__init__.py +72 -0
- sqlspec/core/parameters/_alignment.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_alignment.py +283 -0
- sqlspec/core/parameters/_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_converter.py +554 -0
- sqlspec/core/parameters/_processor.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_processor.py +1182 -0
- sqlspec/core/parameters/_registry.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_registry.py +206 -0
- sqlspec/core/parameters/_transformers.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_transformers.py +324 -0
- sqlspec/core/parameters/_types.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_types.py +536 -0
- sqlspec/core/parameters/_validator.cp314-win_amd64.pyd +0 -0
- sqlspec/core/parameters/_validator.py +171 -0
- sqlspec/core/pipeline.cp314-win_amd64.pyd +0 -0
- sqlspec/core/pipeline.py +333 -0
- sqlspec/core/query_modifiers.cp314-win_amd64.pyd +0 -0
- sqlspec/core/query_modifiers.py +508 -0
- sqlspec/core/result/__init__.py +25 -0
- sqlspec/core/result/_base.cp314-win_amd64.pyd +0 -0
- sqlspec/core/result/_base.py +1232 -0
- sqlspec/core/result/_io.cp314-win_amd64.pyd +0 -0
- sqlspec/core/result/_io.py +28 -0
- sqlspec/core/splitter.cp314-win_amd64.pyd +0 -0
- sqlspec/core/splitter.py +1021 -0
- sqlspec/core/sqlcommenter.cp314-win_amd64.pyd +0 -0
- sqlspec/core/sqlcommenter.py +249 -0
- sqlspec/core/stack.cp314-win_amd64.pyd +0 -0
- sqlspec/core/stack.py +163 -0
- sqlspec/core/statement.cp314-win_amd64.pyd +0 -0
- sqlspec/core/statement.py +1865 -0
- sqlspec/core/type_converter.cp314-win_amd64.pyd +0 -0
- sqlspec/core/type_converter.py +340 -0
- sqlspec/data_dictionary/__init__.py +22 -0
- sqlspec/data_dictionary/_loader.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/_loader.py +138 -0
- sqlspec/data_dictionary/_registry.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/_registry.py +74 -0
- sqlspec/data_dictionary/_types.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/_types.py +121 -0
- sqlspec/data_dictionary/dialects/__init__.py +21 -0
- sqlspec/data_dictionary/dialects/bigquery.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/bigquery.py +81 -0
- sqlspec/data_dictionary/dialects/cockroachdb.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/cockroachdb.py +54 -0
- sqlspec/data_dictionary/dialects/duckdb.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/duckdb.py +47 -0
- sqlspec/data_dictionary/dialects/mysql.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/mysql.py +53 -0
- sqlspec/data_dictionary/dialects/oracle.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/oracle.py +197 -0
- sqlspec/data_dictionary/dialects/postgres.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/postgres.py +69 -0
- sqlspec/data_dictionary/dialects/spanner.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/spanner.py +37 -0
- sqlspec/data_dictionary/dialects/sqlite.cp314-win_amd64.pyd +0 -0
- sqlspec/data_dictionary/dialects/sqlite.py +59 -0
- sqlspec/data_dictionary/sql/.gitkeep +0 -0
- sqlspec/data_dictionary/sql/bigquery/columns.sql +23 -0
- sqlspec/data_dictionary/sql/bigquery/foreign_keys.sql +34 -0
- sqlspec/data_dictionary/sql/bigquery/indexes.sql +19 -0
- sqlspec/data_dictionary/sql/bigquery/tables.sql +33 -0
- sqlspec/data_dictionary/sql/bigquery/version.sql +3 -0
- sqlspec/data_dictionary/sql/cockroachdb/columns.sql +34 -0
- sqlspec/data_dictionary/sql/cockroachdb/foreign_keys.sql +40 -0
- sqlspec/data_dictionary/sql/cockroachdb/indexes.sql +32 -0
- sqlspec/data_dictionary/sql/cockroachdb/tables.sql +44 -0
- sqlspec/data_dictionary/sql/cockroachdb/version.sql +3 -0
- sqlspec/data_dictionary/sql/duckdb/columns.sql +23 -0
- sqlspec/data_dictionary/sql/duckdb/foreign_keys.sql +36 -0
- sqlspec/data_dictionary/sql/duckdb/indexes.sql +19 -0
- sqlspec/data_dictionary/sql/duckdb/tables.sql +38 -0
- sqlspec/data_dictionary/sql/duckdb/version.sql +3 -0
- sqlspec/data_dictionary/sql/mysql/columns.sql +23 -0
- sqlspec/data_dictionary/sql/mysql/foreign_keys.sql +28 -0
- sqlspec/data_dictionary/sql/mysql/indexes.sql +26 -0
- sqlspec/data_dictionary/sql/mysql/tables.sql +33 -0
- sqlspec/data_dictionary/sql/mysql/version.sql +3 -0
- sqlspec/data_dictionary/sql/oracle/columns.sql +23 -0
- sqlspec/data_dictionary/sql/oracle/foreign_keys.sql +48 -0
- sqlspec/data_dictionary/sql/oracle/indexes.sql +44 -0
- sqlspec/data_dictionary/sql/oracle/tables.sql +25 -0
- sqlspec/data_dictionary/sql/oracle/version.sql +20 -0
- sqlspec/data_dictionary/sql/postgres/columns.sql +34 -0
- sqlspec/data_dictionary/sql/postgres/foreign_keys.sql +40 -0
- sqlspec/data_dictionary/sql/postgres/indexes.sql +56 -0
- sqlspec/data_dictionary/sql/postgres/tables.sql +44 -0
- sqlspec/data_dictionary/sql/postgres/version.sql +3 -0
- sqlspec/data_dictionary/sql/spanner/columns.sql +23 -0
- sqlspec/data_dictionary/sql/spanner/foreign_keys.sql +70 -0
- sqlspec/data_dictionary/sql/spanner/indexes.sql +30 -0
- sqlspec/data_dictionary/sql/spanner/tables.sql +9 -0
- sqlspec/data_dictionary/sql/spanner/version.sql +3 -0
- sqlspec/data_dictionary/sql/sqlite/columns.sql +23 -0
- sqlspec/data_dictionary/sql/sqlite/foreign_keys.sql +22 -0
- sqlspec/data_dictionary/sql/sqlite/indexes.sql +7 -0
- sqlspec/data_dictionary/sql/sqlite/tables.sql +28 -0
- sqlspec/data_dictionary/sql/sqlite/version.sql +3 -0
- sqlspec/dialects/__init__.py +22 -0
- sqlspec/dialects/_compat.cp314-win_amd64.pyd +0 -0
- sqlspec/dialects/_compat.py +14 -0
- sqlspec/dialects/postgres/__init__.py +9 -0
- sqlspec/dialects/postgres/_generators.cp314-win_amd64.pyd +0 -0
- sqlspec/dialects/postgres/_generators.py +57 -0
- sqlspec/dialects/postgres/_operators.cp314-win_amd64.pyd +0 -0
- sqlspec/dialects/postgres/_operators.py +81 -0
- sqlspec/dialects/postgres/_paradedb.py +50 -0
- sqlspec/dialects/postgres/_pgvector.py +36 -0
- sqlspec/dialects/spanner/__init__.py +6 -0
- sqlspec/dialects/spanner/_generators.cp314-win_amd64.pyd +0 -0
- sqlspec/dialects/spanner/_generators.py +206 -0
- sqlspec/dialects/spanner/_spangres.py +77 -0
- sqlspec/dialects/spanner/_spanner.py +179 -0
- sqlspec/driver/__init__.py +49 -0
- sqlspec/driver/_async.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_async.py +1830 -0
- sqlspec/driver/_common.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_common.py +2292 -0
- sqlspec/driver/_exception_handler.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_exception_handler.py +108 -0
- sqlspec/driver/_query_cache.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_query_cache.py +96 -0
- sqlspec/driver/_sql_helpers.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_sql_helpers.py +139 -0
- sqlspec/driver/_storage_helpers.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_storage_helpers.py +153 -0
- sqlspec/driver/_sync.cp314-win_amd64.pyd +0 -0
- sqlspec/driver/_sync.py +1817 -0
- sqlspec/exceptions.cp314-win_amd64.pyd +0 -0
- sqlspec/exceptions.py +480 -0
- sqlspec/extensions/__init__.py +0 -0
- sqlspec/extensions/adk/__init__.py +84 -0
- sqlspec/extensions/adk/_config_utils.py +199 -0
- sqlspec/extensions/adk/_types.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/adk/_types.py +41 -0
- sqlspec/extensions/adk/artifact/__init__.py +57 -0
- sqlspec/extensions/adk/artifact/_types.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/adk/artifact/_types.py +32 -0
- sqlspec/extensions/adk/artifact/service.py +508 -0
- sqlspec/extensions/adk/artifact/store.py +361 -0
- sqlspec/extensions/adk/converters.py +212 -0
- sqlspec/extensions/adk/memory/__init__.py +69 -0
- sqlspec/extensions/adk/memory/_types.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/adk/memory/_types.py +30 -0
- sqlspec/extensions/adk/memory/converters.py +225 -0
- sqlspec/extensions/adk/memory/service.py +316 -0
- sqlspec/extensions/adk/memory/store.py +525 -0
- sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +184 -0
- sqlspec/extensions/adk/migrations/__init__.py +0 -0
- sqlspec/extensions/adk/service.py +279 -0
- sqlspec/extensions/adk/store.py +590 -0
- sqlspec/extensions/events/__init__.py +51 -0
- sqlspec/extensions/events/_channel.py +703 -0
- sqlspec/extensions/events/_hints.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/events/_hints.py +45 -0
- sqlspec/extensions/events/_models.py +23 -0
- sqlspec/extensions/events/_payload.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/events/_payload.py +69 -0
- sqlspec/extensions/events/_protocols.py +134 -0
- sqlspec/extensions/events/_queue.py +462 -0
- sqlspec/extensions/events/_store.py +209 -0
- sqlspec/extensions/events/migrations/0001_create_event_queue.py +59 -0
- sqlspec/extensions/events/migrations/__init__.py +3 -0
- sqlspec/extensions/fastapi/__init__.py +22 -0
- sqlspec/extensions/fastapi/extension.py +391 -0
- sqlspec/extensions/fastapi/providers.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/fastapi/providers.py +712 -0
- sqlspec/extensions/flask/__init__.py +38 -0
- sqlspec/extensions/flask/_state.py +87 -0
- sqlspec/extensions/flask/_utils.py +71 -0
- sqlspec/extensions/flask/extension.py +539 -0
- sqlspec/extensions/litestar/__init__.py +31 -0
- sqlspec/extensions/litestar/_utils.py +52 -0
- sqlspec/extensions/litestar/channels.py +165 -0
- sqlspec/extensions/litestar/cli.py +102 -0
- sqlspec/extensions/litestar/config.py +90 -0
- sqlspec/extensions/litestar/handlers.py +316 -0
- sqlspec/extensions/litestar/migrations/0001_create_session_table.py +137 -0
- sqlspec/extensions/litestar/migrations/__init__.py +3 -0
- sqlspec/extensions/litestar/plugin.py +1066 -0
- sqlspec/extensions/litestar/providers.cp314-win_amd64.pyd +0 -0
- sqlspec/extensions/litestar/providers.py +784 -0
- sqlspec/extensions/litestar/store.py +298 -0
- sqlspec/extensions/otel/__init__.py +58 -0
- sqlspec/extensions/prometheus/__init__.py +113 -0
- sqlspec/extensions/sanic/__init__.py +19 -0
- sqlspec/extensions/sanic/_state.py +43 -0
- sqlspec/extensions/sanic/_utils.py +127 -0
- sqlspec/extensions/sanic/extension.py +647 -0
- sqlspec/extensions/starlette/__init__.py +22 -0
- sqlspec/extensions/starlette/_state.py +42 -0
- sqlspec/extensions/starlette/_utils.py +96 -0
- sqlspec/extensions/starlette/extension.py +374 -0
- sqlspec/extensions/starlette/middleware.py +281 -0
- sqlspec/loader.cp314-win_amd64.pyd +0 -0
- sqlspec/loader.py +727 -0
- sqlspec/migrations/__init__.py +39 -0
- sqlspec/migrations/base.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/base.py +862 -0
- sqlspec/migrations/commands.py +2151 -0
- sqlspec/migrations/context.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/context.py +157 -0
- sqlspec/migrations/fix.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/fix.py +204 -0
- sqlspec/migrations/loaders.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/loaders.py +443 -0
- sqlspec/migrations/runner.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/runner.py +1195 -0
- sqlspec/migrations/squash.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/squash.py +490 -0
- sqlspec/migrations/templates.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/templates.py +234 -0
- sqlspec/migrations/tracker.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/tracker.py +792 -0
- sqlspec/migrations/utils.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/utils.py +256 -0
- sqlspec/migrations/validation.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/validation.py +359 -0
- sqlspec/migrations/version.cp314-win_amd64.pyd +0 -0
- sqlspec/migrations/version.py +446 -0
- sqlspec/observability/__init__.py +57 -0
- sqlspec/observability/_common.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_common.py +77 -0
- sqlspec/observability/_config.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_config.py +364 -0
- sqlspec/observability/_diagnostics.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_diagnostics.py +74 -0
- sqlspec/observability/_dispatcher.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_dispatcher.py +200 -0
- sqlspec/observability/_formatters/__init__.py +13 -0
- sqlspec/observability/_formatters/_aws.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_formatters/_aws.py +102 -0
- sqlspec/observability/_formatters/_azure.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_formatters/_azure.py +96 -0
- sqlspec/observability/_formatters/_base.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_formatters/_base.py +57 -0
- sqlspec/observability/_formatters/_gcp.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_formatters/_gcp.py +131 -0
- sqlspec/observability/_formatting.py +58 -0
- sqlspec/observability/_observer.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_observer.py +361 -0
- sqlspec/observability/_runtime.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_runtime.py +461 -0
- sqlspec/observability/_sampling.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_sampling.py +188 -0
- sqlspec/observability/_spans.cp314-win_amd64.pyd +0 -0
- sqlspec/observability/_spans.py +161 -0
- sqlspec/protocols.py +955 -0
- sqlspec/py.typed +0 -0
- sqlspec/service.py +433 -0
- sqlspec/storage/__init__.py +48 -0
- sqlspec/storage/_arrow_payload.py +68 -0
- sqlspec/storage/_paths.cp314-win_amd64.pyd +0 -0
- sqlspec/storage/_paths.py +58 -0
- sqlspec/storage/_utils.py +46 -0
- sqlspec/storage/backends/__init__.py +1 -0
- sqlspec/storage/backends/base.cp314-win_amd64.pyd +0 -0
- sqlspec/storage/backends/base.py +374 -0
- sqlspec/storage/backends/fsspec.py +574 -0
- sqlspec/storage/backends/local.py +468 -0
- sqlspec/storage/backends/obstore.py +956 -0
- sqlspec/storage/errors.cp314-win_amd64.pyd +0 -0
- sqlspec/storage/errors.py +102 -0
- sqlspec/storage/pipeline.cp314-win_amd64.pyd +0 -0
- sqlspec/storage/pipeline.py +628 -0
- sqlspec/storage/registry.cp314-win_amd64.pyd +0 -0
- sqlspec/storage/registry.py +329 -0
- sqlspec/typing.py +405 -0
- sqlspec/utils/__init__.py +7 -0
- sqlspec/utils/arrow_helpers.py +384 -0
- sqlspec/utils/config_tools.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/config_tools.py +314 -0
- sqlspec/utils/correlation.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/correlation.py +134 -0
- sqlspec/utils/deprecation.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/deprecation.py +157 -0
- sqlspec/utils/dispatch.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/dispatch.py +101 -0
- sqlspec/utils/fixtures.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/fixtures.py +260 -0
- sqlspec/utils/logging.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/logging.py +251 -0
- sqlspec/utils/module_loader.py +306 -0
- sqlspec/utils/portal.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/portal.py +377 -0
- sqlspec/utils/schema.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/schema.py +1040 -0
- sqlspec/utils/serializers/__init__.py +30 -0
- sqlspec/utils/serializers/_json.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/serializers/_json.py +415 -0
- sqlspec/utils/serializers/_numpy.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/serializers/_numpy.py +65 -0
- sqlspec/utils/serializers/_schema.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/serializers/_schema.py +285 -0
- sqlspec/utils/singleton.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/singleton.py +41 -0
- sqlspec/utils/sync_tools.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/sync_tools.py +316 -0
- sqlspec/utils/text.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/text.py +109 -0
- sqlspec/utils/type_converters.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/type_converters.py +216 -0
- sqlspec/utils/type_guards.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/type_guards.py +1508 -0
- sqlspec/utils/uuids.cp314-win_amd64.pyd +0 -0
- sqlspec/utils/uuids.py +241 -0
- sqlspec-0.47.0.dist-info/METADATA +202 -0
- sqlspec-0.47.0.dist-info/RECORD +621 -0
- sqlspec-0.47.0.dist-info/WHEEL +4 -0
- sqlspec-0.47.0.dist-info/entry_points.txt +6 -0
- sqlspec-0.47.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
"""ADBC database configuration."""
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING, Any, ClassVar, TypedDict, cast
|
|
4
|
+
|
|
5
|
+
from typing_extensions import NotRequired
|
|
6
|
+
|
|
7
|
+
from sqlspec.adapters.adbc._typing import AdbcConnection
|
|
8
|
+
from sqlspec.adapters.adbc.core import (
|
|
9
|
+
apply_driver_features,
|
|
10
|
+
build_connection_config,
|
|
11
|
+
build_postgres_extension_probe_names,
|
|
12
|
+
detect_postgres_extensions,
|
|
13
|
+
get_statement_config,
|
|
14
|
+
is_postgres_dialect,
|
|
15
|
+
resolve_dialect_from_config,
|
|
16
|
+
resolve_driver_connect_func,
|
|
17
|
+
resolve_postgres_extension_state,
|
|
18
|
+
resolve_runtime_statement_config,
|
|
19
|
+
)
|
|
20
|
+
from sqlspec.adapters.adbc.driver import AdbcCursor, AdbcDriver, AdbcExceptionHandler, AdbcSessionContext
|
|
21
|
+
from sqlspec.config import ExtensionConfigs, NoPoolSyncConfig
|
|
22
|
+
from sqlspec.core import StatementConfig
|
|
23
|
+
from sqlspec.driver._sync import SyncPoolConnectionContext, SyncPoolSessionFactory
|
|
24
|
+
from sqlspec.exceptions import ImproperConfigurationError
|
|
25
|
+
from sqlspec.extensions.events import EventRuntimeHints
|
|
26
|
+
from sqlspec.utils.config_tools import normalize_connection_config
|
|
27
|
+
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from collections.abc import Callable
|
|
30
|
+
from types import TracebackType
|
|
31
|
+
|
|
32
|
+
from sqlspec.observability import ObservabilityConfig
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
__all__ = ("AdbcConfig", "AdbcConnectionParams", "AdbcDriverFeatures")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class AdbcConnectionParams(TypedDict):
|
|
39
|
+
"""ADBC connection parameters."""
|
|
40
|
+
|
|
41
|
+
uri: NotRequired[str]
|
|
42
|
+
driver_name: NotRequired[str]
|
|
43
|
+
db_kwargs: NotRequired[dict[str, Any]]
|
|
44
|
+
conn_kwargs: NotRequired[dict[str, Any]]
|
|
45
|
+
adbc_driver_manager_entrypoint: NotRequired[str]
|
|
46
|
+
autocommit: NotRequired[bool]
|
|
47
|
+
isolation_level: NotRequired[str]
|
|
48
|
+
batch_size: NotRequired[int]
|
|
49
|
+
query_timeout: NotRequired[float]
|
|
50
|
+
connection_timeout: NotRequired[float]
|
|
51
|
+
ssl_mode: NotRequired[str]
|
|
52
|
+
ssl_cert: NotRequired[str]
|
|
53
|
+
ssl_key: NotRequired[str]
|
|
54
|
+
ssl_ca: NotRequired[str]
|
|
55
|
+
username: NotRequired[str]
|
|
56
|
+
password: NotRequired[str]
|
|
57
|
+
token: NotRequired[str]
|
|
58
|
+
project_id: NotRequired[str]
|
|
59
|
+
dataset_id: NotRequired[str]
|
|
60
|
+
account: NotRequired[str]
|
|
61
|
+
warehouse: NotRequired[str]
|
|
62
|
+
database: NotRequired[str]
|
|
63
|
+
schema: NotRequired[str]
|
|
64
|
+
role: NotRequired[str]
|
|
65
|
+
authorization_header: NotRequired[str]
|
|
66
|
+
grpc_options: NotRequired[dict[str, Any]]
|
|
67
|
+
gizmosql_backend: NotRequired[str]
|
|
68
|
+
tls_skip_verify: NotRequired[bool]
|
|
69
|
+
extra: NotRequired[dict[str, Any]]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class AdbcDriverFeatures(TypedDict):
|
|
73
|
+
"""ADBC driver feature configuration.
|
|
74
|
+
|
|
75
|
+
Controls optional type handling and serialization behavior for the ADBC adapter.
|
|
76
|
+
These features configure how data is converted between Python and Arrow types.
|
|
77
|
+
|
|
78
|
+
Attributes:
|
|
79
|
+
json_serializer: JSON serialization function to use.
|
|
80
|
+
Callable that takes Any and returns str (JSON string).
|
|
81
|
+
Default: sqlspec.utils.serializers.to_json
|
|
82
|
+
enable_cast_detection: Enable cast-aware parameter processing.
|
|
83
|
+
When True, detects SQL casts (e.g., ::JSONB) and applies appropriate
|
|
84
|
+
serialization. Currently used for PostgreSQL JSONB handling.
|
|
85
|
+
Default: True
|
|
86
|
+
enable_strict_type_coercion: Enforce strict type coercion rules.
|
|
87
|
+
When True, raises errors for unsupported type conversions.
|
|
88
|
+
When False, attempts best-effort conversion.
|
|
89
|
+
Default: False
|
|
90
|
+
strict_type_coercion: Alias for enable_strict_type_coercion.
|
|
91
|
+
enable_arrow_extension_types: Enable PyArrow extension type support.
|
|
92
|
+
When True, preserves Arrow extension type metadata when reading data.
|
|
93
|
+
When False, falls back to storage types.
|
|
94
|
+
Default: True
|
|
95
|
+
arrow_extension_types: Alias for enable_arrow_extension_types.
|
|
96
|
+
enable_pgvector: Enable automatic pgvector extension detection.
|
|
97
|
+
When True and the resolved dialect is PostgreSQL, queries ``pg_extension``
|
|
98
|
+
on the first connection to check for the ``vector`` extension.
|
|
99
|
+
Defaults to True when the ``pgvector`` Python package is installed.
|
|
100
|
+
enable_paradedb: Enable ParadeDB (pg_search) extension detection.
|
|
101
|
+
When True and the resolved dialect is PostgreSQL, queries ``pg_extension``
|
|
102
|
+
on the first connection to check for the ``pg_search`` extension.
|
|
103
|
+
Defaults to True. Independent of enable_pgvector.
|
|
104
|
+
enable_events: Enable database event channel support.
|
|
105
|
+
Defaults to True when extension_config["events"] is configured.
|
|
106
|
+
Provides pub/sub capabilities via table-backed queue (ADBC has no native pub/sub).
|
|
107
|
+
Requires extension_config["events"] for migration setup.
|
|
108
|
+
events_backend: Event channel backend selection.
|
|
109
|
+
Only option: "table_queue" (durable table-backed queue with retries and exactly-once delivery).
|
|
110
|
+
ADBC does not have native pub/sub, so table_queue is the only backend.
|
|
111
|
+
Defaults to "table_queue".
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
json_serializer: "NotRequired[Callable[[Any], str]]"
|
|
115
|
+
enable_cast_detection: NotRequired[bool]
|
|
116
|
+
enable_strict_type_coercion: NotRequired[bool]
|
|
117
|
+
strict_type_coercion: NotRequired[bool]
|
|
118
|
+
enable_arrow_extension_types: NotRequired[bool]
|
|
119
|
+
arrow_extension_types: NotRequired[bool]
|
|
120
|
+
enable_pgvector: NotRequired[bool]
|
|
121
|
+
enable_paradedb: NotRequired[bool]
|
|
122
|
+
enable_events: NotRequired[bool]
|
|
123
|
+
events_backend: NotRequired[str]
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class AdbcConnectionContext(SyncPoolConnectionContext):
|
|
127
|
+
"""Context manager for ADBC connections."""
|
|
128
|
+
|
|
129
|
+
__slots__ = ("_connection",)
|
|
130
|
+
|
|
131
|
+
def __init__(self, config: "AdbcConfig") -> None:
|
|
132
|
+
super().__init__(config)
|
|
133
|
+
self._connection: AdbcConnection | None = None
|
|
134
|
+
|
|
135
|
+
def __enter__(self) -> "AdbcConnection":
|
|
136
|
+
self._connection = self._config.create_connection()
|
|
137
|
+
return cast("AdbcConnection", self._connection)
|
|
138
|
+
|
|
139
|
+
def __exit__(
|
|
140
|
+
self, exc_type: "type[BaseException] | None", exc_val: "BaseException | None", exc_tb: "TracebackType | None"
|
|
141
|
+
) -> bool | None:
|
|
142
|
+
if self._connection:
|
|
143
|
+
self._connection.close()
|
|
144
|
+
self._connection = None
|
|
145
|
+
return None
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class _AdbcSessionConnectionHandler(SyncPoolSessionFactory):
|
|
149
|
+
__slots__ = ("_connection",)
|
|
150
|
+
|
|
151
|
+
def __init__(self, config: "AdbcConfig") -> None:
|
|
152
|
+
super().__init__(config)
|
|
153
|
+
self._connection: AdbcConnection | None = None
|
|
154
|
+
|
|
155
|
+
def acquire_connection(self) -> "AdbcConnection":
|
|
156
|
+
self._connection = self._config.create_connection()
|
|
157
|
+
return cast("AdbcConnection", self._connection)
|
|
158
|
+
|
|
159
|
+
def release_connection(self, _conn: "AdbcConnection", **kwargs: Any) -> None:
|
|
160
|
+
if self._connection is None:
|
|
161
|
+
return
|
|
162
|
+
self._connection.close()
|
|
163
|
+
self._connection = None
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class AdbcConfig(NoPoolSyncConfig[AdbcConnection, AdbcDriver]):
|
|
167
|
+
"""ADBC configuration for Arrow Database Connectivity.
|
|
168
|
+
|
|
169
|
+
ADBC provides an interface for connecting to multiple database systems
|
|
170
|
+
with Arrow-native data transfer.
|
|
171
|
+
|
|
172
|
+
Supports multiple database backends including PostgreSQL, SQLite, DuckDB,
|
|
173
|
+
BigQuery, and Snowflake with automatic driver detection and loading.
|
|
174
|
+
|
|
175
|
+
Example::
|
|
176
|
+
|
|
177
|
+
config = AdbcConfig(
|
|
178
|
+
connection_config=AdbcConnectionParams(
|
|
179
|
+
uri="postgresql://user:pass@localhost/db"
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
driver_type: ClassVar[type[AdbcDriver]] = AdbcDriver
|
|
185
|
+
connection_type: "ClassVar[type[AdbcConnection]]" = AdbcConnection
|
|
186
|
+
supports_transactional_ddl: ClassVar[bool] = False
|
|
187
|
+
supports_native_arrow_export: "ClassVar[bool]" = True
|
|
188
|
+
supports_native_arrow_import: "ClassVar[bool]" = True
|
|
189
|
+
supports_native_parquet_export: "ClassVar[bool]" = True
|
|
190
|
+
supports_native_parquet_import: "ClassVar[bool]" = True
|
|
191
|
+
storage_partition_strategies: "ClassVar[tuple[str, ...]]" = ("fixed", "rows_per_chunk")
|
|
192
|
+
_connection_context_class: "ClassVar[type[AdbcConnectionContext]]" = AdbcConnectionContext
|
|
193
|
+
_session_factory_class: "ClassVar[type[_AdbcSessionConnectionHandler]]" = _AdbcSessionConnectionHandler
|
|
194
|
+
_session_context_class: "ClassVar[type[AdbcSessionContext]]" = AdbcSessionContext
|
|
195
|
+
_default_statement_config = StatementConfig()
|
|
196
|
+
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
199
|
+
*,
|
|
200
|
+
connection_config: "AdbcConnectionParams | dict[str, Any] | None" = None,
|
|
201
|
+
connection_instance: "Any" = None,
|
|
202
|
+
migration_config: "dict[str, Any] | None" = None,
|
|
203
|
+
statement_config: StatementConfig | None = None,
|
|
204
|
+
driver_features: "AdbcDriverFeatures | dict[str, Any] | None" = None,
|
|
205
|
+
bind_key: str | None = None,
|
|
206
|
+
extension_config: "ExtensionConfigs | None" = None,
|
|
207
|
+
observability_config: "ObservabilityConfig | None" = None,
|
|
208
|
+
**kwargs: Any,
|
|
209
|
+
) -> None:
|
|
210
|
+
"""Initialize configuration.
|
|
211
|
+
|
|
212
|
+
Args:
|
|
213
|
+
connection_config: Connection configuration parameters
|
|
214
|
+
connection_instance: Pre-created connection instance to use instead of creating new one
|
|
215
|
+
migration_config: Migration configuration
|
|
216
|
+
statement_config: Default SQL statement configuration
|
|
217
|
+
driver_features: Driver feature configuration (AdbcDriverFeatures)
|
|
218
|
+
bind_key: Optional unique identifier for this configuration
|
|
219
|
+
extension_config: Extension-specific configuration (e.g., Litestar plugin settings)
|
|
220
|
+
observability_config: Adapter-level observability overrides for lifecycle hooks and observers
|
|
221
|
+
**kwargs: Additional keyword arguments passed to the base configuration.
|
|
222
|
+
"""
|
|
223
|
+
self.connection_config = normalize_connection_config(connection_config)
|
|
224
|
+
self._pgvector_available: bool | None = None
|
|
225
|
+
self._paradedb_available: bool | None = None
|
|
226
|
+
|
|
227
|
+
if statement_config is None:
|
|
228
|
+
statement_config = get_statement_config(resolve_dialect_from_config(self.connection_config))
|
|
229
|
+
|
|
230
|
+
statement_config, driver_features = apply_driver_features(statement_config, driver_features)
|
|
231
|
+
|
|
232
|
+
super().__init__(
|
|
233
|
+
connection_config=self.connection_config,
|
|
234
|
+
connection_instance=connection_instance,
|
|
235
|
+
migration_config=migration_config,
|
|
236
|
+
statement_config=statement_config,
|
|
237
|
+
driver_features=driver_features,
|
|
238
|
+
bind_key=bind_key,
|
|
239
|
+
extension_config=extension_config,
|
|
240
|
+
observability_config=observability_config,
|
|
241
|
+
**kwargs,
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
def create_connection(self) -> AdbcConnection:
|
|
245
|
+
"""Create and return a new connection using the specified driver.
|
|
246
|
+
|
|
247
|
+
Returns:
|
|
248
|
+
A new connection instance.
|
|
249
|
+
|
|
250
|
+
Raises:
|
|
251
|
+
ImproperConfigurationError: If the connection could not be established.
|
|
252
|
+
"""
|
|
253
|
+
|
|
254
|
+
try:
|
|
255
|
+
connection = resolve_driver_connect_func(
|
|
256
|
+
self.connection_config.get("driver_name"), self.connection_config.get("uri")
|
|
257
|
+
)(**build_connection_config(self.connection_config))
|
|
258
|
+
return cast("AdbcConnection", connection)
|
|
259
|
+
except Exception as e:
|
|
260
|
+
driver_name = self.connection_config.get("driver_name", "Unknown")
|
|
261
|
+
msg = f"Could not configure connection using driver '{driver_name}'. Error: {e}"
|
|
262
|
+
raise ImproperConfigurationError(msg) from e
|
|
263
|
+
|
|
264
|
+
def _update_dialect_for_extensions(self) -> None:
|
|
265
|
+
"""Update statement_config dialect based on detected extensions.
|
|
266
|
+
|
|
267
|
+
Priority: paradedb > pgvector > postgres (default).
|
|
268
|
+
Only switches when current dialect is ``postgres``.
|
|
269
|
+
"""
|
|
270
|
+
current_dialect = getattr(self.statement_config, "dialect", "postgres")
|
|
271
|
+
if current_dialect != "postgres":
|
|
272
|
+
return
|
|
273
|
+
|
|
274
|
+
if self._paradedb_available:
|
|
275
|
+
self.statement_config = self.statement_config.replace(dialect="paradedb")
|
|
276
|
+
elif self._pgvector_available:
|
|
277
|
+
self.statement_config = self.statement_config.replace(dialect="pgvector")
|
|
278
|
+
|
|
279
|
+
def _detect_extensions_if_needed(self) -> None:
|
|
280
|
+
"""Detect postgres extensions on first call, caching results.
|
|
281
|
+
|
|
282
|
+
Only queries ``pg_extension`` when the resolved dialect is PostgreSQL
|
|
283
|
+
and detection has not yet run (``_pgvector_available is None``).
|
|
284
|
+
"""
|
|
285
|
+
if self._pgvector_available is not None:
|
|
286
|
+
return
|
|
287
|
+
|
|
288
|
+
dialect = getattr(self.statement_config, "dialect", "")
|
|
289
|
+
if not is_postgres_dialect(dialect):
|
|
290
|
+
self._pgvector_available = False
|
|
291
|
+
self._paradedb_available = False
|
|
292
|
+
return
|
|
293
|
+
|
|
294
|
+
connection = self.create_connection()
|
|
295
|
+
try:
|
|
296
|
+
probe_names = build_postgres_extension_probe_names(self.driver_features)
|
|
297
|
+
pgvector_available, paradedb_available = detect_postgres_extensions(
|
|
298
|
+
connection, enable_pgvector="vector" in probe_names, enable_paradedb="pg_search" in probe_names
|
|
299
|
+
)
|
|
300
|
+
finally:
|
|
301
|
+
connection.close()
|
|
302
|
+
|
|
303
|
+
detected_extensions: set[str] = set()
|
|
304
|
+
if pgvector_available:
|
|
305
|
+
detected_extensions.add("vector")
|
|
306
|
+
if paradedb_available:
|
|
307
|
+
detected_extensions.add("pg_search")
|
|
308
|
+
self.statement_config, self._pgvector_available, self._paradedb_available = resolve_postgres_extension_state(
|
|
309
|
+
self.statement_config, self.driver_features, detected_extensions
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
def provide_connection(self, *args: Any, **kwargs: Any) -> "AdbcConnectionContext":
|
|
313
|
+
"""Provide a connection context manager.
|
|
314
|
+
|
|
315
|
+
Args:
|
|
316
|
+
*args: Additional arguments.
|
|
317
|
+
**kwargs: Additional keyword arguments.
|
|
318
|
+
|
|
319
|
+
Returns:
|
|
320
|
+
A connection context manager.
|
|
321
|
+
"""
|
|
322
|
+
return AdbcConnectionContext(self)
|
|
323
|
+
|
|
324
|
+
def provide_session(
|
|
325
|
+
self, *_args: Any, statement_config: "StatementConfig | None" = None, **_kwargs: Any
|
|
326
|
+
) -> "AdbcSessionContext":
|
|
327
|
+
"""Provide a driver session context manager.
|
|
328
|
+
|
|
329
|
+
On first call with a PostgreSQL backend, detects pgvector/paradedb
|
|
330
|
+
extensions and updates the dialect accordingly.
|
|
331
|
+
|
|
332
|
+
Args:
|
|
333
|
+
*_args: Additional arguments.
|
|
334
|
+
statement_config: Optional statement configuration override.
|
|
335
|
+
**_kwargs: Additional keyword arguments.
|
|
336
|
+
|
|
337
|
+
Returns:
|
|
338
|
+
A context manager that yields an AdbcDriver instance.
|
|
339
|
+
"""
|
|
340
|
+
self._detect_extensions_if_needed()
|
|
341
|
+
statement_config = resolve_runtime_statement_config(
|
|
342
|
+
statement_config,
|
|
343
|
+
self.statement_config,
|
|
344
|
+
get_statement_config(resolve_dialect_from_config(self.connection_config)),
|
|
345
|
+
)
|
|
346
|
+
handler = _AdbcSessionConnectionHandler(self)
|
|
347
|
+
|
|
348
|
+
return AdbcSessionContext(
|
|
349
|
+
acquire_connection=handler.acquire_connection,
|
|
350
|
+
release_connection=handler.release_connection,
|
|
351
|
+
statement_config=statement_config,
|
|
352
|
+
driver_features=self.driver_features,
|
|
353
|
+
prepare_driver=self._prepare_driver,
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
def get_signature_namespace(self) -> "dict[str, Any]":
|
|
357
|
+
"""Get the signature namespace for AdbcConfig types.
|
|
358
|
+
|
|
359
|
+
Returns:
|
|
360
|
+
Dictionary mapping type names to types.
|
|
361
|
+
"""
|
|
362
|
+
namespace = super().get_signature_namespace()
|
|
363
|
+
namespace.update({
|
|
364
|
+
"AdbcConnectionContext": AdbcConnectionContext,
|
|
365
|
+
"AdbcConnection": AdbcConnection,
|
|
366
|
+
"AdbcConnectionParams": AdbcConnectionParams,
|
|
367
|
+
"AdbcCursor": AdbcCursor,
|
|
368
|
+
"AdbcDriver": AdbcDriver,
|
|
369
|
+
"AdbcDriverFeatures": AdbcDriverFeatures,
|
|
370
|
+
"AdbcExceptionHandler": AdbcExceptionHandler,
|
|
371
|
+
"AdbcSessionContext": AdbcSessionContext,
|
|
372
|
+
})
|
|
373
|
+
return namespace
|
|
374
|
+
|
|
375
|
+
def get_event_runtime_hints(self) -> "EventRuntimeHints":
|
|
376
|
+
"""Return polling defaults suitable for ADBC warehouses."""
|
|
377
|
+
|
|
378
|
+
return EventRuntimeHints(poll_interval=2.0, lease_seconds=60, retention_seconds=172_800)
|
|
Binary file
|