ts-prorm-orm 1.1.0 → 1.2.0
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.
- package/CHANGELOG.md +83 -0
- package/README.md +194 -72
- package/dist/audit/history-query.d.ts +35 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/logger.d.ts +126 -0
- package/dist/cache/cache-manager.d.ts +341 -0
- package/dist/cache/index.d.ts +8 -0
- package/dist/cache/redis-cluster-cache.d.ts +164 -0
- package/dist/cache/redis-cluster-cache.js +19 -36
- package/dist/cli/cloud.d.ts +55 -0
- package/dist/cli/cloud.js +318 -0
- package/dist/cli/commands/auth.d.ts +2 -0
- package/dist/cli/commands/auth.js +345 -0
- package/dist/cli/commands/billing.d.ts +2 -0
- package/dist/cli/commands/billing.js +135 -0
- package/dist/cli/commands/code.d.ts +2 -0
- package/dist/cli/commands/code.js +168 -0
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +154 -0
- package/dist/cli/commands/db.d.ts +2 -0
- package/dist/cli/commands/db.js +189 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/keys.d.ts +2 -0
- package/dist/cli/commands/keys.js +100 -0
- package/dist/cli/commands/misc.d.ts +2 -0
- package/dist/cli/commands/misc.js +282 -0
- package/dist/cli/commands/pull.d.ts +2 -0
- package/dist/cli/commands/pull.js +306 -0
- package/dist/cli/commands/runners.d.ts +2 -0
- package/dist/cli/commands/runners.js +218 -0
- package/dist/cli/commands/scaffold.d.ts +2 -0
- package/dist/cli/commands/scaffold.js +383 -0
- package/dist/cli/commands/secrets.d.ts +2 -0
- package/dist/cli/commands/secrets.js +162 -0
- package/dist/cli/commands/store.d.ts +2 -0
- package/dist/cli/commands/store.js +274 -0
- package/dist/cli/commands/system.d.ts +10 -0
- package/dist/cli/commands/system.js +169 -0
- package/dist/cli/commands/teams.d.ts +2 -0
- package/dist/cli/commands/teams.js +189 -0
- package/dist/cli/commands/user.d.ts +2 -0
- package/dist/cli/commands/user.js +171 -0
- package/dist/cli/framework.d.ts +103 -0
- package/dist/cli/framework.js +436 -0
- package/dist/cli/io.d.ts +26 -0
- package/dist/cli/io.js +181 -0
- package/dist/cli/keychain.d.ts +10 -0
- package/dist/cli/keychain.js +101 -0
- package/dist/cli/prompt.d.ts +20 -0
- package/dist/cli/prompt.js +111 -0
- package/dist/cli.d.ts +214 -0
- package/dist/cli.js +72 -5
- package/dist/compliance/audit-trail.d.ts +66 -0
- package/dist/compliance/backup-verification.d.ts +279 -0
- package/dist/compliance/breach-detector.d.ts +197 -0
- package/dist/compliance/consent-record.d.ts +107 -0
- package/dist/compliance/consent-versioning.d.ts +169 -0
- package/dist/compliance/cross-border-log.d.ts +254 -0
- package/dist/compliance/data-classifier.d.ts +127 -0
- package/dist/compliance/data-lineage.d.ts +268 -0
- package/dist/compliance/data-masker.d.ts +110 -0
- package/dist/compliance/data-portability.d.ts +98 -0
- package/dist/compliance/data-retention.d.ts +108 -0
- package/dist/compliance/dsar-workflow.d.ts +175 -0
- package/dist/compliance/field-encryption.d.ts +84 -0
- package/dist/compliance/immutable-record.d.ts +84 -0
- package/dist/compliance/index.d.ts +93 -0
- package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
- package/dist/compliance/pseudonymization.d.ts +96 -0
- package/dist/compliance/query-firewall.d.ts +661 -0
- package/dist/compliance/rate-limiter.d.ts +203 -0
- package/dist/compliance/right-to-erasure.d.ts +96 -0
- package/dist/compliance/row-level-security.d.ts +152 -0
- package/dist/compliance/security-decorator.d.ts +388 -0
- package/dist/compliance/security-monitor.d.ts +170 -0
- package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
- package/dist/compliance/session-isolation.d.ts +286 -0
- package/dist/compliance/tls-enforcer.d.ts +51 -0
- package/dist/compliance/worm-storage.d.ts +225 -0
- package/dist/connection-manager.d.ts +130 -0
- package/dist/connection-pool.d.ts +311 -0
- package/dist/decorators/audit.d.ts +49 -0
- package/dist/decorators/check.d.ts +218 -0
- package/dist/decorators/collate.d.ts +346 -0
- package/dist/decorators/comment.d.ts +51 -0
- package/dist/decorators/database-settings.d.ts +193 -0
- package/dist/decorators/default.d.ts +148 -0
- package/dist/decorators/encryption.d.ts +175 -0
- package/dist/decorators/engine.d.ts +97 -0
- package/dist/decorators/fk-constraints.d.ts +387 -0
- package/dist/decorators/foreign-table.d.ts +57 -0
- package/dist/decorators/generated.d.ts +232 -0
- package/dist/decorators/hstore.d.ts +96 -0
- package/dist/decorators/index.d.ts +57 -0
- package/dist/decorators/index.js +14 -30
- package/dist/decorators/json-column.d.ts +47 -0
- package/dist/decorators/jsonb.d.ts +83 -0
- package/dist/decorators/orm-decorators.d.ts +274 -0
- package/dist/decorators/permissions.d.ts +192 -0
- package/dist/decorators/procedure.d.ts +168 -0
- package/dist/decorators/procedure.js +31 -7
- package/dist/decorators/query-options.d.ts +527 -0
- package/dist/decorators/range.d.ts +122 -0
- package/dist/decorators/set-column.d.ts +43 -0
- package/dist/decorators/spatial.d.ts +60 -0
- package/dist/decorators/storage.d.ts +561 -0
- package/dist/decorators/timezone.d.ts +319 -0
- package/dist/decorators/trigger.d.ts +50 -0
- package/dist/decorators/uuid.d.ts +102 -0
- package/dist/decorators/view.d.ts +213 -0
- package/dist/diagrams/chen-diagram.d.ts +70 -0
- package/dist/diagrams/chen-diagram.js +33 -31
- package/dist/diagrams/class-diagram.d.ts +78 -0
- package/dist/diagrams/class-diagram.js +23 -27
- package/dist/diagrams/dependency-diagram.d.ts +82 -0
- package/dist/diagrams/dependency-diagram.js +18 -9
- package/dist/diagrams/er-diagram.d.ts +82 -0
- package/dist/diagrams/er-diagram.js +174 -231
- package/dist/diagrams/flow-diagram.d.ts +70 -0
- package/dist/diagrams/flow-diagram.js +23 -18
- package/dist/diagrams/gantt-diagram.d.ts +67 -0
- package/dist/diagrams/gantt-diagram.js +20 -18
- package/dist/diagrams/index-diagram.d.ts +61 -0
- package/dist/diagrams/index-diagram.js +36 -31
- package/dist/diagrams/index.d.ts +155 -0
- package/dist/diagrams/index.js +7 -1
- package/dist/diagrams/migration-diagram.d.ts +67 -0
- package/dist/diagrams/migration-diagram.js +45 -57
- package/dist/diagrams/model-diagram.d.ts +85 -0
- package/dist/diagrams/model-diagram.js +225 -287
- package/dist/diagrams/package-diagram.d.ts +69 -0
- package/dist/diagrams/package-diagram.js +30 -32
- package/dist/diagrams/palette.d.ts +138 -0
- package/dist/diagrams/palette.js +134 -25
- package/dist/diagrams/relational-diagram.d.ts +82 -0
- package/dist/diagrams/relational-diagram.js +51 -59
- package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
- package/dist/diagrams/schemadoc-diagram.js +36 -28
- package/dist/diagrams/sequence-diagram.d.ts +61 -0
- package/dist/diagrams/sequence-diagram.js +20 -11
- package/dist/diagrams/state-diagram.d.ts +85 -0
- package/dist/diagrams/state-diagram.js +21 -17
- package/dist/diagrams/svg-dom.d.ts +62 -0
- package/dist/diagrams/svg-dom.js +11 -0
- package/dist/diagrams/tree-diagram.d.ts +47 -0
- package/dist/diagrams/tree-diagram.js +19 -10
- package/dist/dialects/clickhouse/index.d.ts +660 -0
- package/dist/dialects/clickhouse/index.js +107 -2
- package/dist/dialects/cockroachdb/index.d.ts +1708 -0
- package/dist/dialects/cockroachdb/index.js +139 -10
- package/dist/dialects/cratedb/index.d.ts +262 -0
- package/dist/dialects/cratedb/index.js +148 -0
- package/dist/dialects/databricks/index.d.ts +397 -0
- package/dist/dialects/databricks/index.js +233 -11
- package/dist/dialects/db2/index.d.ts +729 -0
- package/dist/dialects/db2/index.js +152 -2
- package/dist/dialects/dialect.d.ts +1653 -0
- package/dist/dialects/duckdb/index.d.ts +440 -0
- package/dist/dialects/duckdb/index.js +21 -37
- package/dist/dialects/exasol/index.d.ts +197 -0
- package/dist/dialects/exasol/index.js +14 -0
- package/dist/dialects/firebird/index.d.ts +286 -0
- package/dist/dialects/firebird/index.js +135 -0
- package/dist/dialects/greenplum/index.d.ts +336 -0
- package/dist/dialects/greenplum/index.js +168 -0
- package/dist/dialects/hana/index.d.ts +512 -0
- package/dist/dialects/hana/index.js +17 -35
- package/dist/dialects/mariadb/index.d.ts +1241 -0
- package/dist/dialects/mariadb/index.js +181 -43
- package/dist/dialects/mssql/index.d.ts +729 -0
- package/dist/dialects/mssql/index.js +76 -7
- package/dist/dialects/mysql/index.d.ts +1233 -0
- package/dist/dialects/mysql/index.js +87 -19
- package/dist/dialects/oracle/index.d.ts +1222 -0
- package/dist/dialects/oracle/index.js +210 -9
- package/dist/dialects/postgres/index.d.ts +1598 -0
- package/dist/dialects/postgres/index.js +34 -13
- package/dist/dialects/query-stream-helper.d.ts +58 -0
- package/dist/dialects/questdb/index.d.ts +430 -0
- package/dist/dialects/questdb/index.js +292 -0
- package/dist/dialects/redshift/index.d.ts +933 -0
- package/dist/dialects/redshift/index.js +17 -5
- package/dist/dialects/singlestore/index.d.ts +233 -0
- package/dist/dialects/singlestore/index.js +53 -0
- package/dist/dialects/snowflake/index.d.ts +727 -0
- package/dist/dialects/snowflake/index.js +154 -5
- package/dist/dialects/spanner/index.d.ts +660 -0
- package/dist/dialects/spanner/index.js +43 -21
- package/dist/dialects/sqlite/index.d.ts +1133 -0
- package/dist/dialects/sqlite/index.js +168 -30
- package/dist/dialects/tidb/index.d.ts +226 -0
- package/dist/dialects/tidb/index.js +10 -0
- package/dist/dialects/timescaledb/index.d.ts +286 -0
- package/dist/dialects/timescaledb/index.js +179 -0
- package/dist/dialects/trino/index.d.ts +230 -0
- package/dist/dialects/trino/index.js +85 -10
- package/dist/dialects/turso/index.d.ts +98 -0
- package/dist/dialects/turso/index.js +10 -0
- package/dist/dialects/vertica/index.d.ts +321 -0
- package/dist/dialects/vertica/index.js +161 -0
- package/dist/dialects/yugabytedb/index.d.ts +276 -0
- package/dist/dialects/yugabytedb/index.js +121 -0
- package/dist/errors/index.d.ts +378 -0
- package/dist/errors/index.js +29 -1
- package/dist/errors/utils.d.ts +53 -0
- package/dist/errors.d.ts +5 -0
- package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
- package/dist/extensions/catalog/mssql-features.d.ts +20 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
- package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
- package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
- package/dist/extensions/index.d.ts +34 -0
- package/dist/extensions/types.d.ts +43 -0
- package/dist/external-fields/adapters.d.ts +50 -0
- package/dist/external-fields/adapters.js +227 -0
- package/dist/external-fields/decorator.d.ts +77 -0
- package/dist/external-fields/decorator.js +80 -0
- package/dist/external-fields/index.d.ts +10 -0
- package/dist/external-fields/index.js +19 -0
- package/dist/external-fields/runtime.d.ts +39 -0
- package/dist/external-fields/runtime.js +221 -0
- package/dist/foreign-data.d.ts +168 -0
- package/dist/graph/base-graph-dialect.d.ts +250 -0
- package/dist/graph/base-graph-dialect.js +539 -0
- package/dist/graph/dgraph/index.d.ts +65 -0
- package/dist/graph/dgraph/index.js +559 -0
- package/dist/graph/gremlin/index.d.ts +59 -0
- package/dist/graph/gremlin/index.js +378 -0
- package/dist/graph/index.d.ts +60 -0
- package/dist/graph/index.js +67 -0
- package/dist/graph/neo4j/index.d.ts +50 -0
- package/dist/graph/neo4j/index.js +462 -0
- package/dist/graph/types.d.ts +213 -0
- package/dist/graph/types.js +234 -0
- package/dist/hooks/hooks-manager.d.ts +189 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/index.d.ts +711 -0
- package/dist/index.js +19 -4
- package/dist/logging.d.ts +183 -0
- package/dist/migrations/index.d.ts +9 -0
- package/dist/migrations/migration.d.ts +143 -0
- package/dist/migrations/migrator.d.ts +199 -0
- package/dist/migrations/prormmigration.d.ts +131 -0
- package/dist/migrations/query-interface.d.ts +335 -0
- package/dist/migrations/seeder.d.ts +167 -0
- package/dist/models/associations.d.ts +131 -0
- package/dist/models/associations.js +7 -2
- package/dist/models/constraints.d.ts +175 -0
- package/dist/models/data-types.d.ts +1656 -0
- package/dist/models/decorators.d.ts +328 -0
- package/dist/models/decorators.js +61 -82
- package/dist/models/eager-load.d.ts +86 -0
- package/dist/models/eager-load.js +369 -0
- package/dist/models/index.d.ts +13 -0
- package/dist/models/indexes.d.ts +325 -0
- package/dist/models/methods.d.ts +419 -0
- package/dist/models/model-manager.d.ts +76 -0
- package/dist/models/model.d.ts +820 -0
- package/dist/models/model.js +15 -101
- package/dist/models/operators.d.ts +29 -0
- package/dist/models/scopes.d.ts +71 -0
- package/dist/models/typescript-types.d.ts +177 -0
- package/dist/nosql/aerospike/index.d.ts +126 -0
- package/dist/nosql/allegrograph/index.d.ts +86 -0
- package/dist/nosql/arangodb/index.d.ts +285 -0
- package/dist/nosql/arangodb/index.js +274 -2
- package/dist/nosql/arangodb/where.d.ts +38 -0
- package/dist/nosql/arangodb/where.js +94 -0
- package/dist/nosql/azure-blob/index.d.ts +104 -0
- package/dist/nosql/beanstalkd/index.d.ts +88 -0
- package/dist/nosql/beequeue/index.d.ts +99 -0
- package/dist/nosql/bigchaindb/index.d.ts +113 -0
- package/dist/nosql/bigtable/index.d.ts +144 -0
- package/dist/nosql/blazegraph/index.d.ts +88 -0
- package/dist/nosql/bullmq/index.d.ts +83 -0
- package/dist/nosql/cassandra/index.d.ts +119 -0
- package/dist/nosql/chroma/index.d.ts +151 -0
- package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
- package/dist/nosql/coherence/index.d.ts +91 -0
- package/dist/nosql/cosmosdb/index.d.ts +78 -0
- package/dist/nosql/couchbase/index.d.ts +103 -0
- package/dist/nosql/dax/index.d.ts +118 -0
- package/dist/nosql/deno-kv/index.d.ts +109 -0
- package/dist/nosql/dgraph/index.d.ts +80 -0
- package/dist/nosql/doris/index.d.ts +88 -0
- package/dist/nosql/druid/index.d.ts +95 -0
- package/dist/nosql/dynamodb/index.d.ts +643 -0
- package/dist/nosql/dynamodb/index.js +423 -0
- package/dist/nosql/elasticsearch/index.d.ts +239 -0
- package/dist/nosql/etcd/index.d.ts +243 -0
- package/dist/nosql/eventhubs/index.d.ts +89 -0
- package/dist/nosql/eventstore/index.d.ts +102 -0
- package/dist/nosql/faunadb/index.d.ts +141 -0
- package/dist/nosql/faunadb/index.js +329 -0
- package/dist/nosql/firestore/index.d.ts +67 -0
- package/dist/nosql/fluree/index.d.ts +88 -0
- package/dist/nosql/fuseki/index.d.ts +94 -0
- package/dist/nosql/gcs/index.d.ts +62 -0
- package/dist/nosql/gearman/index.d.ts +77 -0
- package/dist/nosql/geode/index.d.ts +93 -0
- package/dist/nosql/graphdb/index.d.ts +86 -0
- package/dist/nosql/graylog/index.d.ts +118 -0
- package/dist/nosql/gridgain/index.d.ts +78 -0
- package/dist/nosql/hazelcast/index.d.ts +73 -0
- package/dist/nosql/hbase/index.d.ts +123 -0
- package/dist/nosql/ignite/index.d.ts +80 -0
- package/dist/nosql/immudb/index.d.ts +131 -0
- package/dist/nosql/index.d.ts +215 -0
- package/dist/nosql/infinispan/index.d.ts +95 -0
- package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
- package/dist/nosql/influxdb/flux-compiler.js +170 -0
- package/dist/nosql/influxdb/index.d.ts +300 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.d.ts +113 -0
- package/dist/nosql/keyspaces/index.d.ts +122 -0
- package/dist/nosql/kinesis/index.d.ts +121 -0
- package/dist/nosql/leveldb/index.d.ts +112 -0
- package/dist/nosql/leveldb/index.js +103 -1
- package/dist/nosql/lmdb/index.d.ts +76 -0
- package/dist/nosql/loki/index.d.ts +126 -0
- package/dist/nosql/marklogic/index.d.ts +76 -0
- package/dist/nosql/materialize/index.d.ts +91 -0
- package/dist/nosql/meilisearch/index.d.ts +76 -0
- package/dist/nosql/memcached/index.d.ts +138 -0
- package/dist/nosql/milvus/index.d.ts +167 -0
- package/dist/nosql/minio/index.d.ts +122 -0
- package/dist/nosql/momento/index.d.ts +99 -0
- package/dist/nosql/mongodb/index.d.ts +265 -0
- package/dist/nosql/mongodb/index.js +139 -0
- package/dist/nosql/mongodb/where.d.ts +8 -0
- package/dist/nosql/mongodb/where.js +181 -0
- package/dist/nosql/nats/index.d.ts +139 -0
- package/dist/nosql/nedb/index.d.ts +79 -0
- package/dist/nosql/neo4j/index.d.ts +217 -0
- package/dist/nosql/neo4j/index.js +26 -14
- package/dist/nosql/neptune/index.d.ts +234 -0
- package/dist/nosql/neptune/index.js +23 -9
- package/dist/nosql/nsq/index.d.ts +93 -0
- package/dist/nosql/opensearch/index.d.ts +97 -0
- package/dist/nosql/orientdb/index.d.ts +72 -0
- package/dist/nosql/papertrail/index.d.ts +120 -0
- package/dist/nosql/pinecone/index.d.ts +148 -0
- package/dist/nosql/pinot/index.d.ts +90 -0
- package/dist/nosql/pouchdb/index.d.ts +95 -0
- package/dist/nosql/prometheus/index.d.ts +112 -0
- package/dist/nosql/provendb/index.d.ts +143 -0
- package/dist/nosql/provendb/index.js +262 -0
- package/dist/nosql/pubsub/index.d.ts +83 -0
- package/dist/nosql/pulsar/index.d.ts +105 -0
- package/dist/nosql/qdrant/index.d.ts +231 -0
- package/dist/nosql/qldb/index.d.ts +182 -0
- package/dist/nosql/qldb/index.js +302 -1
- package/dist/nosql/r2/index.d.ts +160 -0
- package/dist/nosql/rabbitmq/index.d.ts +131 -0
- package/dist/nosql/ravendb/index.d.ts +138 -0
- package/dist/nosql/ravendb/index.js +323 -9
- package/dist/nosql/ravendb/where.d.ts +38 -0
- package/dist/nosql/ravendb/where.js +94 -0
- package/dist/nosql/redis/index.d.ts +267 -0
- package/dist/nosql/redis/index.js +19 -5
- package/dist/nosql/redpanda/index.d.ts +117 -0
- package/dist/nosql/resque/index.d.ts +91 -0
- package/dist/nosql/rethinkdb/index.d.ts +194 -0
- package/dist/nosql/rethinkdb/index.js +290 -0
- package/dist/nosql/rethinkdb/where.d.ts +38 -0
- package/dist/nosql/rethinkdb/where.js +94 -0
- package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
- package/dist/nosql/rocksdb/document-layer.js +338 -0
- package/dist/nosql/rocksdb/index.d.ts +112 -0
- package/dist/nosql/rocksdb/index.js +103 -1
- package/dist/nosql/rocksdb/where-match.d.ts +21 -0
- package/dist/nosql/rocksdb/where-match.js +238 -0
- package/dist/nosql/rockset/index.d.ts +84 -0
- package/dist/nosql/s3/index.d.ts +170 -0
- package/dist/nosql/scylladb/index.d.ts +117 -0
- package/dist/nosql/signoz/index.d.ts +116 -0
- package/dist/nosql/sns/index.d.ts +99 -0
- package/dist/nosql/solr/index.d.ts +129 -0
- package/dist/nosql/splunk/index.d.ts +125 -0
- package/dist/nosql/sqs/index.d.ts +116 -0
- package/dist/nosql/stardog/index.d.ts +86 -0
- package/dist/nosql/starrocks/index.d.ts +89 -0
- package/dist/nosql/store.d.ts +23 -0
- package/dist/nosql/sumologic/index.d.ts +119 -0
- package/dist/nosql/surrealdb/index.d.ts +156 -0
- package/dist/nosql/surrealdb/index.js +174 -1
- package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
- package/dist/nosql/surrealdb/query-compiler.js +193 -0
- package/dist/nosql/terminusdb/index.d.ts +95 -0
- package/dist/nosql/tigergraph/index.d.ts +314 -0
- package/dist/nosql/typesense/index.d.ts +82 -0
- package/dist/nosql/unqlite/index.d.ts +68 -0
- package/dist/nosql/upstash/index.d.ts +80 -0
- package/dist/nosql/vercel-kv/index.d.ts +82 -0
- package/dist/nosql/victoriametrics/index.d.ts +129 -0
- package/dist/nosql/virtuoso/index.d.ts +87 -0
- package/dist/nosql/weaviate/index.d.ts +196 -0
- package/dist/operators/index.d.ts +7 -0
- package/dist/operators.d.ts +2947 -0
- package/dist/operators.js +46 -1
- package/dist/prisma-migrate/index.d.ts +28 -0
- package/dist/prisma-migrate/migration-generator.d.ts +21 -0
- package/dist/prisma-migrate/model-generator.d.ts +12 -0
- package/dist/prisma-migrate/relations.d.ts +28 -0
- package/dist/prisma-migrate/schema-parser.d.ts +42 -0
- package/dist/prisma-migrate/type-mapper.d.ts +20 -0
- package/dist/prorm.d.ts +2093 -0
- package/dist/prorm.js +721 -302
- package/dist/query-builders/cte-builder.d.ts +104 -0
- package/dist/query-builders/functions/aggregate.d.ts +199 -0
- package/dist/query-builders/functions/conditional.d.ts +195 -0
- package/dist/query-builders/functions/datetime.d.ts +202 -0
- package/dist/query-builders/functions/fulltext.d.ts +220 -0
- package/dist/query-builders/functions/index.d.ts +17 -0
- package/dist/query-builders/functions/json.d.ts +157 -0
- package/dist/query-builders/functions/math.d.ts +215 -0
- package/dist/query-builders/functions/string.d.ts +233 -0
- package/dist/query-builders/functions/window.d.ts +209 -0
- package/dist/query-builders/include-builder.d.ts +85 -0
- package/dist/query-builders/index-expression-builder.d.ts +153 -0
- package/dist/query-builders/index.d.ts +121 -0
- package/dist/query-builders/index.js +10 -0
- package/dist/query-builders/insert-builder.d.ts +62 -0
- package/dist/query-builders/model-helpers.d.ts +28 -0
- package/dist/query-builders/order-limit-builder.d.ts +84 -0
- package/dist/query-builders/sql-compiler.d.ts +562 -0
- package/dist/query-builders/subquery-builder.d.ts +133 -0
- package/dist/query-builders/update-builder.d.ts +71 -0
- package/dist/query-builders/view-builder.d.ts +189 -0
- package/dist/query-builders/where-builder.d.ts +124 -0
- package/dist/query-interface.d.ts +407 -0
- package/dist/query-interface.js +84 -0
- package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
- package/dist/query-optimizers/explain-plans.d.ts +187 -0
- package/dist/query-optimizers/index.d.ts +27 -0
- package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
- package/dist/query-optimizers/query-hints.d.ts +201 -0
- package/dist/query-optimizers/query-optimizer.d.ts +162 -0
- package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
- package/dist/replica-manager.d.ts +235 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/migration-generator.d.ts +74 -0
- package/dist/schema/schema-differ.d.ts +114 -0
- package/dist/schema/types.d.ts +246 -0
- package/dist/schema-objects.d.ts +78 -0
- package/dist/schema-objects.js +203 -0
- package/dist/sql-constants.d.ts +240 -0
- package/dist/sqlite-advanced.d.ts +572 -0
- package/dist/streams/index.d.ts +5 -0
- package/dist/streams/transforms.d.ts +120 -0
- package/dist/transaction.d.ts +221 -0
- package/dist/types/index.d.ts +3123 -0
- package/dist/user-management.d.ts +141 -0
- package/dist/utils/date.d.ts +149 -0
- package/dist/utils/index.d.ts +359 -0
- package/dist/utils/string.d.ts +88 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/validator.d.ts +306 -0
- package/package.json +20 -5
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Databricks SQL dialect implementation for the TypeScript ORM.
|
|
3
|
+
*
|
|
4
|
+
* Databricks SQL is built on Apache Spark SQL and the Delta Lake table format
|
|
5
|
+
* (a.k.a. the "lakehouse"). It uses backtick-quoted identifiers, exactly like
|
|
6
|
+
* MySQL/Spark SQL, so this dialect EXTENDS {@link MySQLDialect} purely to reuse
|
|
7
|
+
* the backtick quoting/escaping scaffolding and the general query-building
|
|
8
|
+
* skeleton, then overrides the pieces where Spark/Delta grammar genuinely
|
|
9
|
+
* differs from MySQL. A real deployment would connect over the Databricks SQL
|
|
10
|
+
* driver (Databricks SQL Warehouse / `@databricks/sql`) rather than mysql2 —
|
|
11
|
+
* the inherited connection code is not used against a real cluster.
|
|
12
|
+
*
|
|
13
|
+
* Notable differences from MySQL that this dialect overrides:
|
|
14
|
+
*
|
|
15
|
+
* - Default port is 443 (Databricks SQL Warehouses are reached over HTTPS),
|
|
16
|
+
* not 3306.
|
|
17
|
+
* - CREATE TABLE emits Delta/Spark grammar: `USING DELTA` (the table's data
|
|
18
|
+
* source/format, default DELTA; also PARQUET/CSV/JSON/etc.), `PARTITIONED BY
|
|
19
|
+
* (cols)`, `CLUSTERED BY (cols) INTO n BUCKETS`, `TBLPROPERTIES (...)`,
|
|
20
|
+
* `LOCATION 's3://...'` (external/unmanaged tables), and a trailing
|
|
21
|
+
* `COMMENT '...'`. There is no MySQL `ENGINE=`/`ROW_FORMAT=`/charset concept.
|
|
22
|
+
* - CTAS: {@link DatabricksDialect.buildCreateTableAsSelect} emits
|
|
23
|
+
* `CREATE TABLE ... USING DELTA AS SELECT ...`.
|
|
24
|
+
* - Upsert is expressed as a Delta Lake `MERGE INTO target USING source ON ...
|
|
25
|
+
* WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT ...`
|
|
26
|
+
* statement (see {@link DatabricksDialect.buildUpsertQuery}) rather than
|
|
27
|
+
* MySQL's `INSERT ... ON DUPLICATE KEY UPDATE`.
|
|
28
|
+
* - Auto-increment columns use Delta's `GENERATED ALWAYS AS IDENTITY` identity
|
|
29
|
+
* columns instead of MySQL's `AUTO_INCREMENT`.
|
|
30
|
+
* - Type mapping uses Spark SQL types: `STRING` (there is no `VARCHAR`/`TEXT`),
|
|
31
|
+
* `BIGINT`, `INT`, `DOUBLE`, `FLOAT`, `BOOLEAN`, `TIMESTAMP`, `DATE`,
|
|
32
|
+
* `BINARY`, `DECIMAL(p,s)`, and the complex types `ARRAY<>`, `MAP<>`,
|
|
33
|
+
* `STRUCT<>` (see {@link DatabricksDialect.getDataTypeSql}).
|
|
34
|
+
* - PRIMARY KEY / FOREIGN KEY constraints in Databricks are INFORMATIONAL only
|
|
35
|
+
* (they are declared `NOT ENFORCED` and used by the optimizer for query
|
|
36
|
+
* planning); they do not enforce uniqueness or referential integrity. This
|
|
37
|
+
* dialect emits them inline as informational constraints and never relies on
|
|
38
|
+
* them for correctness.
|
|
39
|
+
*/
|
|
40
|
+
import { MySQLDialect, MySQLDialectOptions } from '../mysql/index';
|
|
41
|
+
import { ColumnDefinition, TableOptions, UpsertQueryOptions, InsertOptions, UpdateOptions, DeleteOptions, DropTableOptions, IndexOptions, IndexDefinition } from '../dialect';
|
|
42
|
+
import { DataType, WhereOptions } from '../../types';
|
|
43
|
+
/**
|
|
44
|
+
* Data source / file format backing a Databricks table (`USING <format>`).
|
|
45
|
+
* Delta Lake is the default and the only format with full ACID/upsert support.
|
|
46
|
+
*/
|
|
47
|
+
export type DatabricksTableFormat = 'DELTA' | 'PARQUET' | 'CSV' | 'JSON' | 'ORC' | 'AVRO';
|
|
48
|
+
/**
|
|
49
|
+
* Databricks connection options. Adds Unity Catalog three-level namespace
|
|
50
|
+
* defaults (`catalog`.`schema`.`table`) on top of the inherited MySQL options.
|
|
51
|
+
* When a `catalog` is configured, unqualified table names are resolved to
|
|
52
|
+
* `` `catalog`.`schema`.`table` `` (see {@link DatabricksDialect.quoteTable}).
|
|
53
|
+
*/
|
|
54
|
+
export interface DatabricksDialectOptions extends MySQLDialectOptions {
|
|
55
|
+
/**
|
|
56
|
+
* Unity Catalog catalog name (the first level of `catalog.schema.table`).
|
|
57
|
+
* When set, unqualified names emitted by this dialect are catalog-qualified.
|
|
58
|
+
*/
|
|
59
|
+
catalog?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Default Unity Catalog schema (a.k.a. database — the middle level). Used
|
|
62
|
+
* when a table name is neither dotted nor given an explicit schema. Defaults
|
|
63
|
+
* to `'default'` when a catalog is configured but no schema is given.
|
|
64
|
+
*/
|
|
65
|
+
schema?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Databricks/Delta-specific CREATE TABLE options layered on top of the shared
|
|
69
|
+
* {@link TableOptions}. Passed alongside the common options; a plain
|
|
70
|
+
* `TableOptions` value remains valid since every field here is optional.
|
|
71
|
+
*/
|
|
72
|
+
export interface DatabricksTableOptions extends TableOptions {
|
|
73
|
+
/** Data source / format for the table (`USING <format>`). Defaults to `'DELTA'`. */
|
|
74
|
+
using?: DatabricksTableFormat;
|
|
75
|
+
/** Columns to partition the table's storage by (`PARTITIONED BY (cols)`). */
|
|
76
|
+
partitionedBy?: string[];
|
|
77
|
+
/**
|
|
78
|
+
* Bucketing (hash-clustering) spec: `CLUSTERED BY (cols) INTO n BUCKETS`.
|
|
79
|
+
* Databricks distributes rows into a fixed number of buckets by hashing the
|
|
80
|
+
* given columns.
|
|
81
|
+
*/
|
|
82
|
+
clusteredBy?: {
|
|
83
|
+
columns: string[];
|
|
84
|
+
buckets: number;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Delta/Spark table properties (`TBLPROPERTIES ('key'='value', ...)`), e.g.
|
|
88
|
+
* `{ 'delta.appendOnly': 'true' }`.
|
|
89
|
+
*/
|
|
90
|
+
tblproperties?: Record<string, string>;
|
|
91
|
+
/**
|
|
92
|
+
* Storage location for an external/unmanaged table (`LOCATION 's3://...'`).
|
|
93
|
+
* When omitted the table is managed by the metastore.
|
|
94
|
+
*/
|
|
95
|
+
location?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Databricks SQL dialect. See the file header for the full list of
|
|
99
|
+
* Spark/Delta-specific overrides.
|
|
100
|
+
*/
|
|
101
|
+
export declare class DatabricksDialect extends MySQLDialect {
|
|
102
|
+
readonly name = "databricks";
|
|
103
|
+
/** Configured Unity Catalog catalog (undefined => no catalog qualification). */
|
|
104
|
+
protected readonly unityCatalog?: string;
|
|
105
|
+
/** Configured default Unity Catalog schema (database). */
|
|
106
|
+
protected readonly unitySchema?: string;
|
|
107
|
+
constructor(config: DatabricksDialectOptions);
|
|
108
|
+
/**
|
|
109
|
+
* Quote a table name using Unity Catalog's three-level namespace when a
|
|
110
|
+
* catalog is configured: `` `catalog`.`schema`.`table` ``.
|
|
111
|
+
*
|
|
112
|
+
* - A name that already contains dots (the caller passed a qualified
|
|
113
|
+
* `catalog.schema.table` or `schema.table`) is quoted segment-by-segment
|
|
114
|
+
* and returned as-is — the caller's qualification always wins.
|
|
115
|
+
* - An unqualified name is prefixed with the configured catalog and the
|
|
116
|
+
* given/`schema` option/`'default'` schema.
|
|
117
|
+
* - With no catalog configured, behaves like the inherited MySQL/Spark
|
|
118
|
+
* backtick quoting (still dot-aware).
|
|
119
|
+
*/
|
|
120
|
+
quoteTable(tableName: string, schema?: string): string;
|
|
121
|
+
/**
|
|
122
|
+
* Resolve a table reference to its fully-qualified, quoted Unity Catalog form.
|
|
123
|
+
* Thin wrapper over {@link quoteTable} used by the Databricks-specific DDL/DML
|
|
124
|
+
* builders (which historically emitted a bare `escapeId(table)`), so those
|
|
125
|
+
* now honor the configured catalog/schema too.
|
|
126
|
+
*/
|
|
127
|
+
protected qualifiedTable(tableName: string, schema?: string): string;
|
|
128
|
+
/**
|
|
129
|
+
* Map an ORM {@link DataType} to a Spark SQL / Delta type. The key
|
|
130
|
+
* difference from MySQL is that character types collapse to `STRING`
|
|
131
|
+
* (Spark SQL has no `VARCHAR(n)`/`TEXT`), and the complex types
|
|
132
|
+
* `ARRAY<>`/`MAP<>`/`STRUCT<>` are supported.
|
|
133
|
+
*/
|
|
134
|
+
getDataTypeSql(dataType: DataType): string;
|
|
135
|
+
/**
|
|
136
|
+
* Resolve the element/value type for a complex (ARRAY/MAP) type, defaulting
|
|
137
|
+
* to `STRING` when the element type is unspecified.
|
|
138
|
+
*/
|
|
139
|
+
private getComplexElementType;
|
|
140
|
+
/**
|
|
141
|
+
* Build a single column definition for a Databricks CREATE TABLE. Emits
|
|
142
|
+
* Delta `GENERATED ALWAYS AS IDENTITY` for auto-increment columns and an
|
|
143
|
+
* informational (not-enforced) inline `PRIMARY KEY` where requested.
|
|
144
|
+
*/
|
|
145
|
+
buildColumnDefinitionSql(columnName: string, definition: ColumnDefinition): string;
|
|
146
|
+
/**
|
|
147
|
+
* Build the `CREATE TABLE` statement using Delta/Spark grammar. Exposed
|
|
148
|
+
* synchronously (separate from the async {@link createTable}) so callers can
|
|
149
|
+
* inspect the generated SQL without a live connection.
|
|
150
|
+
*/
|
|
151
|
+
buildCreateTableSql(tableName: string, columns: Record<string, ColumnDefinition>, options?: DatabricksTableOptions): string;
|
|
152
|
+
/**
|
|
153
|
+
* Create a table using Delta/Spark grammar. Delegates SQL generation to
|
|
154
|
+
* {@link buildCreateTableSql} and executes it.
|
|
155
|
+
*/
|
|
156
|
+
createTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: DatabricksTableOptions): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Build a `CREATE TABLE ... USING <format> AS SELECT ...` (CTAS) statement.
|
|
159
|
+
* The column list and types are inferred from the SELECT, so only the format
|
|
160
|
+
* and (optionally) partitioning/location apply.
|
|
161
|
+
*/
|
|
162
|
+
buildCreateTableAsSelect(tableName: string, selectQuery: string, options?: Pick<DatabricksTableOptions, 'using' | 'partitionedBy' | 'location' | 'comment' | 'ifNotExists' | 'tblproperties'>): string;
|
|
163
|
+
/**
|
|
164
|
+
* Build a Delta Lake `MERGE INTO` upsert. Delta has no MySQL-style
|
|
165
|
+
* `ON DUPLICATE KEY UPDATE`; instead the row(s) to upsert are supplied as an
|
|
166
|
+
* inline `source` relation and matched against the target on the conflict
|
|
167
|
+
* (key) columns:
|
|
168
|
+
*
|
|
169
|
+
* MERGE INTO `t` AS target
|
|
170
|
+
* USING (SELECT ? AS `id`, ? AS `name`) AS source
|
|
171
|
+
* ON target.`id` = source.`id`
|
|
172
|
+
* WHEN MATCHED THEN UPDATE SET target.`name` = source.`name`
|
|
173
|
+
* WHEN NOT MATCHED THEN INSERT (`id`, `name`) VALUES (source.`id`, source.`name`)
|
|
174
|
+
*
|
|
175
|
+
* @param tableName - Target table.
|
|
176
|
+
* @param values - Column/value pairs for the row to upsert.
|
|
177
|
+
* @param options - `conflictFields` picks the ON/match key columns (defaults
|
|
178
|
+
* to all columns); `updateOnDuplicate` restricts which columns the
|
|
179
|
+
* WHEN MATCHED branch updates (defaults to all non-key columns).
|
|
180
|
+
*/
|
|
181
|
+
buildUpsertQuery(tableName: string, values: Record<string, unknown>, options?: UpsertQueryOptions): {
|
|
182
|
+
sql: string;
|
|
183
|
+
values: unknown[];
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Build a `LIMIT`/`OFFSET` tail. Spark SQL supports `LIMIT n` and, since
|
|
187
|
+
* Spark 3.4 / Databricks Runtime 11+, a standalone `OFFSET n` (with or
|
|
188
|
+
* without a preceding `LIMIT`). Unlike MySQL there is NO need for the
|
|
189
|
+
* `LIMIT 18446744073709551615 OFFSET n` sentinel trick — Spark accepts
|
|
190
|
+
* `OFFSET` on its own — so this override drops that MySQL-only hack.
|
|
191
|
+
*
|
|
192
|
+
* NOTE: `OFFSET` is only valid on the outermost query and requires a
|
|
193
|
+
* recent Spark/DBR; on older runtimes it raises a parser error. For deep
|
|
194
|
+
* pagination prefer a keyset/`WHERE` predicate over large offsets.
|
|
195
|
+
*/
|
|
196
|
+
buildLimitOffset(limit?: number | string, offset?: number | string): string;
|
|
197
|
+
/**
|
|
198
|
+
* Build an INSERT. A plain insert (`INSERT INTO t (cols) VALUES (...)`) is
|
|
199
|
+
* valid Spark SQL and reuses the inherited MySQL builder verbatim. When the
|
|
200
|
+
* caller sets `upsert`, MySQL would emit `... ON DUPLICATE KEY UPDATE`, which
|
|
201
|
+
* Spark/Delta rejects — so route to a Delta `MERGE INTO` instead.
|
|
202
|
+
*/
|
|
203
|
+
buildInsertQuery(tableName: string, values: Record<string, unknown>, options?: InsertOptions): {
|
|
204
|
+
sql: string;
|
|
205
|
+
values: unknown[];
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Build an UPDATE. Delta Lake supports `UPDATE t SET ... WHERE ...`, but
|
|
209
|
+
* (unlike MySQL) it does NOT support a trailing `LIMIT` on UPDATE, nor a
|
|
210
|
+
* `RETURNING` clause. Strip `LIMIT` and reject `RETURNING` rather than emit
|
|
211
|
+
* SQL Spark would reject.
|
|
212
|
+
*/
|
|
213
|
+
buildUpdateQuery(tableName: string, values: Record<string, unknown>, where: WhereOptions, options?: UpdateOptions): {
|
|
214
|
+
sql: string;
|
|
215
|
+
values: unknown[];
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Build a DELETE. Delta Lake supports `DELETE FROM t WHERE ...`, but not a
|
|
219
|
+
* trailing `LIMIT` or `RETURNING`. Strip `LIMIT` and reject `RETURNING`.
|
|
220
|
+
*/
|
|
221
|
+
buildDeleteQuery(tableName: string, where: WhereOptions, options?: DeleteOptions): {
|
|
222
|
+
sql: string;
|
|
223
|
+
values: unknown[];
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Column spec for `ALTER TABLE ... ADD COLUMNS`. Spark only accepts
|
|
227
|
+
* `name type [COMMENT '...']` (optionally `FIRST`/`AFTER col`) here — it does
|
|
228
|
+
* NOT accept `NOT NULL`, `DEFAULT`, `PRIMARY KEY`, or identity clauses on an
|
|
229
|
+
* added column, so those are intentionally omitted (unlike the full CREATE
|
|
230
|
+
* TABLE column definition).
|
|
231
|
+
*/
|
|
232
|
+
private buildAddColumnSpecSql;
|
|
233
|
+
/**
|
|
234
|
+
* Build `ALTER TABLE t ADD COLUMNS (col type ...)`. Spark uses the plural
|
|
235
|
+
* `ADD COLUMNS (...)` with a parenthesised list — NOT MySQL's singular
|
|
236
|
+
* `ADD COLUMN col ...`.
|
|
237
|
+
*/
|
|
238
|
+
buildAddColumnSql(tableName: string, columnName: string, definition: ColumnDefinition): string;
|
|
239
|
+
addColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
|
|
240
|
+
/**
|
|
241
|
+
* Build `ALTER TABLE t DROP COLUMN col`. Valid Delta grammar (requires Delta
|
|
242
|
+
* column-mapping mode to be enabled on the table); identical in shape to
|
|
243
|
+
* MySQL, so behaviourally inherited but surfaced as a sync builder for tests.
|
|
244
|
+
*/
|
|
245
|
+
buildDropColumnSql(tableName: string, columnName: string): string;
|
|
246
|
+
removeColumn(tableName: string, columnName: string): Promise<void>;
|
|
247
|
+
/**
|
|
248
|
+
* Build `ALTER TABLE t RENAME COLUMN old TO new`. Spark/Delta uses
|
|
249
|
+
* `RENAME COLUMN`; MySQL uses `CHANGE old new <type>` (which also requires
|
|
250
|
+
* re-stating the type). This override needs no `DESCRIBE` round-trip.
|
|
251
|
+
*/
|
|
252
|
+
buildRenameColumnSql(tableName: string, oldColumnName: string, newColumnName: string): string;
|
|
253
|
+
renameColumn(tableName: string, oldColumnName: string, newColumnName: string): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Delta only supports a narrow set of in-place column alterations
|
|
256
|
+
* (comment, nullability, ordering — and, on recent runtimes, limited type
|
|
257
|
+
* widening). MySQL's `CHANGE col <full-def>` is not valid Spark SQL, so
|
|
258
|
+
* rather than emit something a cluster would reject, expose the two
|
|
259
|
+
* supported primitives explicitly and fail fast on the generic path.
|
|
260
|
+
*/
|
|
261
|
+
changeColumn(_tableName: string, _columnName: string, _definition: ColumnDefinition): Promise<void>;
|
|
262
|
+
/** Build `ALTER TABLE t ALTER COLUMN col COMMENT '...'` (Delta-supported). */
|
|
263
|
+
buildSetColumnCommentSql(tableName: string, columnName: string, comment: string): string;
|
|
264
|
+
setColumnComment(tableName: string, columnName: string, comment: string): Promise<void>;
|
|
265
|
+
/**
|
|
266
|
+
* Build `ALTER TABLE t ALTER COLUMN col SET|DROP NOT NULL` (Delta-supported).
|
|
267
|
+
*/
|
|
268
|
+
buildSetColumnNullabilitySql(tableName: string, columnName: string, notNull: boolean): string;
|
|
269
|
+
setColumnNullability(tableName: string, columnName: string, notNull: boolean): Promise<void>;
|
|
270
|
+
/**
|
|
271
|
+
* Build `DROP TABLE [IF EXISTS] t`. Spark has no `CASCADE` on `DROP TABLE`
|
|
272
|
+
* (that's a MySQL/Postgres construct), so the inherited CASCADE handling is
|
|
273
|
+
* overridden away.
|
|
274
|
+
*/
|
|
275
|
+
buildDropTableSql(tableName: string, options?: DropTableOptions): string;
|
|
276
|
+
dropTable(tableName: string, options?: DropTableOptions): Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Build `ALTER TABLE t SET TBLPROPERTIES ('k'='v', ...)` — the Delta/Spark
|
|
279
|
+
* way to change table-level options after creation.
|
|
280
|
+
*/
|
|
281
|
+
buildSetTablePropertiesSql(tableName: string, properties: Record<string, string>): string;
|
|
282
|
+
setTableProperties(tableName: string, properties: Record<string, string>): Promise<void>;
|
|
283
|
+
/** Build `ALTER TABLE t UNSET TBLPROPERTIES [IF EXISTS] ('k', ...)`. */
|
|
284
|
+
buildUnsetTablePropertiesSql(tableName: string, keys: string[], ifExists?: boolean): string;
|
|
285
|
+
unsetTableProperties(tableName: string, keys: string[], ifExists?: boolean): Promise<void>;
|
|
286
|
+
/**
|
|
287
|
+
* Build `OPTIMIZE table [WHERE ...] [ZORDER BY (cols)]` — Delta's file
|
|
288
|
+
* compaction command. Z-ordering co-locates related data across the given
|
|
289
|
+
* columns to make data-skipping effective, and is the closest Delta analog to
|
|
290
|
+
* a secondary index. `where` restricts compaction to matching partitions.
|
|
291
|
+
*/
|
|
292
|
+
buildOptimizeSql(tableName: string, options?: {
|
|
293
|
+
zorderBy?: string[];
|
|
294
|
+
where?: string;
|
|
295
|
+
}): string;
|
|
296
|
+
/** Run `OPTIMIZE ... [ZORDER BY ...]` (see {@link buildOptimizeSql}). */
|
|
297
|
+
optimize(tableName: string, options?: {
|
|
298
|
+
zorderBy?: string[];
|
|
299
|
+
where?: string;
|
|
300
|
+
}): Promise<void>;
|
|
301
|
+
/**
|
|
302
|
+
* Build `VACUUM table [RETAIN n HOURS] [DRY RUN]` — removes data files no
|
|
303
|
+
* longer referenced by the Delta log and older than the retention window
|
|
304
|
+
* (default 168 hours / 7 days). Reclaims storage from prior versions; note it
|
|
305
|
+
* also truncates the time-travel window it removes.
|
|
306
|
+
*/
|
|
307
|
+
buildVacuumSql(tableName: string, options?: {
|
|
308
|
+
retainHours?: number;
|
|
309
|
+
dryRun?: boolean;
|
|
310
|
+
}): string;
|
|
311
|
+
/** Run `VACUUM ...` (see {@link buildVacuumSql}). */
|
|
312
|
+
vacuum(tableName: string, options?: {
|
|
313
|
+
retainHours?: number;
|
|
314
|
+
dryRun?: boolean;
|
|
315
|
+
}): Promise<void>;
|
|
316
|
+
/**
|
|
317
|
+
* Build a Delta time-travel `SELECT` reading a historical snapshot of a table
|
|
318
|
+
* by version number (`VERSION AS OF n`) or timestamp (`TIMESTAMP AS OF '...'`).
|
|
319
|
+
* Exactly one of `version`/`timestamp` must be given.
|
|
320
|
+
*
|
|
321
|
+
* SELECT * FROM `t` VERSION AS OF 12
|
|
322
|
+
* SELECT `a`, `b` FROM `t` TIMESTAMP AS OF '2024-01-01 00:00:00'
|
|
323
|
+
*/
|
|
324
|
+
buildTimeTravelSelectSql(tableName: string, options: {
|
|
325
|
+
version?: number;
|
|
326
|
+
timestamp?: string | Date;
|
|
327
|
+
columns?: string[];
|
|
328
|
+
where?: string;
|
|
329
|
+
}): string;
|
|
330
|
+
/** Read a historical snapshot via Delta time travel (see {@link buildTimeTravelSelectSql}). */
|
|
331
|
+
selectAsOf(tableName: string, options: {
|
|
332
|
+
version?: number;
|
|
333
|
+
timestamp?: string | Date;
|
|
334
|
+
columns?: string[];
|
|
335
|
+
where?: string;
|
|
336
|
+
}): Promise<unknown[]>;
|
|
337
|
+
/**
|
|
338
|
+
* Build `RESTORE TABLE t TO VERSION AS OF n` / `TO TIMESTAMP AS OF '...'` —
|
|
339
|
+
* roll a Delta table back to a prior version in place.
|
|
340
|
+
*/
|
|
341
|
+
buildRestoreSql(tableName: string, options: {
|
|
342
|
+
version?: number;
|
|
343
|
+
timestamp?: string | Date;
|
|
344
|
+
}): string;
|
|
345
|
+
/** Restore a Delta table to a prior version/timestamp (see {@link buildRestoreSql}). */
|
|
346
|
+
restore(tableName: string, options: {
|
|
347
|
+
version?: number;
|
|
348
|
+
timestamp?: string | Date;
|
|
349
|
+
}): Promise<void>;
|
|
350
|
+
/**
|
|
351
|
+
* Build a Databricks `COPY INTO` bulk-load statement — the idempotent,
|
|
352
|
+
* exactly-once loader from a cloud file location into a Delta table:
|
|
353
|
+
*
|
|
354
|
+
* COPY INTO `t` FROM 's3://bucket/path'
|
|
355
|
+
* FILEFORMAT = CSV
|
|
356
|
+
* FILES = ('a.csv','b.csv') -- or PATTERN = '*.csv'
|
|
357
|
+
* FORMAT_OPTIONS ('header'='true')
|
|
358
|
+
* COPY_OPTIONS ('mergeSchema'='true')
|
|
359
|
+
*/
|
|
360
|
+
buildCopyIntoSql(tableName: string, source: string, options: {
|
|
361
|
+
fileFormat: 'CSV' | 'JSON' | 'PARQUET' | 'AVRO' | 'ORC' | 'TEXT' | 'BINARYFILE';
|
|
362
|
+
files?: string[];
|
|
363
|
+
pattern?: string;
|
|
364
|
+
formatOptions?: Record<string, string>;
|
|
365
|
+
copyOptions?: Record<string, string>;
|
|
366
|
+
}): string;
|
|
367
|
+
/** Run a `COPY INTO` bulk load (see {@link buildCopyIntoSql}). */
|
|
368
|
+
copyInto(tableName: string, source: string, options: Parameters<DatabricksDialect['buildCopyIntoSql']>[2]): Promise<void>;
|
|
369
|
+
/**
|
|
370
|
+
* Build a general Delta `MERGE INTO ... USING <source relation> ON ...` that
|
|
371
|
+
* supports all three action branches — including `WHEN MATCHED THEN DELETE`,
|
|
372
|
+
* which the single-row {@link buildUpsertQuery} upsert path can't express.
|
|
373
|
+
* The `source` is a caller-supplied relation (a subquery/table/CTAS alias,
|
|
374
|
+
* e.g. `staging_updates`); this method wires the ON/action clauses around it.
|
|
375
|
+
*/
|
|
376
|
+
buildMergeSql(tableName: string, source: string, options: {
|
|
377
|
+
sourceAlias?: string;
|
|
378
|
+
targetAlias?: string;
|
|
379
|
+
on: string;
|
|
380
|
+
whenMatchedUpdate?: Record<string, string> | 'ALL';
|
|
381
|
+
whenMatchedDelete?: boolean;
|
|
382
|
+
whenNotMatchedInsert?: Record<string, string> | 'ALL';
|
|
383
|
+
}): string;
|
|
384
|
+
/** Run a general Delta `MERGE INTO` (see {@link buildMergeSql}). */
|
|
385
|
+
mergeInto(tableName: string, source: string, options: Parameters<DatabricksDialect['buildMergeSql']>[2]): Promise<void>;
|
|
386
|
+
private static readonly INDEX_UNSUPPORTED;
|
|
387
|
+
addIndex(_tableName: string, _indexName: string, _fields?: string[], _options?: IndexOptions): Promise<void>;
|
|
388
|
+
createIndex(_tableName: string, _indexDef: IndexDefinition): Promise<void>;
|
|
389
|
+
removeIndex(_tableName: string, _indexName: string): Promise<void>;
|
|
390
|
+
dropIndex(_tableName: string, _indexName: string): Promise<void>;
|
|
391
|
+
createFulltextIndex(): Promise<void>;
|
|
392
|
+
createSpatialIndex(): Promise<void>;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Convenience factory mirroring the other dialects' `create*Dialect` helpers.
|
|
396
|
+
*/
|
|
397
|
+
export declare function createDatabricksDialect(options?: DatabricksDialectOptions): DatabricksDialect;
|