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,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vertica dialect implementation for the TypeScript ORM
|
|
3
|
+
*
|
|
4
|
+
* Vertica is an analytic, columnar, massively-parallel-processing (MPP)
|
|
5
|
+
* database. It speaks the PostgreSQL wire protocol on port 5433 and is
|
|
6
|
+
* broadly SQL-compatible with PostgreSQL, so this dialect extends
|
|
7
|
+
* `PostgresDialect` and reuses the `pg` driver, query building, escaping and
|
|
8
|
+
* transaction handling. Only the genuinely Vertica-specific differences are
|
|
9
|
+
* overridden here:
|
|
10
|
+
*
|
|
11
|
+
* - Default port is 5433 (not Postgres's 5432).
|
|
12
|
+
* - CREATE TABLE supports Vertica's columnar/MPP physical-design clauses:
|
|
13
|
+
* * `ORDER BY col, ...` — sort order of the column store.
|
|
14
|
+
* * `SEGMENTED BY HASH(cols) ALL NODES` — hash-distribute rows across
|
|
15
|
+
* all cluster nodes, or `UNSEGMENTED ALL NODES` to replicate the whole
|
|
16
|
+
* table on every node.
|
|
17
|
+
* * `PARTITION BY expr` — data partitioning (partition pruning /
|
|
18
|
+
* fast bulk drop of partitions).
|
|
19
|
+
* These are emitted by the overridden `createTable` via the synchronous
|
|
20
|
+
* `buildCreateTableSql` helper, driven by extra `VerticaTableOptions`.
|
|
21
|
+
* - `CREATE PROJECTION` — projections are Vertica's materialized,
|
|
22
|
+
* pre-sorted/pre-segmented physical storage for a table (its equivalent of
|
|
23
|
+
* an index). `buildCreateProjectionSql`/`createProjection` build that DDL.
|
|
24
|
+
* - Type mapping differs from Postgres:
|
|
25
|
+
* * No SERIAL/BIGSERIAL — auto-increment columns use `IDENTITY`.
|
|
26
|
+
* * Large text/blob use `LONG VARCHAR` / `LONG VARBINARY`.
|
|
27
|
+
* * BOOLEAN is native.
|
|
28
|
+
* `getDataTypeSql` is overridden for these; everything else delegates to the
|
|
29
|
+
* Postgres mapping.
|
|
30
|
+
* - DML differences from Postgres:
|
|
31
|
+
* * No `ON CONFLICT` — upserts are expressed with `MERGE INTO ... USING ...
|
|
32
|
+
* WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ...`.
|
|
33
|
+
* `buildUpsertQuery` and `buildInsertQuery({ upsert: true })` both emit
|
|
34
|
+
* Vertica MERGE instead of the Postgres `INSERT ... ON CONFLICT`.
|
|
35
|
+
* * No `RETURNING` clause on INSERT/UPDATE/DELETE. The Postgres builders
|
|
36
|
+
* append `RETURNING` when asked; the Vertica overrides strip it (Vertica
|
|
37
|
+
* cannot return affected rows inline — read them back with a follow-up
|
|
38
|
+
* SELECT).
|
|
39
|
+
* * `addColumn` uses `IDENTITY` (not SERIAL) for auto-increment columns.
|
|
40
|
+
*
|
|
41
|
+
* Constraint enforcement note: Vertica only *enforces* PRIMARY KEY / UNIQUE /
|
|
42
|
+
* FOREIGN KEY / NOT NULL / CHECK constraints during `COPY`/`ANALYZE_CONSTRAINTS`
|
|
43
|
+
* (or when `ENABLE` is set) — they are otherwise advisory metadata used by the
|
|
44
|
+
* optimizer. Constraint DDL is still emitted (same syntax as Postgres) but a
|
|
45
|
+
* duplicate/violating row is not rejected at INSERT time by default.
|
|
46
|
+
*/
|
|
47
|
+
import { PostgresDialect, PostgresDialectOptions } from '../postgres/index';
|
|
48
|
+
import { ColumnDefinition, TableOptions, InsertOptions, UpdateOptions, DeleteOptions, UpsertQueryOptions } from '../dialect';
|
|
49
|
+
import { DataType } from '../../types';
|
|
50
|
+
/**
|
|
51
|
+
* Vertica-specific CREATE TABLE physical-design options, layered on top of the
|
|
52
|
+
* shared `TableOptions`. Not part of the shared type (every dialect uses that),
|
|
53
|
+
* so callers targeting Vertica pass these via this extended type.
|
|
54
|
+
*/
|
|
55
|
+
export interface VerticaTableOptions extends TableOptions {
|
|
56
|
+
/** `ORDER BY col, ...` — column-store sort order. */
|
|
57
|
+
orderBy?: string | string[];
|
|
58
|
+
/**
|
|
59
|
+
* `SEGMENTED BY HASH(cols) ALL NODES` — hash-distribute rows across all
|
|
60
|
+
* nodes. Provide the column(s) to hash on. Mutually exclusive with
|
|
61
|
+
* `unsegmented`.
|
|
62
|
+
*/
|
|
63
|
+
segmentedBy?: string | string[];
|
|
64
|
+
/**
|
|
65
|
+
* `UNSEGMENTED ALL NODES` — replicate the full table on every node instead
|
|
66
|
+
* of segmenting it. When true, takes precedence over `segmentedBy`.
|
|
67
|
+
*/
|
|
68
|
+
unsegmented?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* `PARTITION BY expr` — Vertica partitioning expression (e.g.
|
|
71
|
+
* `date_trunc('month', event_time)` or a bare column). Overrides the
|
|
72
|
+
* Postgres-style `partitionBy` handling.
|
|
73
|
+
*/
|
|
74
|
+
partitionByExpression?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Options for building a Vertica `CREATE PROJECTION`.
|
|
78
|
+
*/
|
|
79
|
+
export interface VerticaProjectionOptions {
|
|
80
|
+
/** Name of the projection to create. */
|
|
81
|
+
name: string;
|
|
82
|
+
/** Source table the projection is built from. */
|
|
83
|
+
table: string;
|
|
84
|
+
/** Explicit projection column list. Defaults to `*` (all columns) when omitted. */
|
|
85
|
+
columns?: string[];
|
|
86
|
+
/** `ORDER BY col, ...` sort order for the projection. */
|
|
87
|
+
orderBy?: string | string[];
|
|
88
|
+
/** `SEGMENTED BY HASH(cols) ALL NODES` distribution columns. */
|
|
89
|
+
segmentedBy?: string | string[];
|
|
90
|
+
/** `UNSEGMENTED ALL NODES` — replicate the projection on every node. */
|
|
91
|
+
unsegmented?: boolean;
|
|
92
|
+
/** Emit `CREATE PROJECTION IF NOT EXISTS`. */
|
|
93
|
+
ifNotExists?: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Options for Vertica's native bulk-load `COPY ... FROM` (distinct from the
|
|
97
|
+
* inherited Postgres `copyFrom`, which drives `COPY ... FROM STDIN` over the
|
|
98
|
+
* pg protocol). Vertica's `COPY` can read a server-side path, a client-side
|
|
99
|
+
* `LOCAL` path, or S3/HDFS URIs, and exposes rich parser/error-handling
|
|
100
|
+
* clauses that have no Postgres equivalent.
|
|
101
|
+
*/
|
|
102
|
+
export interface VerticaCopyOptions {
|
|
103
|
+
/** Restrict the load to these target columns, in order. */
|
|
104
|
+
columns?: string[];
|
|
105
|
+
/**
|
|
106
|
+
* Read the file from the *client* (`COPY ... FROM LOCAL '...'`) instead of a
|
|
107
|
+
* path on the Vertica node. Ignored when `source` is an S3/HDFS/other URI.
|
|
108
|
+
*/
|
|
109
|
+
local?: boolean;
|
|
110
|
+
/** Field delimiter (`DELIMITER 'x'`). Defaults to Vertica's own default (`|`) when omitted. */
|
|
111
|
+
delimiter?: string;
|
|
112
|
+
/** Quote/enclosure character (`ENCLOSED BY 'x'`). */
|
|
113
|
+
enclosedBy?: string;
|
|
114
|
+
/** String that represents SQL NULL in the input (`NULL 'x'`). */
|
|
115
|
+
nullAs?: string;
|
|
116
|
+
/** Header/leading rows to skip (`SKIP n`). */
|
|
117
|
+
skip?: number;
|
|
118
|
+
/** Record terminator (`RECORD TERMINATOR 'x'`). */
|
|
119
|
+
recordTerminator?: string;
|
|
120
|
+
/** Named parser, e.g. `'fcsvparser'`, `'fjsonparser'`, `'orc'`, `'parquet'` (`PARSER name()`). */
|
|
121
|
+
parser?: string;
|
|
122
|
+
/** Abort the whole load on the first rejected row (`ABORT ON ERROR`). */
|
|
123
|
+
abortOnError?: boolean;
|
|
124
|
+
/** Tolerate up to this many rejected rows before failing (`REJECTMAX n`). */
|
|
125
|
+
rejectMax?: number;
|
|
126
|
+
/** Route rejected rows to this table (`REJECTED DATA AS TABLE "name"`). */
|
|
127
|
+
rejectedDataTable?: string;
|
|
128
|
+
/** Character-set encoding of the source data (e.g. `'UTF-8'`). */
|
|
129
|
+
encoding?: string;
|
|
130
|
+
/** Additional raw COPY clauses appended verbatim (escape hatch). */
|
|
131
|
+
extra?: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Options for dropping a Vertica projection.
|
|
135
|
+
*/
|
|
136
|
+
export interface VerticaDropProjectionOptions {
|
|
137
|
+
/** Emit `DROP PROJECTION IF EXISTS`. */
|
|
138
|
+
ifExists?: boolean;
|
|
139
|
+
/** Emit `... CASCADE` to drop dependent objects. */
|
|
140
|
+
cascade?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Vertica dialect class. Extends the PostgreSQL dialect (same pg wire) and
|
|
144
|
+
* overrides only the Vertica-specific type mapping and CREATE TABLE / CREATE
|
|
145
|
+
* PROJECTION DDL.
|
|
146
|
+
*/
|
|
147
|
+
export declare class VerticaDialect extends PostgresDialect {
|
|
148
|
+
readonly name = "vertica";
|
|
149
|
+
constructor(config?: VerticaDialectOptions);
|
|
150
|
+
/**
|
|
151
|
+
* Normalize a `string | string[]` column list into a comma-separated,
|
|
152
|
+
* quoted identifier list.
|
|
153
|
+
*/
|
|
154
|
+
private columnList;
|
|
155
|
+
/**
|
|
156
|
+
* Build the Vertica physical-design tail clauses (`ORDER BY`,
|
|
157
|
+
* `SEGMENTED BY`/`UNSEGMENTED`, `PARTITION BY`) shared by tables and
|
|
158
|
+
* projections. Returns a leading-space-prefixed fragment (possibly empty).
|
|
159
|
+
*/
|
|
160
|
+
private buildPhysicalDesignClauses;
|
|
161
|
+
/**
|
|
162
|
+
* Build a single column definition for a Vertica CREATE TABLE. Handles
|
|
163
|
+
* IDENTITY auto-increment (Vertica has no SERIAL) and otherwise mirrors the
|
|
164
|
+
* common column clauses (NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE, REFERENCES).
|
|
165
|
+
*/
|
|
166
|
+
private buildColumnSql;
|
|
167
|
+
/**
|
|
168
|
+
* Synchronously build the Vertica `CREATE TABLE ...` statement, including the
|
|
169
|
+
* columnar/MPP `ORDER BY`, `SEGMENTED BY HASH(...) ALL NODES` /
|
|
170
|
+
* `UNSEGMENTED ALL NODES`, and `PARTITION BY` clauses. Exposed as a pure
|
|
171
|
+
* string builder so it can be unit-tested without a live connection.
|
|
172
|
+
*/
|
|
173
|
+
buildCreateTableSql(tableName: string, columns: Record<string, ColumnDefinition>, options?: VerticaTableOptions): string;
|
|
174
|
+
/**
|
|
175
|
+
* Create a table on Vertica, emitting the columnar/MPP physical-design
|
|
176
|
+
* clauses. Overrides the Postgres implementation because Vertica's CREATE
|
|
177
|
+
* TABLE tail differs (ORDER BY / SEGMENTED BY / PARTITION BY) and it has no
|
|
178
|
+
* SERIAL columns.
|
|
179
|
+
*/
|
|
180
|
+
createTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: VerticaTableOptions): Promise<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Synchronously build a Vertica `CREATE PROJECTION ...` statement. A
|
|
183
|
+
* projection is Vertica's materialized, pre-sorted/pre-segmented physical
|
|
184
|
+
* copy of a table's data (its "index" equivalent).
|
|
185
|
+
*/
|
|
186
|
+
buildCreateProjectionSql(options: VerticaProjectionOptions): string;
|
|
187
|
+
/**
|
|
188
|
+
* Create a Vertica projection (materialized columnar storage for a table).
|
|
189
|
+
*/
|
|
190
|
+
createProjection(options: VerticaProjectionOptions): Promise<void>;
|
|
191
|
+
/**
|
|
192
|
+
* Build an INSERT for Vertica.
|
|
193
|
+
*
|
|
194
|
+
* Two differences from the Postgres base:
|
|
195
|
+
* - `upsert: true` routes to a Vertica `MERGE` (Postgres would emit the
|
|
196
|
+
* unsupported `INSERT ... ON CONFLICT`).
|
|
197
|
+
* - `returning` is stripped — Vertica does not support `RETURNING`.
|
|
198
|
+
*/
|
|
199
|
+
buildInsertQuery(tableName: string, values: Record<string, any>, options?: InsertOptions): {
|
|
200
|
+
sql: string;
|
|
201
|
+
values: any[];
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Build an upsert for Vertica as a `MERGE INTO ... USING (SELECT ...) ...`
|
|
205
|
+
* statement. Vertica has no `INSERT ... ON CONFLICT`.
|
|
206
|
+
*
|
|
207
|
+
* The inserted row is materialized as a single-row source relation
|
|
208
|
+
* (`SELECT $1 AS col1, $2 AS col2`), joined to the target on `conflictFields`.
|
|
209
|
+
* Matching rows get `UPDATE SET` for the non-key columns (or the explicit
|
|
210
|
+
* `updateOnDuplicate` list); non-matching rows are inserted. `RETURNING` is
|
|
211
|
+
* not supported and is ignored.
|
|
212
|
+
*/
|
|
213
|
+
buildUpsertQuery(tableName: string, values: Record<string, any>, options?: UpsertQueryOptions): {
|
|
214
|
+
sql: string;
|
|
215
|
+
values: any[];
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Build an UPDATE for Vertica. Same as Postgres but `RETURNING` is stripped.
|
|
219
|
+
*/
|
|
220
|
+
buildUpdateQuery(tableName: string, values: Record<string, any>, where: any, options?: UpdateOptions): {
|
|
221
|
+
sql: string;
|
|
222
|
+
values: any[];
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* Build a DELETE for Vertica. Same as Postgres but `RETURNING` is stripped.
|
|
226
|
+
*/
|
|
227
|
+
buildDeleteQuery(tableName: string, where: any, options?: DeleteOptions): {
|
|
228
|
+
sql: string;
|
|
229
|
+
values: any[];
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Return a shallow copy of the given DML options with any `returning`
|
|
233
|
+
* request removed. Vertica does not support the `RETURNING` clause, so the
|
|
234
|
+
* inherited Postgres builders must not emit it.
|
|
235
|
+
*/
|
|
236
|
+
private stripReturning;
|
|
237
|
+
/**
|
|
238
|
+
* Add a column on Vertica. Overrides the Postgres implementation so that
|
|
239
|
+
* auto-increment columns use `IDENTITY` (Vertica has no SERIAL) and the
|
|
240
|
+
* Vertica column-definition builder is used.
|
|
241
|
+
*/
|
|
242
|
+
addColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* Vertica type mapping. Differs from Postgres in three ways:
|
|
245
|
+
* - auto-increment integers use `IDENTITY` (no SERIAL/BIGSERIAL);
|
|
246
|
+
* - large text/blob map to `LONG VARCHAR` / `LONG VARBINARY`;
|
|
247
|
+
* - BOOLEAN is native.
|
|
248
|
+
* Everything else delegates to the Postgres mapping.
|
|
249
|
+
*/
|
|
250
|
+
getDataTypeSql(dataType: DataType): string;
|
|
251
|
+
/**
|
|
252
|
+
* Synchronously build a Vertica `DROP PROJECTION ...` statement.
|
|
253
|
+
*/
|
|
254
|
+
buildDropProjectionSql(name: string, options?: VerticaDropProjectionOptions): string;
|
|
255
|
+
/**
|
|
256
|
+
* Drop a Vertica projection.
|
|
257
|
+
*/
|
|
258
|
+
dropProjection(name: string, options?: VerticaDropProjectionOptions): Promise<void>;
|
|
259
|
+
/**
|
|
260
|
+
* Refresh projections. Vertica loads new/updated data into a projection's
|
|
261
|
+
* physical storage via the `REFRESH()` meta-function; with no argument it
|
|
262
|
+
* refreshes every out-of-date projection in the schema, or pass one or more
|
|
263
|
+
* table names to refresh only those tables' projections.
|
|
264
|
+
*
|
|
265
|
+
* Builds: `SELECT REFRESH('t1, t2')` (or `SELECT REFRESH()` when no tables
|
|
266
|
+
* are given).
|
|
267
|
+
*/
|
|
268
|
+
refreshProjections(tables?: string | string[]): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Drop all partitions of `tableName` whose partition-expression value falls
|
|
271
|
+
* in the inclusive `[minRange, maxRange]` range, via Vertica's
|
|
272
|
+
* `DROP_PARTITIONS('table', min, max)` meta-function. This is Vertica's fast
|
|
273
|
+
* bulk-delete mechanism (it drops the underlying ROS containers rather than
|
|
274
|
+
* deleting rows one by one).
|
|
275
|
+
*/
|
|
276
|
+
dropPartitions(tableName: string, minRange: string | number, maxRange: string | number, options?: {
|
|
277
|
+
enforceStorageMove?: boolean;
|
|
278
|
+
}): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Swap the partitions in the inclusive `[minRange, maxRange]` value range
|
|
281
|
+
* between two tables, via Vertica's `SWAP_PARTITIONS_BETWEEN_TABLES`. Useful
|
|
282
|
+
* for atomic "publish" of a freshly-loaded staging partition into a live
|
|
283
|
+
* table.
|
|
284
|
+
*/
|
|
285
|
+
swapPartitions(sourceTable: string, minRange: string | number, maxRange: string | number, destTable: string, options?: {
|
|
286
|
+
forceSplit?: boolean;
|
|
287
|
+
}): Promise<void>;
|
|
288
|
+
/**
|
|
289
|
+
* Collect optimizer statistics for a table (optionally a subset of columns)
|
|
290
|
+
* via Vertica's `ANALYZE_STATISTICS('table'[, 'col1,col2'])` meta-function.
|
|
291
|
+
*/
|
|
292
|
+
analyzeStatistics(tableName: string, columns?: string | string[]): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* Synchronously build a Vertica `COPY <table> [(cols)] FROM ['LOCAL'] '<src>'
|
|
295
|
+
* ...` statement with parser and error-handling clauses. Exposed as a pure
|
|
296
|
+
* string builder so it can be unit-tested without a live connection.
|
|
297
|
+
*
|
|
298
|
+
* `source` is a server-side path (default), a client path when
|
|
299
|
+
* `options.local` is set, or an `s3://`/`hdfs://`/`webhdfs://` URI (in which
|
|
300
|
+
* case `LOCAL` is not emitted even if requested — remote URIs are read by the
|
|
301
|
+
* server).
|
|
302
|
+
*/
|
|
303
|
+
buildCopyFromSql(tableName: string, source: string, options?: VerticaCopyOptions): string;
|
|
304
|
+
/**
|
|
305
|
+
* Bulk-load data into a Vertica table from a file/path/URI using Vertica's
|
|
306
|
+
* native `COPY` command. This is the Vertica-specific counterpart to the
|
|
307
|
+
* inherited Postgres `copyFrom` (which streams `COPY ... FROM STDIN`).
|
|
308
|
+
*/
|
|
309
|
+
copyFromFile(tableName: string, source: string, options?: VerticaCopyOptions): Promise<import('../../types').QueryResult>;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Vertica dialect options. Structurally identical to the Postgres options
|
|
313
|
+
* (same pg driver); the default port differs (5433).
|
|
314
|
+
*/
|
|
315
|
+
export interface VerticaDialectOptions extends PostgresDialectOptions {
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Create a new Vertica dialect instance
|
|
319
|
+
*/
|
|
320
|
+
export declare function createVerticaDialect(options?: VerticaDialectOptions): VerticaDialect;
|
|
321
|
+
export default VerticaDialect;
|
|
@@ -306,6 +306,167 @@ class VerticaDialect extends index_1.PostgresDialect {
|
|
|
306
306
|
}
|
|
307
307
|
return super.getDataTypeSql(dataType);
|
|
308
308
|
}
|
|
309
|
+
// ---------------------------------------------------------------------------
|
|
310
|
+
// Projection lifecycle (createProjection is above).
|
|
311
|
+
//
|
|
312
|
+
// A projection is Vertica's materialized, pre-sorted/pre-segmented physical
|
|
313
|
+
// storage for a table (its "index" equivalent). Beyond creating them, callers
|
|
314
|
+
// need to drop and refresh projections without dropping to raw SQL.
|
|
315
|
+
// ---------------------------------------------------------------------------
|
|
316
|
+
/**
|
|
317
|
+
* Synchronously build a Vertica `DROP PROJECTION ...` statement.
|
|
318
|
+
*/
|
|
319
|
+
buildDropProjectionSql(name, options) {
|
|
320
|
+
let sql = 'DROP PROJECTION';
|
|
321
|
+
if (options?.ifExists) {
|
|
322
|
+
sql += ' IF EXISTS';
|
|
323
|
+
}
|
|
324
|
+
sql += ` ${this.escapeId(name)}`;
|
|
325
|
+
if (options?.cascade) {
|
|
326
|
+
sql += ' CASCADE';
|
|
327
|
+
}
|
|
328
|
+
return sql;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Drop a Vertica projection.
|
|
332
|
+
*/
|
|
333
|
+
async dropProjection(name, options) {
|
|
334
|
+
await this.query(this.buildDropProjectionSql(name, options));
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Refresh projections. Vertica loads new/updated data into a projection's
|
|
338
|
+
* physical storage via the `REFRESH()` meta-function; with no argument it
|
|
339
|
+
* refreshes every out-of-date projection in the schema, or pass one or more
|
|
340
|
+
* table names to refresh only those tables' projections.
|
|
341
|
+
*
|
|
342
|
+
* Builds: `SELECT REFRESH('t1, t2')` (or `SELECT REFRESH()` when no tables
|
|
343
|
+
* are given).
|
|
344
|
+
*/
|
|
345
|
+
async refreshProjections(tables) {
|
|
346
|
+
const list = tables === undefined ? [] : Array.isArray(tables) ? tables : [tables];
|
|
347
|
+
const arg = list.length > 0 ? this.escape(list.join(', ')) : '';
|
|
348
|
+
await this.query(`SELECT REFRESH(${arg})`);
|
|
349
|
+
}
|
|
350
|
+
// ---------------------------------------------------------------------------
|
|
351
|
+
// Partition maintenance.
|
|
352
|
+
//
|
|
353
|
+
// Unlike Postgres/Greenplum (ALTER TABLE ... DROP PARTITION), Vertica manages
|
|
354
|
+
// partitions through meta-functions keyed on the partition-expression value
|
|
355
|
+
// range, so these are function calls rather than DDL.
|
|
356
|
+
// ---------------------------------------------------------------------------
|
|
357
|
+
/**
|
|
358
|
+
* Drop all partitions of `tableName` whose partition-expression value falls
|
|
359
|
+
* in the inclusive `[minRange, maxRange]` range, via Vertica's
|
|
360
|
+
* `DROP_PARTITIONS('table', min, max)` meta-function. This is Vertica's fast
|
|
361
|
+
* bulk-delete mechanism (it drops the underlying ROS containers rather than
|
|
362
|
+
* deleting rows one by one).
|
|
363
|
+
*/
|
|
364
|
+
async dropPartitions(tableName, minRange, maxRange, options) {
|
|
365
|
+
const args = [this.escape(tableName), this.escape(minRange), this.escape(maxRange)];
|
|
366
|
+
if (options?.enforceStorageMove !== undefined) {
|
|
367
|
+
args.push(options.enforceStorageMove ? 'true' : 'false');
|
|
368
|
+
}
|
|
369
|
+
await this.query(`SELECT DROP_PARTITIONS(${args.join(', ')})`);
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Swap the partitions in the inclusive `[minRange, maxRange]` value range
|
|
373
|
+
* between two tables, via Vertica's `SWAP_PARTITIONS_BETWEEN_TABLES`. Useful
|
|
374
|
+
* for atomic "publish" of a freshly-loaded staging partition into a live
|
|
375
|
+
* table.
|
|
376
|
+
*/
|
|
377
|
+
async swapPartitions(sourceTable, minRange, maxRange, destTable, options) {
|
|
378
|
+
const args = [
|
|
379
|
+
this.escape(sourceTable),
|
|
380
|
+
this.escape(minRange),
|
|
381
|
+
this.escape(maxRange),
|
|
382
|
+
this.escape(destTable),
|
|
383
|
+
];
|
|
384
|
+
if (options?.forceSplit !== undefined) {
|
|
385
|
+
args.push(options.forceSplit ? 'true' : 'false');
|
|
386
|
+
}
|
|
387
|
+
await this.query(`SELECT SWAP_PARTITIONS_BETWEEN_TABLES(${args.join(', ')})`);
|
|
388
|
+
}
|
|
389
|
+
// ---------------------------------------------------------------------------
|
|
390
|
+
// Statistics — Vertica's optimizer relies on explicitly-collected stats
|
|
391
|
+
// (no background autoanalyze like Postgres). ANALYZE_STATISTICS is a
|
|
392
|
+
// meta-function, not the Postgres `ANALYZE` statement.
|
|
393
|
+
// ---------------------------------------------------------------------------
|
|
394
|
+
/**
|
|
395
|
+
* Collect optimizer statistics for a table (optionally a subset of columns)
|
|
396
|
+
* via Vertica's `ANALYZE_STATISTICS('table'[, 'col1,col2'])` meta-function.
|
|
397
|
+
*/
|
|
398
|
+
async analyzeStatistics(tableName, columns) {
|
|
399
|
+
const args = [this.escape(tableName)];
|
|
400
|
+
if (columns !== undefined) {
|
|
401
|
+
const cols = Array.isArray(columns) ? columns.join(', ') : columns;
|
|
402
|
+
args.push(this.escape(cols));
|
|
403
|
+
}
|
|
404
|
+
await this.query(`SELECT ANALYZE_STATISTICS(${args.join(', ')})`);
|
|
405
|
+
}
|
|
406
|
+
// ---------------------------------------------------------------------------
|
|
407
|
+
// Bulk load — Vertica native COPY (server path / LOCAL client path / S3/HDFS
|
|
408
|
+
// URI), distinct from the inherited Postgres `copyFrom` (COPY ... FROM STDIN).
|
|
409
|
+
// ---------------------------------------------------------------------------
|
|
410
|
+
/**
|
|
411
|
+
* Synchronously build a Vertica `COPY <table> [(cols)] FROM ['LOCAL'] '<src>'
|
|
412
|
+
* ...` statement with parser and error-handling clauses. Exposed as a pure
|
|
413
|
+
* string builder so it can be unit-tested without a live connection.
|
|
414
|
+
*
|
|
415
|
+
* `source` is a server-side path (default), a client path when
|
|
416
|
+
* `options.local` is set, or an `s3://`/`hdfs://`/`webhdfs://` URI (in which
|
|
417
|
+
* case `LOCAL` is not emitted even if requested — remote URIs are read by the
|
|
418
|
+
* server).
|
|
419
|
+
*/
|
|
420
|
+
buildCopyFromSql(tableName, source, options) {
|
|
421
|
+
const colsSql = options?.columns && options.columns.length > 0
|
|
422
|
+
? ` (${options.columns.map((c) => this.escapeId(c)).join(', ')})`
|
|
423
|
+
: '';
|
|
424
|
+
const isUri = /^[a-z0-9]+:\/\//i.test(source);
|
|
425
|
+
const localKeyword = options?.local && !isUri ? 'LOCAL ' : '';
|
|
426
|
+
let sql = `COPY ${this.quoteTable(tableName)}${colsSql} FROM ${localKeyword}${this.escape(source)}`;
|
|
427
|
+
if (options?.delimiter !== undefined) {
|
|
428
|
+
sql += ` DELIMITER ${this.escape(options.delimiter)}`;
|
|
429
|
+
}
|
|
430
|
+
if (options?.enclosedBy !== undefined) {
|
|
431
|
+
sql += ` ENCLOSED BY ${this.escape(options.enclosedBy)}`;
|
|
432
|
+
}
|
|
433
|
+
if (options?.nullAs !== undefined) {
|
|
434
|
+
sql += ` NULL ${this.escape(options.nullAs)}`;
|
|
435
|
+
}
|
|
436
|
+
if (options?.recordTerminator !== undefined) {
|
|
437
|
+
sql += ` RECORD TERMINATOR ${this.escape(options.recordTerminator)}`;
|
|
438
|
+
}
|
|
439
|
+
if (options?.skip !== undefined) {
|
|
440
|
+
sql += ` SKIP ${Number(options.skip)}`;
|
|
441
|
+
}
|
|
442
|
+
if (options?.encoding !== undefined) {
|
|
443
|
+
sql += ` ENCODING ${this.escape(options.encoding)}`;
|
|
444
|
+
}
|
|
445
|
+
if (options?.parser !== undefined) {
|
|
446
|
+
sql += ` PARSER ${options.parser}()`;
|
|
447
|
+
}
|
|
448
|
+
if (options?.rejectedDataTable !== undefined) {
|
|
449
|
+
sql += ` REJECTED DATA AS TABLE ${this.escapeId(options.rejectedDataTable)}`;
|
|
450
|
+
}
|
|
451
|
+
if (options?.rejectMax !== undefined) {
|
|
452
|
+
sql += ` REJECTMAX ${Number(options.rejectMax)}`;
|
|
453
|
+
}
|
|
454
|
+
if (options?.abortOnError) {
|
|
455
|
+
sql += ' ABORT ON ERROR';
|
|
456
|
+
}
|
|
457
|
+
if (options?.extra) {
|
|
458
|
+
sql += ` ${options.extra}`;
|
|
459
|
+
}
|
|
460
|
+
return sql;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Bulk-load data into a Vertica table from a file/path/URI using Vertica's
|
|
464
|
+
* native `COPY` command. This is the Vertica-specific counterpart to the
|
|
465
|
+
* inherited Postgres `copyFrom` (which streams `COPY ... FROM STDIN`).
|
|
466
|
+
*/
|
|
467
|
+
async copyFromFile(tableName, source, options) {
|
|
468
|
+
return this.query(this.buildCopyFromSql(tableName, source, options));
|
|
469
|
+
}
|
|
309
470
|
}
|
|
310
471
|
exports.VerticaDialect = VerticaDialect;
|
|
311
472
|
/**
|