sqlspec 0.36.0__cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.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.
- ac8f31065839703b4e70__mypyc.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/__init__.py +140 -0
- sqlspec/__main__.py +12 -0
- sqlspec/__metadata__.py +14 -0
- sqlspec/_serialization.py +315 -0
- sqlspec/_typing.py +700 -0
- sqlspec/adapters/__init__.py +0 -0
- sqlspec/adapters/adbc/__init__.py +5 -0
- sqlspec/adapters/adbc/_typing.py +82 -0
- sqlspec/adapters/adbc/adk/__init__.py +5 -0
- sqlspec/adapters/adbc/adk/store.py +1273 -0
- sqlspec/adapters/adbc/config.py +295 -0
- sqlspec/adapters/adbc/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/adbc/core.py +735 -0
- sqlspec/adapters/adbc/data_dictionary.py +334 -0
- sqlspec/adapters/adbc/driver.py +529 -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 +502 -0
- sqlspec/adapters/adbc/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/adbc/type_converter.py +140 -0
- sqlspec/adapters/aiosqlite/__init__.py +25 -0
- sqlspec/adapters/aiosqlite/_typing.py +82 -0
- sqlspec/adapters/aiosqlite/adk/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/adk/store.py +818 -0
- sqlspec/adapters/aiosqlite/config.py +334 -0
- sqlspec/adapters/aiosqlite/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/aiosqlite/core.py +315 -0
- sqlspec/adapters/aiosqlite/data_dictionary.py +208 -0
- sqlspec/adapters/aiosqlite/driver.py +313 -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.py +533 -0
- sqlspec/adapters/asyncmy/__init__.py +21 -0
- sqlspec/adapters/asyncmy/_typing.py +87 -0
- sqlspec/adapters/asyncmy/adk/__init__.py +5 -0
- sqlspec/adapters/asyncmy/adk/store.py +703 -0
- sqlspec/adapters/asyncmy/config.py +302 -0
- sqlspec/adapters/asyncmy/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/asyncmy/core.py +360 -0
- sqlspec/adapters/asyncmy/data_dictionary.py +124 -0
- sqlspec/adapters/asyncmy/driver.py +383 -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 +19 -0
- sqlspec/adapters/asyncpg/_typing.py +88 -0
- sqlspec/adapters/asyncpg/adk/__init__.py +5 -0
- sqlspec/adapters/asyncpg/adk/store.py +748 -0
- sqlspec/adapters/asyncpg/config.py +569 -0
- sqlspec/adapters/asyncpg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/asyncpg/core.py +367 -0
- sqlspec/adapters/asyncpg/data_dictionary.py +162 -0
- sqlspec/adapters/asyncpg/driver.py +487 -0
- sqlspec/adapters/asyncpg/events/__init__.py +6 -0
- sqlspec/adapters/asyncpg/events/backend.py +286 -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 +14 -0
- sqlspec/adapters/bigquery/_typing.py +86 -0
- sqlspec/adapters/bigquery/adk/__init__.py +5 -0
- sqlspec/adapters/bigquery/adk/store.py +827 -0
- sqlspec/adapters/bigquery/config.py +353 -0
- sqlspec/adapters/bigquery/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/bigquery/core.py +715 -0
- sqlspec/adapters/bigquery/data_dictionary.py +128 -0
- sqlspec/adapters/bigquery/driver.py +548 -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.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/bigquery/type_converter.py +107 -0
- sqlspec/adapters/cockroach_asyncpg/__init__.py +24 -0
- sqlspec/adapters/cockroach_asyncpg/_typing.py +72 -0
- sqlspec/adapters/cockroach_asyncpg/adk/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/adk/store.py +410 -0
- sqlspec/adapters/cockroach_asyncpg/config.py +238 -0
- sqlspec/adapters/cockroach_asyncpg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/cockroach_asyncpg/core.py +55 -0
- sqlspec/adapters/cockroach_asyncpg/data_dictionary.py +107 -0
- sqlspec/adapters/cockroach_asyncpg/driver.py +144 -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 +38 -0
- sqlspec/adapters/cockroach_psycopg/_typing.py +129 -0
- sqlspec/adapters/cockroach_psycopg/adk/__init__.py +13 -0
- sqlspec/adapters/cockroach_psycopg/adk/store.py +868 -0
- sqlspec/adapters/cockroach_psycopg/config.py +484 -0
- sqlspec/adapters/cockroach_psycopg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/cockroach_psycopg/core.py +63 -0
- sqlspec/adapters/cockroach_psycopg/data_dictionary.py +215 -0
- sqlspec/adapters/cockroach_psycopg/driver.py +284 -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 +325 -0
- sqlspec/adapters/duckdb/__init__.py +25 -0
- sqlspec/adapters/duckdb/_typing.py +81 -0
- sqlspec/adapters/duckdb/adk/__init__.py +14 -0
- sqlspec/adapters/duckdb/adk/store.py +850 -0
- sqlspec/adapters/duckdb/config.py +463 -0
- sqlspec/adapters/duckdb/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/duckdb/core.py +257 -0
- sqlspec/adapters/duckdb/data_dictionary.py +140 -0
- sqlspec/adapters/duckdb/driver.py +430 -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.py +293 -0
- sqlspec/adapters/duckdb/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/duckdb/type_converter.py +118 -0
- sqlspec/adapters/mock/__init__.py +72 -0
- sqlspec/adapters/mock/_typing.py +147 -0
- sqlspec/adapters/mock/config.py +483 -0
- sqlspec/adapters/mock/core.py +319 -0
- sqlspec/adapters/mock/data_dictionary.py +366 -0
- sqlspec/adapters/mock/driver.py +721 -0
- sqlspec/adapters/mysqlconnector/__init__.py +36 -0
- sqlspec/adapters/mysqlconnector/_typing.py +141 -0
- sqlspec/adapters/mysqlconnector/adk/__init__.py +15 -0
- sqlspec/adapters/mysqlconnector/adk/store.py +1060 -0
- sqlspec/adapters/mysqlconnector/config.py +394 -0
- sqlspec/adapters/mysqlconnector/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/mysqlconnector/core.py +303 -0
- sqlspec/adapters/mysqlconnector/data_dictionary.py +235 -0
- sqlspec/adapters/mysqlconnector/driver.py +483 -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 +60 -0
- sqlspec/adapters/oracledb/_numpy_handlers.py +141 -0
- sqlspec/adapters/oracledb/_typing.py +182 -0
- sqlspec/adapters/oracledb/_uuid_handlers.py +166 -0
- sqlspec/adapters/oracledb/adk/__init__.py +10 -0
- sqlspec/adapters/oracledb/adk/store.py +2369 -0
- sqlspec/adapters/oracledb/config.py +550 -0
- sqlspec/adapters/oracledb/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/oracledb/core.py +543 -0
- sqlspec/adapters/oracledb/data_dictionary.py +536 -0
- sqlspec/adapters/oracledb/driver.py +1229 -0
- sqlspec/adapters/oracledb/events/__init__.py +16 -0
- sqlspec/adapters/oracledb/events/backend.py +347 -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 +535 -0
- sqlspec/adapters/oracledb/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/oracledb/type_converter.py +211 -0
- sqlspec/adapters/psqlpy/__init__.py +17 -0
- sqlspec/adapters/psqlpy/_typing.py +79 -0
- sqlspec/adapters/psqlpy/adk/__init__.py +5 -0
- sqlspec/adapters/psqlpy/adk/store.py +766 -0
- sqlspec/adapters/psqlpy/config.py +304 -0
- sqlspec/adapters/psqlpy/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psqlpy/core.py +480 -0
- sqlspec/adapters/psqlpy/data_dictionary.py +126 -0
- sqlspec/adapters/psqlpy/driver.py +438 -0
- sqlspec/adapters/psqlpy/events/__init__.py +6 -0
- sqlspec/adapters/psqlpy/events/backend.py +310 -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.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psqlpy/type_converter.py +113 -0
- sqlspec/adapters/psycopg/__init__.py +32 -0
- sqlspec/adapters/psycopg/_typing.py +164 -0
- sqlspec/adapters/psycopg/adk/__init__.py +10 -0
- sqlspec/adapters/psycopg/adk/store.py +1387 -0
- sqlspec/adapters/psycopg/config.py +576 -0
- sqlspec/adapters/psycopg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psycopg/core.py +450 -0
- sqlspec/adapters/psycopg/data_dictionary.py +289 -0
- sqlspec/adapters/psycopg/driver.py +975 -0
- sqlspec/adapters/psycopg/events/__init__.py +20 -0
- sqlspec/adapters/psycopg/events/backend.py +458 -0
- sqlspec/adapters/psycopg/events/store.py +42 -0
- sqlspec/adapters/psycopg/litestar/__init__.py +5 -0
- sqlspec/adapters/psycopg/litestar/store.py +552 -0
- sqlspec/adapters/psycopg/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psycopg/type_converter.py +93 -0
- sqlspec/adapters/pymysql/__init__.py +21 -0
- sqlspec/adapters/pymysql/_typing.py +71 -0
- sqlspec/adapters/pymysql/adk/__init__.py +5 -0
- sqlspec/adapters/pymysql/adk/store.py +540 -0
- sqlspec/adapters/pymysql/config.py +195 -0
- sqlspec/adapters/pymysql/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/pymysql/core.py +299 -0
- sqlspec/adapters/pymysql/data_dictionary.py +122 -0
- sqlspec/adapters/pymysql/driver.py +259 -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.py +137 -0
- sqlspec/adapters/spanner/__init__.py +40 -0
- sqlspec/adapters/spanner/_typing.py +86 -0
- sqlspec/adapters/spanner/adk/__init__.py +5 -0
- sqlspec/adapters/spanner/adk/store.py +732 -0
- sqlspec/adapters/spanner/config.py +352 -0
- sqlspec/adapters/spanner/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/spanner/core.py +188 -0
- sqlspec/adapters/spanner/data_dictionary.py +120 -0
- sqlspec/adapters/spanner/dialect/__init__.py +6 -0
- sqlspec/adapters/spanner/dialect/_spangres.py +57 -0
- sqlspec/adapters/spanner/dialect/_spanner.py +130 -0
- sqlspec/adapters/spanner/driver.py +373 -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.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/spanner/type_converter.py +331 -0
- sqlspec/adapters/sqlite/__init__.py +19 -0
- sqlspec/adapters/sqlite/_typing.py +80 -0
- sqlspec/adapters/sqlite/adk/__init__.py +5 -0
- sqlspec/adapters/sqlite/adk/store.py +958 -0
- sqlspec/adapters/sqlite/config.py +280 -0
- sqlspec/adapters/sqlite/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/sqlite/core.py +312 -0
- sqlspec/adapters/sqlite/data_dictionary.py +202 -0
- sqlspec/adapters/sqlite/driver.py +359 -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.py +198 -0
- sqlspec/adapters/sqlite/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/sqlite/type_converter.py +114 -0
- sqlspec/base.py +747 -0
- sqlspec/builder/__init__.py +179 -0
- sqlspec/builder/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_base.py +1022 -0
- sqlspec/builder/_column.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_column.py +521 -0
- sqlspec/builder/_ddl.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_ddl.py +1642 -0
- sqlspec/builder/_delete.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_delete.py +95 -0
- sqlspec/builder/_dml.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_dml.py +365 -0
- sqlspec/builder/_explain.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_explain.py +579 -0
- sqlspec/builder/_expression_wrappers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_expression_wrappers.py +46 -0
- sqlspec/builder/_factory.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_factory.py +1697 -0
- sqlspec/builder/_insert.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_insert.py +328 -0
- sqlspec/builder/_join.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_join.py +499 -0
- sqlspec/builder/_merge.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_merge.py +821 -0
- sqlspec/builder/_parsing_utils.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_parsing_utils.py +297 -0
- sqlspec/builder/_select.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_select.py +1660 -0
- sqlspec/builder/_temporal.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_temporal.py +139 -0
- sqlspec/builder/_update.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_update.py +173 -0
- sqlspec/builder/_vector_expressions.py +267 -0
- sqlspec/cli.py +911 -0
- sqlspec/config.py +1755 -0
- sqlspec/core/__init__.py +374 -0
- sqlspec/core/_correlation.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/_correlation.py +176 -0
- sqlspec/core/cache.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/cache.py +1069 -0
- sqlspec/core/compiler.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/compiler.py +954 -0
- sqlspec/core/explain.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/explain.py +275 -0
- sqlspec/core/filters.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/filters.py +952 -0
- sqlspec/core/hashing.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/hashing.py +262 -0
- sqlspec/core/metrics.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/metrics.py +83 -0
- sqlspec/core/parameters/__init__.py +71 -0
- sqlspec/core/parameters/_alignment.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_alignment.py +270 -0
- sqlspec/core/parameters/_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_converter.py +543 -0
- sqlspec/core/parameters/_processor.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_processor.py +505 -0
- sqlspec/core/parameters/_registry.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_registry.py +206 -0
- sqlspec/core/parameters/_transformers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_transformers.py +292 -0
- sqlspec/core/parameters/_types.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_types.py +499 -0
- sqlspec/core/parameters/_validator.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_validator.py +180 -0
- sqlspec/core/pipeline.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/pipeline.py +319 -0
- sqlspec/core/query_modifiers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/query_modifiers.py +437 -0
- sqlspec/core/result/__init__.py +23 -0
- sqlspec/core/result/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/result/_base.py +1121 -0
- sqlspec/core/result/_io.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/result/_io.py +28 -0
- sqlspec/core/splitter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/splitter.py +966 -0
- sqlspec/core/stack.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/stack.py +163 -0
- sqlspec/core/statement.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/statement.py +1503 -0
- sqlspec/core/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/type_converter.py +339 -0
- sqlspec/data_dictionary/__init__.py +22 -0
- sqlspec/data_dictionary/_loader.py +123 -0
- sqlspec/data_dictionary/_registry.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/_registry.py +74 -0
- sqlspec/data_dictionary/_types.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/_types.py +121 -0
- sqlspec/data_dictionary/dialects/__init__.py +21 -0
- sqlspec/data_dictionary/dialects/bigquery.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/bigquery.py +49 -0
- sqlspec/data_dictionary/dialects/cockroachdb.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/cockroachdb.py +43 -0
- sqlspec/data_dictionary/dialects/duckdb.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/duckdb.py +47 -0
- sqlspec/data_dictionary/dialects/mysql.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/mysql.py +42 -0
- sqlspec/data_dictionary/dialects/oracle.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/oracle.py +34 -0
- sqlspec/data_dictionary/dialects/postgres.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/postgres.py +46 -0
- sqlspec/data_dictionary/dialects/spanner.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/spanner.py +37 -0
- sqlspec/data_dictionary/dialects/sqlite.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/sqlite.py +42 -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/driver/__init__.py +32 -0
- sqlspec/driver/_async.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_async.py +1737 -0
- sqlspec/driver/_common.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_common.py +1478 -0
- sqlspec/driver/_sql_helpers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_sql_helpers.py +148 -0
- sqlspec/driver/_storage_helpers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_storage_helpers.py +144 -0
- sqlspec/driver/_sync.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_sync.py +1710 -0
- sqlspec/exceptions.py +338 -0
- sqlspec/extensions/__init__.py +0 -0
- sqlspec/extensions/adk/__init__.py +70 -0
- sqlspec/extensions/adk/_types.py +51 -0
- sqlspec/extensions/adk/converters.py +172 -0
- sqlspec/extensions/adk/memory/__init__.py +69 -0
- sqlspec/extensions/adk/memory/_types.py +30 -0
- sqlspec/extensions/adk/memory/converters.py +149 -0
- sqlspec/extensions/adk/memory/service.py +217 -0
- sqlspec/extensions/adk/memory/store.py +569 -0
- sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +246 -0
- sqlspec/extensions/adk/migrations/__init__.py +0 -0
- sqlspec/extensions/adk/service.py +225 -0
- sqlspec/extensions/adk/store.py +567 -0
- sqlspec/extensions/events/__init__.py +51 -0
- sqlspec/extensions/events/_channel.py +703 -0
- sqlspec/extensions/events/_hints.py +45 -0
- sqlspec/extensions/events/_models.py +23 -0
- sqlspec/extensions/events/_payload.py +69 -0
- sqlspec/extensions/events/_protocols.py +134 -0
- sqlspec/extensions/events/_queue.py +461 -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 +19 -0
- sqlspec/extensions/fastapi/extension.py +351 -0
- sqlspec/extensions/fastapi/providers.py +607 -0
- sqlspec/extensions/flask/__init__.py +37 -0
- sqlspec/extensions/flask/_state.py +76 -0
- sqlspec/extensions/flask/_utils.py +71 -0
- sqlspec/extensions/flask/extension.py +519 -0
- sqlspec/extensions/litestar/__init__.py +28 -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 +671 -0
- sqlspec/extensions/litestar/providers.py +526 -0
- sqlspec/extensions/litestar/store.py +296 -0
- sqlspec/extensions/otel/__init__.py +58 -0
- sqlspec/extensions/prometheus/__init__.py +113 -0
- sqlspec/extensions/starlette/__init__.py +19 -0
- sqlspec/extensions/starlette/_state.py +30 -0
- sqlspec/extensions/starlette/_utils.py +96 -0
- sqlspec/extensions/starlette/extension.py +346 -0
- sqlspec/extensions/starlette/middleware.py +235 -0
- sqlspec/loader.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/loader.py +702 -0
- sqlspec/migrations/__init__.py +36 -0
- sqlspec/migrations/base.py +731 -0
- sqlspec/migrations/commands.py +1232 -0
- sqlspec/migrations/context.py +157 -0
- sqlspec/migrations/fix.py +204 -0
- sqlspec/migrations/loaders.py +443 -0
- sqlspec/migrations/runner.py +1172 -0
- sqlspec/migrations/templates.py +234 -0
- sqlspec/migrations/tracker.py +611 -0
- sqlspec/migrations/utils.py +256 -0
- sqlspec/migrations/validation.py +207 -0
- sqlspec/migrations/version.py +446 -0
- sqlspec/observability/__init__.py +55 -0
- sqlspec/observability/_common.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_common.py +77 -0
- sqlspec/observability/_config.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_config.py +348 -0
- sqlspec/observability/_diagnostics.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_diagnostics.py +74 -0
- sqlspec/observability/_dispatcher.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_dispatcher.py +152 -0
- sqlspec/observability/_formatters/__init__.py +13 -0
- sqlspec/observability/_formatters/_aws.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_aws.py +102 -0
- sqlspec/observability/_formatters/_azure.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_azure.py +96 -0
- sqlspec/observability/_formatters/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_base.py +57 -0
- sqlspec/observability/_formatters/_gcp.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_gcp.py +131 -0
- sqlspec/observability/_formatting.py +58 -0
- sqlspec/observability/_observer.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_observer.py +357 -0
- sqlspec/observability/_runtime.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_runtime.py +420 -0
- sqlspec/observability/_sampling.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_sampling.py +188 -0
- sqlspec/observability/_spans.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_spans.py +161 -0
- sqlspec/protocols.py +916 -0
- sqlspec/py.typed +0 -0
- sqlspec/storage/__init__.py +48 -0
- sqlspec/storage/_utils.py +104 -0
- sqlspec/storage/backends/__init__.py +1 -0
- sqlspec/storage/backends/base.py +253 -0
- sqlspec/storage/backends/fsspec.py +529 -0
- sqlspec/storage/backends/local.py +441 -0
- sqlspec/storage/backends/obstore.py +916 -0
- sqlspec/storage/errors.py +104 -0
- sqlspec/storage/pipeline.py +582 -0
- sqlspec/storage/registry.py +301 -0
- sqlspec/typing.py +395 -0
- sqlspec/utils/__init__.py +7 -0
- sqlspec/utils/arrow_helpers.py +318 -0
- sqlspec/utils/config_tools.py +332 -0
- sqlspec/utils/correlation.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/correlation.py +134 -0
- sqlspec/utils/deprecation.py +190 -0
- sqlspec/utils/fixtures.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/fixtures.py +258 -0
- sqlspec/utils/logging.py +222 -0
- sqlspec/utils/module_loader.py +306 -0
- sqlspec/utils/portal.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/portal.py +375 -0
- sqlspec/utils/schema.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/schema.py +485 -0
- sqlspec/utils/serializers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/serializers.py +408 -0
- sqlspec/utils/singleton.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/singleton.py +41 -0
- sqlspec/utils/sync_tools.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/sync_tools.py +311 -0
- sqlspec/utils/text.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/text.py +108 -0
- sqlspec/utils/type_converters.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/type_converters.py +128 -0
- sqlspec/utils/type_guards.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/type_guards.py +1360 -0
- sqlspec/utils/uuids.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/uuids.py +225 -0
- sqlspec-0.36.0.dist-info/METADATA +205 -0
- sqlspec-0.36.0.dist-info/RECORD +531 -0
- sqlspec-0.36.0.dist-info/WHEEL +7 -0
- sqlspec-0.36.0.dist-info/entry_points.txt +2 -0
- sqlspec-0.36.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- name: columns_by_table
|
|
2
|
+
-- dialect: duckdb
|
|
3
|
+
SELECT
|
|
4
|
+
column_name,
|
|
5
|
+
data_type,
|
|
6
|
+
is_nullable,
|
|
7
|
+
column_default
|
|
8
|
+
FROM information_schema.columns
|
|
9
|
+
WHERE table_name = :table_name
|
|
10
|
+
AND table_schema = COALESCE(:schema_name, current_schema())
|
|
11
|
+
ORDER BY ordinal_position;
|
|
12
|
+
|
|
13
|
+
-- name: columns_by_schema
|
|
14
|
+
-- dialect: duckdb
|
|
15
|
+
SELECT
|
|
16
|
+
table_name,
|
|
17
|
+
column_name,
|
|
18
|
+
data_type,
|
|
19
|
+
is_nullable,
|
|
20
|
+
column_default
|
|
21
|
+
FROM information_schema.columns
|
|
22
|
+
WHERE table_schema = COALESCE(:schema_name, current_schema())
|
|
23
|
+
ORDER BY table_name, ordinal_position;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
-- name: foreign_keys_by_table
|
|
2
|
+
-- dialect: duckdb
|
|
3
|
+
SELECT
|
|
4
|
+
kcu.table_name,
|
|
5
|
+
kcu.column_name,
|
|
6
|
+
pk_kcu.table_name AS referenced_table_name,
|
|
7
|
+
pk_kcu.column_name AS referenced_column_name,
|
|
8
|
+
kcu.constraint_name,
|
|
9
|
+
kcu.table_schema,
|
|
10
|
+
pk_kcu.table_schema AS referenced_table_schema
|
|
11
|
+
FROM information_schema.key_column_usage kcu
|
|
12
|
+
JOIN information_schema.referential_constraints rc
|
|
13
|
+
ON kcu.constraint_name = rc.constraint_name
|
|
14
|
+
JOIN information_schema.key_column_usage pk_kcu
|
|
15
|
+
ON rc.unique_constraint_name = pk_kcu.constraint_name
|
|
16
|
+
AND kcu.ordinal_position = pk_kcu.ordinal_position
|
|
17
|
+
WHERE kcu.table_schema = COALESCE(:schema_name, current_schema())
|
|
18
|
+
AND kcu.table_name = :table_name;
|
|
19
|
+
|
|
20
|
+
-- name: foreign_keys_by_schema
|
|
21
|
+
-- dialect: duckdb
|
|
22
|
+
SELECT
|
|
23
|
+
kcu.table_name,
|
|
24
|
+
kcu.column_name,
|
|
25
|
+
pk_kcu.table_name AS referenced_table_name,
|
|
26
|
+
pk_kcu.column_name AS referenced_column_name,
|
|
27
|
+
kcu.constraint_name,
|
|
28
|
+
kcu.table_schema,
|
|
29
|
+
pk_kcu.table_schema AS referenced_table_schema
|
|
30
|
+
FROM information_schema.key_column_usage kcu
|
|
31
|
+
JOIN information_schema.referential_constraints rc
|
|
32
|
+
ON kcu.constraint_name = rc.constraint_name
|
|
33
|
+
JOIN information_schema.key_column_usage pk_kcu
|
|
34
|
+
ON rc.unique_constraint_name = pk_kcu.constraint_name
|
|
35
|
+
AND kcu.ordinal_position = pk_kcu.ordinal_position
|
|
36
|
+
WHERE kcu.table_schema = COALESCE(:schema_name, current_schema());
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-- name: indexes_by_table
|
|
2
|
+
-- dialect: duckdb
|
|
3
|
+
SELECT
|
|
4
|
+
NULL AS index_name,
|
|
5
|
+
NULL AS table_name,
|
|
6
|
+
NULL AS is_unique,
|
|
7
|
+
NULL AS is_primary,
|
|
8
|
+
NULL AS columns
|
|
9
|
+
WHERE FALSE;
|
|
10
|
+
|
|
11
|
+
-- name: indexes_by_schema
|
|
12
|
+
-- dialect: duckdb
|
|
13
|
+
SELECT
|
|
14
|
+
NULL AS index_name,
|
|
15
|
+
NULL AS table_name,
|
|
16
|
+
NULL AS is_unique,
|
|
17
|
+
NULL AS is_primary,
|
|
18
|
+
NULL AS columns
|
|
19
|
+
WHERE FALSE;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
-- name: tables_by_schema
|
|
2
|
+
-- dialect: duckdb
|
|
3
|
+
WITH RECURSIVE dependency_tree AS (
|
|
4
|
+
SELECT
|
|
5
|
+
table_name,
|
|
6
|
+
0 AS level,
|
|
7
|
+
[table_name] AS path
|
|
8
|
+
FROM information_schema.tables t
|
|
9
|
+
WHERE t.table_type = 'BASE TABLE'
|
|
10
|
+
AND t.table_schema = COALESCE(:schema_name, current_schema())
|
|
11
|
+
AND NOT EXISTS (
|
|
12
|
+
SELECT 1
|
|
13
|
+
FROM information_schema.key_column_usage kcu
|
|
14
|
+
WHERE kcu.table_name = t.table_name
|
|
15
|
+
AND kcu.table_schema = t.table_schema
|
|
16
|
+
AND kcu.constraint_name IN (
|
|
17
|
+
SELECT constraint_name FROM information_schema.referential_constraints
|
|
18
|
+
)
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
UNION ALL
|
|
22
|
+
|
|
23
|
+
SELECT
|
|
24
|
+
kcu.table_name,
|
|
25
|
+
dt.level + 1,
|
|
26
|
+
list_append(dt.path, kcu.table_name)
|
|
27
|
+
FROM information_schema.key_column_usage kcu
|
|
28
|
+
JOIN information_schema.referential_constraints rc ON kcu.constraint_name = rc.constraint_name
|
|
29
|
+
JOIN information_schema.key_column_usage pk_kcu
|
|
30
|
+
ON rc.unique_constraint_name = pk_kcu.constraint_name
|
|
31
|
+
AND rc.unique_constraint_schema = pk_kcu.constraint_schema
|
|
32
|
+
JOIN dependency_tree dt ON dt.table_name = pk_kcu.table_name
|
|
33
|
+
WHERE kcu.table_schema = COALESCE(:schema_name, current_schema())
|
|
34
|
+
AND NOT list_contains(dt.path, kcu.table_name)
|
|
35
|
+
)
|
|
36
|
+
SELECT DISTINCT table_name, level
|
|
37
|
+
FROM dependency_tree
|
|
38
|
+
ORDER BY level, table_name;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- name: columns_by_table
|
|
2
|
+
-- dialect: mysql
|
|
3
|
+
SELECT
|
|
4
|
+
column_name,
|
|
5
|
+
data_type,
|
|
6
|
+
is_nullable,
|
|
7
|
+
column_default
|
|
8
|
+
FROM information_schema.columns
|
|
9
|
+
WHERE table_name = :table_name
|
|
10
|
+
AND table_schema = COALESCE(:schema_name, DATABASE())
|
|
11
|
+
ORDER BY ordinal_position;
|
|
12
|
+
|
|
13
|
+
-- name: columns_by_schema
|
|
14
|
+
-- dialect: mysql
|
|
15
|
+
SELECT
|
|
16
|
+
table_name,
|
|
17
|
+
column_name,
|
|
18
|
+
data_type,
|
|
19
|
+
is_nullable,
|
|
20
|
+
column_default
|
|
21
|
+
FROM information_schema.columns
|
|
22
|
+
WHERE table_schema = COALESCE(:schema_name, DATABASE())
|
|
23
|
+
ORDER BY table_name, ordinal_position;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-- name: foreign_keys_by_table
|
|
2
|
+
-- dialect: mysql
|
|
3
|
+
SELECT
|
|
4
|
+
table_name,
|
|
5
|
+
column_name,
|
|
6
|
+
referenced_table_name,
|
|
7
|
+
referenced_column_name,
|
|
8
|
+
constraint_name,
|
|
9
|
+
table_schema,
|
|
10
|
+
referenced_table_schema
|
|
11
|
+
FROM information_schema.key_column_usage
|
|
12
|
+
WHERE referenced_table_name IS NOT NULL
|
|
13
|
+
AND table_name = :table_name
|
|
14
|
+
AND table_schema = COALESCE(:schema_name, DATABASE());
|
|
15
|
+
|
|
16
|
+
-- name: foreign_keys_by_schema
|
|
17
|
+
-- dialect: mysql
|
|
18
|
+
SELECT
|
|
19
|
+
table_name,
|
|
20
|
+
column_name,
|
|
21
|
+
referenced_table_name,
|
|
22
|
+
referenced_column_name,
|
|
23
|
+
constraint_name,
|
|
24
|
+
table_schema,
|
|
25
|
+
referenced_table_schema
|
|
26
|
+
FROM information_schema.key_column_usage
|
|
27
|
+
WHERE referenced_table_name IS NOT NULL
|
|
28
|
+
AND table_schema = COALESCE(:schema_name, DATABASE());
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-- name: indexes_by_table
|
|
2
|
+
-- dialect: mysql
|
|
3
|
+
SELECT
|
|
4
|
+
s.index_name AS index_name,
|
|
5
|
+
s.table_name AS table_name,
|
|
6
|
+
CASE WHEN s.non_unique = 0 THEN 1 ELSE 0 END AS is_unique,
|
|
7
|
+
CASE WHEN s.index_name = 'PRIMARY' THEN 1 ELSE 0 END AS is_primary,
|
|
8
|
+
GROUP_CONCAT(s.column_name ORDER BY s.seq_in_index) AS columns
|
|
9
|
+
FROM information_schema.statistics s
|
|
10
|
+
WHERE s.table_schema = COALESCE(:schema_name, DATABASE())
|
|
11
|
+
AND s.table_name = :table_name
|
|
12
|
+
GROUP BY s.index_name, s.table_name, s.non_unique
|
|
13
|
+
ORDER BY s.index_name;
|
|
14
|
+
|
|
15
|
+
-- name: indexes_by_schema
|
|
16
|
+
-- dialect: mysql
|
|
17
|
+
SELECT
|
|
18
|
+
s.index_name AS index_name,
|
|
19
|
+
s.table_name AS table_name,
|
|
20
|
+
CASE WHEN s.non_unique = 0 THEN 1 ELSE 0 END AS is_unique,
|
|
21
|
+
CASE WHEN s.index_name = 'PRIMARY' THEN 1 ELSE 0 END AS is_primary,
|
|
22
|
+
GROUP_CONCAT(s.column_name ORDER BY s.seq_in_index) AS columns
|
|
23
|
+
FROM information_schema.statistics s
|
|
24
|
+
WHERE s.table_schema = COALESCE(:schema_name, DATABASE())
|
|
25
|
+
GROUP BY s.index_name, s.table_name, s.non_unique
|
|
26
|
+
ORDER BY s.table_name, s.index_name;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-- name: tables_by_schema
|
|
2
|
+
-- dialect: mysql
|
|
3
|
+
WITH RECURSIVE dependency_tree AS (
|
|
4
|
+
SELECT
|
|
5
|
+
table_name,
|
|
6
|
+
0 AS level,
|
|
7
|
+
CAST(table_name AS CHAR(4000)) AS path
|
|
8
|
+
FROM information_schema.tables t
|
|
9
|
+
WHERE t.table_type = 'BASE TABLE'
|
|
10
|
+
AND t.table_schema = COALESCE(:schema_name, DATABASE())
|
|
11
|
+
AND NOT EXISTS (
|
|
12
|
+
SELECT 1
|
|
13
|
+
FROM information_schema.key_column_usage kcu
|
|
14
|
+
WHERE kcu.table_name = t.table_name
|
|
15
|
+
AND kcu.table_schema = t.table_schema
|
|
16
|
+
AND kcu.referenced_table_name IS NOT NULL
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
UNION ALL
|
|
20
|
+
|
|
21
|
+
SELECT
|
|
22
|
+
kcu.table_name,
|
|
23
|
+
dt.level + 1,
|
|
24
|
+
CONCAT(dt.path, ',', kcu.table_name)
|
|
25
|
+
FROM information_schema.key_column_usage kcu
|
|
26
|
+
JOIN dependency_tree dt ON kcu.referenced_table_name = dt.table_name
|
|
27
|
+
WHERE kcu.table_schema = COALESCE(:schema_name, DATABASE())
|
|
28
|
+
AND kcu.referenced_table_name IS NOT NULL
|
|
29
|
+
AND NOT FIND_IN_SET(kcu.table_name, dt.path)
|
|
30
|
+
)
|
|
31
|
+
SELECT DISTINCT table_name
|
|
32
|
+
FROM dependency_tree
|
|
33
|
+
ORDER BY level, table_name;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- name: columns_by_table
|
|
2
|
+
-- dialect: oracle
|
|
3
|
+
SELECT
|
|
4
|
+
column_name AS column_name,
|
|
5
|
+
data_type AS data_type,
|
|
6
|
+
nullable AS is_nullable,
|
|
7
|
+
data_default AS column_default
|
|
8
|
+
FROM all_tab_columns
|
|
9
|
+
WHERE owner = COALESCE(:schema_name, USER)
|
|
10
|
+
AND table_name = UPPER(:table_name)
|
|
11
|
+
ORDER BY column_id;
|
|
12
|
+
|
|
13
|
+
-- name: columns_by_schema
|
|
14
|
+
-- dialect: oracle
|
|
15
|
+
SELECT
|
|
16
|
+
table_name,
|
|
17
|
+
column_name AS column_name,
|
|
18
|
+
data_type AS data_type,
|
|
19
|
+
nullable AS is_nullable,
|
|
20
|
+
data_default AS column_default
|
|
21
|
+
FROM all_tab_columns
|
|
22
|
+
WHERE owner = COALESCE(:schema_name, USER)
|
|
23
|
+
ORDER BY table_name, column_id;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
-- name: foreign_keys_by_table
|
|
2
|
+
-- dialect: oracle
|
|
3
|
+
SELECT
|
|
4
|
+
c.table_name,
|
|
5
|
+
cc.column_name,
|
|
6
|
+
r.table_name AS referenced_table_name,
|
|
7
|
+
rcc.column_name AS referenced_column_name,
|
|
8
|
+
c.constraint_name,
|
|
9
|
+
c.owner AS table_schema,
|
|
10
|
+
r.owner AS referenced_table_schema
|
|
11
|
+
FROM all_constraints c
|
|
12
|
+
JOIN all_cons_columns cc
|
|
13
|
+
ON c.owner = cc.owner
|
|
14
|
+
AND c.constraint_name = cc.constraint_name
|
|
15
|
+
JOIN all_constraints r
|
|
16
|
+
ON c.r_owner = r.owner
|
|
17
|
+
AND c.r_constraint_name = r.constraint_name
|
|
18
|
+
JOIN all_cons_columns rcc
|
|
19
|
+
ON r.owner = rcc.owner
|
|
20
|
+
AND r.constraint_name = rcc.constraint_name
|
|
21
|
+
AND cc.position = rcc.position
|
|
22
|
+
WHERE c.constraint_type = 'R'
|
|
23
|
+
AND c.owner = COALESCE(:schema_name, USER)
|
|
24
|
+
AND (:table_name IS NULL OR c.table_name = UPPER(:table_name));
|
|
25
|
+
|
|
26
|
+
-- name: foreign_keys_by_schema
|
|
27
|
+
-- dialect: oracle
|
|
28
|
+
SELECT
|
|
29
|
+
c.table_name,
|
|
30
|
+
cc.column_name,
|
|
31
|
+
r.table_name AS referenced_table_name,
|
|
32
|
+
rcc.column_name AS referenced_column_name,
|
|
33
|
+
c.constraint_name,
|
|
34
|
+
c.owner AS table_schema,
|
|
35
|
+
r.owner AS referenced_table_schema
|
|
36
|
+
FROM all_constraints c
|
|
37
|
+
JOIN all_cons_columns cc
|
|
38
|
+
ON c.owner = cc.owner
|
|
39
|
+
AND c.constraint_name = cc.constraint_name
|
|
40
|
+
JOIN all_constraints r
|
|
41
|
+
ON c.r_owner = r.owner
|
|
42
|
+
AND c.r_constraint_name = r.constraint_name
|
|
43
|
+
JOIN all_cons_columns rcc
|
|
44
|
+
ON r.owner = rcc.owner
|
|
45
|
+
AND r.constraint_name = rcc.constraint_name
|
|
46
|
+
AND cc.position = rcc.position
|
|
47
|
+
WHERE c.constraint_type = 'R'
|
|
48
|
+
AND c.owner = COALESCE(:schema_name, USER);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
-- name: indexes_by_table
|
|
2
|
+
-- dialect: oracle
|
|
3
|
+
SELECT
|
|
4
|
+
i.index_name,
|
|
5
|
+
i.table_name AS table_name,
|
|
6
|
+
CASE WHEN i.uniqueness = 'UNIQUE' THEN 1 ELSE 0 END AS is_unique,
|
|
7
|
+
CASE
|
|
8
|
+
WHEN MAX(CASE WHEN c.constraint_type = 'P' THEN 1 ELSE 0 END) = 1 THEN 1
|
|
9
|
+
ELSE 0
|
|
10
|
+
END AS is_primary,
|
|
11
|
+
LISTAGG(ic.column_name, ',') WITHIN GROUP (ORDER BY ic.column_position) AS columns
|
|
12
|
+
FROM all_indexes i
|
|
13
|
+
JOIN all_ind_columns ic
|
|
14
|
+
ON i.owner = ic.index_owner
|
|
15
|
+
AND i.index_name = ic.index_name
|
|
16
|
+
LEFT JOIN all_constraints c
|
|
17
|
+
ON c.owner = i.owner
|
|
18
|
+
AND c.index_name = i.index_name
|
|
19
|
+
AND c.constraint_type = 'P'
|
|
20
|
+
WHERE i.table_name = UPPER(:table_name)
|
|
21
|
+
AND i.owner = COALESCE(:schema_name, USER)
|
|
22
|
+
GROUP BY i.index_name, i.table_name, i.uniqueness;
|
|
23
|
+
|
|
24
|
+
-- name: indexes_by_schema
|
|
25
|
+
-- dialect: oracle
|
|
26
|
+
SELECT
|
|
27
|
+
i.index_name,
|
|
28
|
+
i.table_name AS table_name,
|
|
29
|
+
CASE WHEN i.uniqueness = 'UNIQUE' THEN 1 ELSE 0 END AS is_unique,
|
|
30
|
+
CASE
|
|
31
|
+
WHEN MAX(CASE WHEN c.constraint_type = 'P' THEN 1 ELSE 0 END) = 1 THEN 1
|
|
32
|
+
ELSE 0
|
|
33
|
+
END AS is_primary,
|
|
34
|
+
LISTAGG(ic.column_name, ',') WITHIN GROUP (ORDER BY ic.column_position) AS columns
|
|
35
|
+
FROM all_indexes i
|
|
36
|
+
JOIN all_ind_columns ic
|
|
37
|
+
ON i.owner = ic.index_owner
|
|
38
|
+
AND i.index_name = ic.index_name
|
|
39
|
+
LEFT JOIN all_constraints c
|
|
40
|
+
ON c.owner = i.owner
|
|
41
|
+
AND c.index_name = i.index_name
|
|
42
|
+
AND c.constraint_type = 'P'
|
|
43
|
+
WHERE i.owner = COALESCE(:schema_name, USER)
|
|
44
|
+
GROUP BY i.index_name, i.table_name, i.uniqueness;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
-- name: tables_by_schema
|
|
2
|
+
-- dialect: oracle
|
|
3
|
+
SELECT
|
|
4
|
+
table_name,
|
|
5
|
+
MAX(level) AS level
|
|
6
|
+
FROM all_constraints
|
|
7
|
+
WHERE owner = COALESCE(:schema_name, USER)
|
|
8
|
+
START WITH table_name NOT IN (
|
|
9
|
+
SELECT table_name
|
|
10
|
+
FROM all_constraints
|
|
11
|
+
WHERE constraint_type = 'R'
|
|
12
|
+
AND owner = COALESCE(:schema_name, USER)
|
|
13
|
+
)
|
|
14
|
+
CONNECT BY NOCYCLE PRIOR constraint_name = r_constraint_name
|
|
15
|
+
AND PRIOR owner = owner
|
|
16
|
+
GROUP BY table_name
|
|
17
|
+
ORDER BY level, table_name;
|
|
18
|
+
|
|
19
|
+
-- name: all_tables_by_schema
|
|
20
|
+
-- dialect: oracle
|
|
21
|
+
SELECT
|
|
22
|
+
table_name
|
|
23
|
+
FROM all_tables
|
|
24
|
+
WHERE owner = COALESCE(:schema_name, USER)
|
|
25
|
+
ORDER BY table_name;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- name: version
|
|
2
|
+
-- dialect: oracle
|
|
3
|
+
SELECT
|
|
4
|
+
product AS "product",
|
|
5
|
+
version AS "version",
|
|
6
|
+
status AS "status"
|
|
7
|
+
FROM product_component_version
|
|
8
|
+
WHERE product LIKE 'Oracle%'
|
|
9
|
+
ORDER BY TO_NUMBER(REGEXP_SUBSTR(version, '^[0-9]+')) DESC, version DESC
|
|
10
|
+
FETCH FIRST 1 ROWS ONLY;
|
|
11
|
+
|
|
12
|
+
-- name: autonomous_service
|
|
13
|
+
-- dialect: oracle
|
|
14
|
+
SELECT sys_context('USERENV', 'CLOUD_SERVICE') AS "service" FROM dual;
|
|
15
|
+
|
|
16
|
+
-- name: compatible
|
|
17
|
+
-- dialect: oracle
|
|
18
|
+
SELECT value AS compatible
|
|
19
|
+
FROM v$parameter
|
|
20
|
+
WHERE name = 'compatible';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
-- name: columns_by_table
|
|
2
|
+
-- dialect: postgres
|
|
3
|
+
SELECT
|
|
4
|
+
a.attname::text AS column_name,
|
|
5
|
+
pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type,
|
|
6
|
+
CASE WHEN a.attnotnull THEN 'NO' ELSE 'YES' END AS is_nullable,
|
|
7
|
+
pg_catalog.pg_get_expr(d.adbin, d.adrelid)::text AS column_default
|
|
8
|
+
FROM pg_catalog.pg_attribute a
|
|
9
|
+
JOIN pg_catalog.pg_class c ON a.attrelid = c.oid
|
|
10
|
+
JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid
|
|
11
|
+
LEFT JOIN pg_catalog.pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
|
|
12
|
+
WHERE c.relname = :table_name
|
|
13
|
+
AND n.nspname = :schema_name
|
|
14
|
+
AND a.attnum > 0
|
|
15
|
+
AND NOT a.attisdropped
|
|
16
|
+
ORDER BY a.attnum;
|
|
17
|
+
|
|
18
|
+
-- name: columns_by_schema
|
|
19
|
+
-- dialect: postgres
|
|
20
|
+
SELECT
|
|
21
|
+
n.nspname::text AS schema_name,
|
|
22
|
+
c.relname::text AS table_name,
|
|
23
|
+
a.attname::text AS column_name,
|
|
24
|
+
pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type,
|
|
25
|
+
CASE WHEN a.attnotnull THEN 'NO' ELSE 'YES' END AS is_nullable,
|
|
26
|
+
pg_catalog.pg_get_expr(d.adbin, d.adrelid)::text AS column_default
|
|
27
|
+
FROM pg_catalog.pg_attribute a
|
|
28
|
+
JOIN pg_catalog.pg_class c ON a.attrelid = c.oid
|
|
29
|
+
JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid
|
|
30
|
+
LEFT JOIN pg_catalog.pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
|
|
31
|
+
WHERE n.nspname = :schema_name
|
|
32
|
+
AND a.attnum > 0
|
|
33
|
+
AND NOT a.attisdropped
|
|
34
|
+
ORDER BY c.relname, a.attnum;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
-- name: foreign_keys_by_table
|
|
2
|
+
-- dialect: postgres
|
|
3
|
+
SELECT
|
|
4
|
+
kcu.table_name,
|
|
5
|
+
kcu.column_name,
|
|
6
|
+
ccu.table_name AS referenced_table_name,
|
|
7
|
+
ccu.column_name AS referenced_column_name,
|
|
8
|
+
tc.constraint_name,
|
|
9
|
+
tc.table_schema,
|
|
10
|
+
ccu.table_schema AS referenced_table_schema
|
|
11
|
+
FROM information_schema.table_constraints AS tc
|
|
12
|
+
JOIN information_schema.key_column_usage AS kcu
|
|
13
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
14
|
+
AND tc.table_schema = kcu.table_schema
|
|
15
|
+
JOIN information_schema.constraint_column_usage AS ccu
|
|
16
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
17
|
+
AND ccu.table_schema = tc.table_schema
|
|
18
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
19
|
+
AND (:schema_name::text IS NULL OR tc.table_schema = :schema_name)
|
|
20
|
+
AND (:table_name::text IS NULL OR tc.table_name = :table_name);
|
|
21
|
+
|
|
22
|
+
-- name: foreign_keys_by_schema
|
|
23
|
+
-- dialect: postgres
|
|
24
|
+
SELECT
|
|
25
|
+
kcu.table_name,
|
|
26
|
+
kcu.column_name,
|
|
27
|
+
ccu.table_name AS referenced_table_name,
|
|
28
|
+
ccu.column_name AS referenced_column_name,
|
|
29
|
+
tc.constraint_name,
|
|
30
|
+
tc.table_schema,
|
|
31
|
+
ccu.table_schema AS referenced_table_schema
|
|
32
|
+
FROM information_schema.table_constraints AS tc
|
|
33
|
+
JOIN information_schema.key_column_usage AS kcu
|
|
34
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
35
|
+
AND tc.table_schema = kcu.table_schema
|
|
36
|
+
JOIN information_schema.constraint_column_usage AS ccu
|
|
37
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
38
|
+
AND ccu.table_schema = tc.table_schema
|
|
39
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
40
|
+
AND (:schema_name::text IS NULL OR tc.table_schema = :schema_name);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
-- name: indexes_by_table
|
|
2
|
+
-- dialect: postgres
|
|
3
|
+
SELECT
|
|
4
|
+
i.relname as index_name,
|
|
5
|
+
t.relname as table_name,
|
|
6
|
+
ix.indisunique as is_unique,
|
|
7
|
+
ix.indisprimary as is_primary,
|
|
8
|
+
array_agg(a.attname ORDER BY array_position(ix.indkey, a.attnum)) as columns
|
|
9
|
+
FROM
|
|
10
|
+
pg_class t,
|
|
11
|
+
pg_class i,
|
|
12
|
+
pg_index ix,
|
|
13
|
+
pg_attribute a,
|
|
14
|
+
pg_namespace n
|
|
15
|
+
WHERE
|
|
16
|
+
t.oid = ix.indrelid
|
|
17
|
+
AND i.oid = ix.indexrelid
|
|
18
|
+
AND a.attrelid = t.oid
|
|
19
|
+
AND a.attnum = ANY(ix.indkey)
|
|
20
|
+
AND t.relkind = 'r'
|
|
21
|
+
AND t.relnamespace = n.oid
|
|
22
|
+
AND n.nspname = :schema_name
|
|
23
|
+
AND t.relname = :table_name
|
|
24
|
+
GROUP BY
|
|
25
|
+
t.relname,
|
|
26
|
+
i.relname,
|
|
27
|
+
ix.indisunique,
|
|
28
|
+
ix.indisprimary;
|
|
29
|
+
|
|
30
|
+
-- name: indexes_by_schema
|
|
31
|
+
-- dialect: postgres
|
|
32
|
+
SELECT
|
|
33
|
+
i.relname as index_name,
|
|
34
|
+
t.relname as table_name,
|
|
35
|
+
ix.indisunique as is_unique,
|
|
36
|
+
ix.indisprimary as is_primary,
|
|
37
|
+
array_agg(a.attname ORDER BY array_position(ix.indkey, a.attnum)) as columns
|
|
38
|
+
FROM
|
|
39
|
+
pg_class t,
|
|
40
|
+
pg_class i,
|
|
41
|
+
pg_index ix,
|
|
42
|
+
pg_attribute a,
|
|
43
|
+
pg_namespace n
|
|
44
|
+
WHERE
|
|
45
|
+
t.oid = ix.indrelid
|
|
46
|
+
AND i.oid = ix.indexrelid
|
|
47
|
+
AND a.attrelid = t.oid
|
|
48
|
+
AND a.attnum = ANY(ix.indkey)
|
|
49
|
+
AND t.relkind = 'r'
|
|
50
|
+
AND t.relnamespace = n.oid
|
|
51
|
+
AND n.nspname = :schema_name
|
|
52
|
+
GROUP BY
|
|
53
|
+
t.relname,
|
|
54
|
+
i.relname,
|
|
55
|
+
ix.indisunique,
|
|
56
|
+
ix.indisprimary;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
-- name: tables_by_schema
|
|
2
|
+
-- dialect: postgres
|
|
3
|
+
WITH RECURSIVE dependency_tree AS (
|
|
4
|
+
SELECT
|
|
5
|
+
t.table_name::text,
|
|
6
|
+
0 AS level,
|
|
7
|
+
ARRAY[t.table_name::text] AS path
|
|
8
|
+
FROM information_schema.tables t
|
|
9
|
+
WHERE t.table_type = 'BASE TABLE'
|
|
10
|
+
AND t.table_schema = :schema_name
|
|
11
|
+
AND NOT EXISTS (
|
|
12
|
+
SELECT 1
|
|
13
|
+
FROM information_schema.table_constraints tc
|
|
14
|
+
JOIN information_schema.key_column_usage kcu
|
|
15
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
16
|
+
AND tc.table_schema = kcu.table_schema
|
|
17
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
18
|
+
AND tc.table_name = t.table_name
|
|
19
|
+
AND tc.table_schema = t.table_schema
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
UNION ALL
|
|
23
|
+
|
|
24
|
+
SELECT
|
|
25
|
+
tc.table_name::text,
|
|
26
|
+
dt.level + 1,
|
|
27
|
+
dt.path || tc.table_name::text
|
|
28
|
+
FROM information_schema.table_constraints tc
|
|
29
|
+
JOIN information_schema.key_column_usage kcu
|
|
30
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
31
|
+
AND tc.table_schema = kcu.table_schema
|
|
32
|
+
JOIN information_schema.constraint_column_usage ccu
|
|
33
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
34
|
+
AND ccu.table_schema = tc.table_schema
|
|
35
|
+
JOIN dependency_tree dt
|
|
36
|
+
ON ccu.table_name = dt.table_name
|
|
37
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
38
|
+
AND tc.table_schema = :schema_name
|
|
39
|
+
AND ccu.table_schema = :schema_name
|
|
40
|
+
AND NOT (tc.table_name = ANY(dt.path))
|
|
41
|
+
)
|
|
42
|
+
SELECT DISTINCT table_name, level
|
|
43
|
+
FROM dependency_tree
|
|
44
|
+
ORDER BY level, table_name;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- name: columns_by_table
|
|
2
|
+
-- dialect: spanner
|
|
3
|
+
SELECT
|
|
4
|
+
column_name,
|
|
5
|
+
spanner_type AS data_type,
|
|
6
|
+
is_nullable,
|
|
7
|
+
column_default
|
|
8
|
+
FROM information_schema.columns
|
|
9
|
+
WHERE table_name = :table_name
|
|
10
|
+
AND (:schema_name IS NULL OR table_schema = :schema_name)
|
|
11
|
+
ORDER BY ordinal_position;
|
|
12
|
+
|
|
13
|
+
-- name: columns_by_schema
|
|
14
|
+
-- dialect: spanner
|
|
15
|
+
SELECT
|
|
16
|
+
table_name,
|
|
17
|
+
column_name,
|
|
18
|
+
spanner_type AS data_type,
|
|
19
|
+
is_nullable,
|
|
20
|
+
column_default
|
|
21
|
+
FROM information_schema.columns
|
|
22
|
+
WHERE (:schema_name IS NULL OR table_schema = :schema_name)
|
|
23
|
+
ORDER BY table_name, ordinal_position;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
-- name: foreign_keys_by_table
|
|
2
|
+
-- dialect: spanner
|
|
3
|
+
WITH fk_constraints AS (
|
|
4
|
+
SELECT
|
|
5
|
+
constraint_name,
|
|
6
|
+
unique_constraint_name
|
|
7
|
+
FROM information_schema.referential_constraints
|
|
8
|
+
WHERE (:schema_name IS NULL OR constraint_schema = :schema_name)
|
|
9
|
+
),
|
|
10
|
+
fk_columns AS (
|
|
11
|
+
SELECT
|
|
12
|
+
constraint_name,
|
|
13
|
+
table_name,
|
|
14
|
+
column_name,
|
|
15
|
+
ordinal_position,
|
|
16
|
+
table_schema
|
|
17
|
+
FROM information_schema.key_column_usage
|
|
18
|
+
WHERE (:schema_name IS NULL OR constraint_schema = :schema_name)
|
|
19
|
+
)
|
|
20
|
+
SELECT
|
|
21
|
+
fk.table_name,
|
|
22
|
+
fk.column_name,
|
|
23
|
+
pk.table_name AS referenced_table_name,
|
|
24
|
+
pk.column_name AS referenced_column_name,
|
|
25
|
+
fk.constraint_name,
|
|
26
|
+
fk.table_schema AS table_schema,
|
|
27
|
+
pk.table_schema AS referenced_table_schema
|
|
28
|
+
FROM fk_columns fk
|
|
29
|
+
JOIN fk_constraints rc
|
|
30
|
+
ON fk.constraint_name = rc.constraint_name
|
|
31
|
+
JOIN fk_columns pk
|
|
32
|
+
ON pk.constraint_name = rc.unique_constraint_name
|
|
33
|
+
AND pk.ordinal_position = fk.ordinal_position
|
|
34
|
+
WHERE (:table_name IS NULL OR fk.table_name = :table_name)
|
|
35
|
+
ORDER BY fk.table_name, fk.ordinal_position;
|
|
36
|
+
|
|
37
|
+
-- name: foreign_keys_by_schema
|
|
38
|
+
-- dialect: spanner
|
|
39
|
+
WITH fk_constraints AS (
|
|
40
|
+
SELECT
|
|
41
|
+
constraint_name,
|
|
42
|
+
unique_constraint_name
|
|
43
|
+
FROM information_schema.referential_constraints
|
|
44
|
+
WHERE (:schema_name IS NULL OR constraint_schema = :schema_name)
|
|
45
|
+
),
|
|
46
|
+
fk_columns AS (
|
|
47
|
+
SELECT
|
|
48
|
+
constraint_name,
|
|
49
|
+
table_name,
|
|
50
|
+
column_name,
|
|
51
|
+
ordinal_position,
|
|
52
|
+
table_schema
|
|
53
|
+
FROM information_schema.key_column_usage
|
|
54
|
+
WHERE (:schema_name IS NULL OR constraint_schema = :schema_name)
|
|
55
|
+
)
|
|
56
|
+
SELECT
|
|
57
|
+
fk.table_name,
|
|
58
|
+
fk.column_name,
|
|
59
|
+
pk.table_name AS referenced_table_name,
|
|
60
|
+
pk.column_name AS referenced_column_name,
|
|
61
|
+
fk.constraint_name,
|
|
62
|
+
fk.table_schema AS table_schema,
|
|
63
|
+
pk.table_schema AS referenced_table_schema
|
|
64
|
+
FROM fk_columns fk
|
|
65
|
+
JOIN fk_constraints rc
|
|
66
|
+
ON fk.constraint_name = rc.constraint_name
|
|
67
|
+
JOIN fk_columns pk
|
|
68
|
+
ON pk.constraint_name = rc.unique_constraint_name
|
|
69
|
+
AND pk.ordinal_position = fk.ordinal_position
|
|
70
|
+
ORDER BY fk.table_name, fk.ordinal_position;
|