ts-prorm-orm 1.1.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 +1111 -0
- package/LICENSE +21 -0
- package/README.md +573 -0
- package/dist/audit/history-query.js +180 -0
- package/dist/audit/index.js +23 -0
- package/dist/audit/logger.js +236 -0
- package/dist/cache/cache-manager.js +84 -0
- package/dist/cache/index.js +16 -0
- package/dist/cache/redis-cluster-cache.js +557 -0
- package/dist/cli.js +2200 -0
- package/dist/compliance/audit-trail.js +68 -0
- package/dist/compliance/backup-verification.js +685 -0
- package/dist/compliance/breach-detector.js +505 -0
- package/dist/compliance/consent-record.js +227 -0
- package/dist/compliance/consent-versioning.js +331 -0
- package/dist/compliance/cross-border-log.js +530 -0
- package/dist/compliance/data-classifier.js +258 -0
- package/dist/compliance/data-lineage.js +565 -0
- package/dist/compliance/data-masker.js +303 -0
- package/dist/compliance/data-portability.js +265 -0
- package/dist/compliance/data-retention.js +195 -0
- package/dist/compliance/dsar-workflow.js +342 -0
- package/dist/compliance/field-encryption.js +223 -0
- package/dist/compliance/immutable-record.js +148 -0
- package/dist/compliance/index.js +260 -0
- package/dist/compliance/privacy-impact-assessment.js +364 -0
- package/dist/compliance/pseudonymization.js +269 -0
- package/dist/compliance/query-firewall.js +1182 -0
- package/dist/compliance/rate-limiter.js +580 -0
- package/dist/compliance/right-to-erasure.js +117 -0
- package/dist/compliance/row-level-security.js +246 -0
- package/dist/compliance/security-decorator.js +574 -0
- package/dist/compliance/security-monitor.js +525 -0
- package/dist/compliance/sensitive-data-discovery.js +476 -0
- package/dist/compliance/session-isolation.js +472 -0
- package/dist/compliance/tls-enforcer.js +108 -0
- package/dist/compliance/worm-storage.js +712 -0
- package/dist/connection-manager.js +198 -0
- package/dist/connection-pool.js +519 -0
- package/dist/decorators/audit.js +136 -0
- package/dist/decorators/belongs-to-many.js +115 -0
- package/dist/decorators/belongs-to.js +115 -0
- package/dist/decorators/check.js +435 -0
- package/dist/decorators/collate.js +329 -0
- package/dist/decorators/comment.js +205 -0
- package/dist/decorators/database-settings.js +236 -0
- package/dist/decorators/default.js +244 -0
- package/dist/decorators/encryption.js +235 -0
- package/dist/decorators/engine.js +97 -0
- package/dist/decorators/fk-constraints.js +594 -0
- package/dist/decorators/foreign-table.js +136 -0
- package/dist/decorators/generated.js +274 -0
- package/dist/decorators/has-many.js +127 -0
- package/dist/decorators/has-one.js +116 -0
- package/dist/decorators/hstore.js +129 -0
- package/dist/decorators/index.js +355 -0
- package/dist/decorators/json-column.js +83 -0
- package/dist/decorators/jsonb.js +101 -0
- package/dist/decorators/orm-decorators.js +425 -0
- package/dist/decorators/permissions.js +294 -0
- package/dist/decorators/procedure.js +210 -0
- package/dist/decorators/query-options.js +556 -0
- package/dist/decorators/range.js +167 -0
- package/dist/decorators/set-column.js +83 -0
- package/dist/decorators/spatial.js +114 -0
- package/dist/decorators/storage.js +580 -0
- package/dist/decorators/timezone.js +512 -0
- package/dist/decorators/trigger.js +90 -0
- package/dist/decorators/uuid.js +135 -0
- package/dist/decorators/view.js +258 -0
- package/dist/diagrams/chen-diagram.js +354 -0
- package/dist/diagrams/class-diagram.js +384 -0
- package/dist/diagrams/dependency-diagram.js +432 -0
- package/dist/diagrams/er-diagram.js +605 -0
- package/dist/diagrams/flow-diagram.js +394 -0
- package/dist/diagrams/gantt-diagram.js +411 -0
- package/dist/diagrams/index-diagram.js +353 -0
- package/dist/diagrams/index.js +184 -0
- package/dist/diagrams/migration-diagram.js +316 -0
- package/dist/diagrams/model-diagram.js +616 -0
- package/dist/diagrams/package-diagram.js +376 -0
- package/dist/diagrams/palette.js +85 -0
- package/dist/diagrams/relational-diagram.js +455 -0
- package/dist/diagrams/schemadoc-diagram.js +309 -0
- package/dist/diagrams/sequence-diagram.js +307 -0
- package/dist/diagrams/state-diagram.js +344 -0
- package/dist/diagrams/svg-dom.js +111 -0
- package/dist/diagrams/tree-diagram.js +250 -0
- package/dist/dialects/clickhouse/index.js +1742 -0
- package/dist/dialects/cockroachdb/index.js +4677 -0
- package/dist/dialects/cratedb/index.js +441 -0
- package/dist/dialects/databricks/index.js +517 -0
- package/dist/dialects/db2/index.js +2225 -0
- package/dist/dialects/dialect.js +720 -0
- package/dist/dialects/duckdb/index.js +2014 -0
- package/dist/dialects/exasol/index.js +357 -0
- package/dist/dialects/firebird/index.js +495 -0
- package/dist/dialects/greenplum/index.js +457 -0
- package/dist/dialects/hana/index.js +1741 -0
- package/dist/dialects/mariadb/index.js +3590 -0
- package/dist/dialects/mssql/index.js +2296 -0
- package/dist/dialects/mysql/index.js +4058 -0
- package/dist/dialects/oracle/index.js +2999 -0
- package/dist/dialects/postgres/index.js +5319 -0
- package/dist/dialects/query-stream-helper.js +152 -0
- package/dist/dialects/questdb/index.js +433 -0
- package/dist/dialects/redshift/index.js +2277 -0
- package/dist/dialects/singlestore/index.js +354 -0
- package/dist/dialects/snowflake/index.js +2082 -0
- package/dist/dialects/spanner/index.js +1768 -0
- package/dist/dialects/sqlite/index.js +3382 -0
- package/dist/dialects/tidb/index.js +377 -0
- package/dist/dialects/timescaledb/index.js +164 -0
- package/dist/dialects/trino/index.js +420 -0
- package/dist/dialects/turso/index.js +227 -0
- package/dist/dialects/vertica/index.js +317 -0
- package/dist/dialects/yugabytedb/index.js +424 -0
- package/dist/errors/index.js +472 -0
- package/dist/errors/utils.js +340 -0
- package/dist/errors.js +21 -0
- package/dist/extensions/catalog/cloud-warehouse-features.js +207 -0
- package/dist/extensions/catalog/mssql-features.js +147 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.js +229 -0
- package/dist/extensions/catalog/oracle-db2-features.js +196 -0
- package/dist/extensions/catalog/postgres-extensions.js +516 -0
- package/dist/extensions/index.js +71 -0
- package/dist/extensions/types.js +13 -0
- package/dist/foreign-data.js +173 -0
- package/dist/hooks/hooks-manager.js +350 -0
- package/dist/hooks/index.js +37 -0
- package/dist/index.js +463 -0
- package/dist/logging.js +335 -0
- package/dist/migrations/index.js +40 -0
- package/dist/migrations/migration.js +196 -0
- package/dist/migrations/migrator.js +411 -0
- package/dist/migrations/prormmigration.js +275 -0
- package/dist/migrations/query-interface.js +435 -0
- package/dist/migrations/seeder.js +353 -0
- package/dist/models/associations.js +852 -0
- package/dist/models/constraints.js +288 -0
- package/dist/models/data-types.js +2518 -0
- package/dist/models/decorators.js +445 -0
- package/dist/models/index.js +33 -0
- package/dist/models/indexes.js +531 -0
- package/dist/models/methods.js +382 -0
- package/dist/models/model-manager.js +103 -0
- package/dist/models/model.js +5349 -0
- package/dist/models/operators.js +67 -0
- package/dist/models/scopes.js +189 -0
- package/dist/models/typescript-types.js +26 -0
- package/dist/nosql/aerospike/index.js +205 -0
- package/dist/nosql/allegrograph/index.js +169 -0
- package/dist/nosql/arangodb/index.js +364 -0
- package/dist/nosql/azure-blob/index.js +206 -0
- package/dist/nosql/beanstalkd/index.js +231 -0
- package/dist/nosql/beequeue/index.js +210 -0
- package/dist/nosql/bigchaindb/index.js +195 -0
- package/dist/nosql/bigtable/index.js +224 -0
- package/dist/nosql/blazegraph/index.js +173 -0
- package/dist/nosql/bullmq/index.js +191 -0
- package/dist/nosql/cassandra/index.js +174 -0
- package/dist/nosql/chroma/index.js +190 -0
- package/dist/nosql/cloudflare-kv/index.js +220 -0
- package/dist/nosql/coherence/index.js +200 -0
- package/dist/nosql/cosmosdb/index.js +157 -0
- package/dist/nosql/couchbase/index.js +213 -0
- package/dist/nosql/dax/index.js +212 -0
- package/dist/nosql/deno-kv/index.js +206 -0
- package/dist/nosql/dgraph/index.js +171 -0
- package/dist/nosql/doris/index.js +169 -0
- package/dist/nosql/druid/index.js +162 -0
- package/dist/nosql/dynamodb/index.js +937 -0
- package/dist/nosql/elasticsearch/index.js +377 -0
- package/dist/nosql/etcd/index.js +502 -0
- package/dist/nosql/eventhubs/index.js +213 -0
- package/dist/nosql/eventstore/index.js +254 -0
- package/dist/nosql/faunadb/index.js +188 -0
- package/dist/nosql/firestore/index.js +177 -0
- package/dist/nosql/fluree/index.js +148 -0
- package/dist/nosql/fuseki/index.js +170 -0
- package/dist/nosql/gcs/index.js +172 -0
- package/dist/nosql/gearman/index.js +160 -0
- package/dist/nosql/geode/index.js +196 -0
- package/dist/nosql/graphdb/index.js +169 -0
- package/dist/nosql/graylog/index.js +188 -0
- package/dist/nosql/gridgain/index.js +171 -0
- package/dist/nosql/hazelcast/index.js +162 -0
- package/dist/nosql/hbase/index.js +230 -0
- package/dist/nosql/ignite/index.js +173 -0
- package/dist/nosql/immudb/index.js +184 -0
- package/dist/nosql/index.js +232 -0
- package/dist/nosql/infinispan/index.js +200 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.js +234 -0
- package/dist/nosql/keyspaces/index.js +189 -0
- package/dist/nosql/kinesis/index.js +253 -0
- package/dist/nosql/leveldb/index.js +153 -0
- package/dist/nosql/lmdb/index.js +160 -0
- package/dist/nosql/loki/index.js +201 -0
- package/dist/nosql/marklogic/index.js +204 -0
- package/dist/nosql/materialize/index.js +145 -0
- package/dist/nosql/meilisearch/index.js +154 -0
- package/dist/nosql/memcached/index.js +223 -0
- package/dist/nosql/milvus/index.js +410 -0
- package/dist/nosql/minio/index.js +265 -0
- package/dist/nosql/momento/index.js +179 -0
- package/dist/nosql/mongodb/index.js +461 -0
- package/dist/nosql/nats/index.js +247 -0
- package/dist/nosql/nedb/index.js +164 -0
- package/dist/nosql/neo4j/index.js +450 -0
- package/dist/nosql/neptune/index.js +470 -0
- package/dist/nosql/nsq/index.js +200 -0
- package/dist/nosql/opensearch/index.js +186 -0
- package/dist/nosql/orientdb/index.js +175 -0
- package/dist/nosql/papertrail/index.js +200 -0
- package/dist/nosql/pinecone/index.js +0 -0
- package/dist/nosql/pinot/index.js +133 -0
- package/dist/nosql/pouchdb/index.js +172 -0
- package/dist/nosql/prometheus/index.js +174 -0
- package/dist/nosql/provendb/index.js +147 -0
- package/dist/nosql/pubsub/index.js +187 -0
- package/dist/nosql/pulsar/index.js +232 -0
- package/dist/nosql/qdrant/index.js +295 -0
- package/dist/nosql/qldb/index.js +192 -0
- package/dist/nosql/r2/index.js +281 -0
- package/dist/nosql/rabbitmq/index.js +237 -0
- package/dist/nosql/ravendb/index.js +175 -0
- package/dist/nosql/redis/index.js +607 -0
- package/dist/nosql/redpanda/index.js +237 -0
- package/dist/nosql/resque/index.js +203 -0
- package/dist/nosql/rethinkdb/index.js +232 -0
- package/dist/nosql/rocksdb/index.js +152 -0
- package/dist/nosql/rockset/index.js +126 -0
- package/dist/nosql/s3/index.js +298 -0
- package/dist/nosql/scylladb/index.js +178 -0
- package/dist/nosql/signoz/index.js +227 -0
- package/dist/nosql/sns/index.js +201 -0
- package/dist/nosql/solr/index.js +231 -0
- package/dist/nosql/splunk/index.js +227 -0
- package/dist/nosql/sqs/index.js +246 -0
- package/dist/nosql/stardog/index.js +169 -0
- package/dist/nosql/starrocks/index.js +170 -0
- package/dist/nosql/store.js +2 -0
- package/dist/nosql/sumologic/index.js +213 -0
- package/dist/nosql/surrealdb/index.js +179 -0
- package/dist/nosql/terminusdb/index.js +151 -0
- package/dist/nosql/tigergraph/index.js +469 -0
- package/dist/nosql/typesense/index.js +148 -0
- package/dist/nosql/unqlite/index.js +157 -0
- package/dist/nosql/upstash/index.js +167 -0
- package/dist/nosql/vercel-kv/index.js +166 -0
- package/dist/nosql/victoriametrics/index.js +213 -0
- package/dist/nosql/virtuoso/index.js +169 -0
- package/dist/nosql/weaviate/index.js +276 -0
- package/dist/operators/index.js +108 -0
- package/dist/operators.js +2690 -0
- package/dist/prisma-migrate/index.js +38 -0
- package/dist/prisma-migrate/migration-generator.js +125 -0
- package/dist/prisma-migrate/model-generator.js +172 -0
- package/dist/prisma-migrate/relations.js +100 -0
- package/dist/prisma-migrate/schema-parser.js +167 -0
- package/dist/prisma-migrate/type-mapper.js +40 -0
- package/dist/prorm.js +6832 -0
- package/dist/query-builders/cte-builder.js +80 -0
- package/dist/query-builders/functions/aggregate.js +390 -0
- package/dist/query-builders/functions/conditional.js +503 -0
- package/dist/query-builders/functions/datetime.js +695 -0
- package/dist/query-builders/functions/fulltext.js +439 -0
- package/dist/query-builders/functions/index.js +93 -0
- package/dist/query-builders/functions/json.js +427 -0
- package/dist/query-builders/functions/math.js +399 -0
- package/dist/query-builders/functions/string.js +518 -0
- package/dist/query-builders/functions/window.js +328 -0
- package/dist/query-builders/include-builder.js +323 -0
- package/dist/query-builders/index-expression-builder.js +242 -0
- package/dist/query-builders/index.js +161 -0
- package/dist/query-builders/insert-builder.js +164 -0
- package/dist/query-builders/model-helpers.js +38 -0
- package/dist/query-builders/order-limit-builder.js +239 -0
- package/dist/query-builders/sql-compiler.js +2040 -0
- package/dist/query-builders/subquery-builder.js +152 -0
- package/dist/query-builders/update-builder.js +182 -0
- package/dist/query-builders/view-builder.js +218 -0
- package/dist/query-builders/where-builder.js +1532 -0
- package/dist/query-interface.js +622 -0
- package/dist/query-optimizers/batch-optimizer.js +426 -0
- package/dist/query-optimizers/explain-plans.js +415 -0
- package/dist/query-optimizers/index.js +51 -0
- package/dist/query-optimizers/prepared-statement-cache.js +423 -0
- package/dist/query-optimizers/query-hints.js +438 -0
- package/dist/query-optimizers/query-optimizer.js +278 -0
- package/dist/query-optimizers/slow-query-logger.js +271 -0
- package/dist/replica-manager.js +507 -0
- package/dist/schema/index.js +15 -0
- package/dist/schema/migration-generator.js +374 -0
- package/dist/schema/schema-differ.js +549 -0
- package/dist/schema/types.js +6 -0
- package/dist/sql-constants.js +300 -0
- package/dist/sqlite-advanced.js +1047 -0
- package/dist/streams/index.js +12 -0
- package/dist/streams/transforms.js +178 -0
- package/dist/transaction.js +456 -0
- package/dist/types/index.js +180 -0
- package/dist/user-management.js +127 -0
- package/dist/utils/date.js +300 -0
- package/dist/utils/index.js +1079 -0
- package/dist/utils/string.js +161 -0
- package/dist/validators/index.js +19 -0
- package/dist/validators/validator.js +911 -0
- package/package.json +190 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SQL Constants for database behavior control
|
|
4
|
+
* Provides dialect-specific SQL statements for controlling database behavior
|
|
5
|
+
* like foreign key checks, transaction isolation levels, etc.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.IsolationLevelEnum = exports.SQL = exports.CLICKHOUSE = exports.SNOWFLAKE = exports.DB2 = exports.REDSHIFT = exports.COCKROACHDB = exports.SQLITE = exports.POSTGRES = exports.MARIADB = exports.MYSQL = void 0;
|
|
9
|
+
exports.getConstantsForDialect = getConstantsForDialect;
|
|
10
|
+
/**
|
|
11
|
+
* MySQL/MariaDB SQL constants
|
|
12
|
+
*/
|
|
13
|
+
exports.MYSQL = {
|
|
14
|
+
FOREIGN_KEY_CHECKS: {
|
|
15
|
+
disable: 'SET FOREIGN_KEY_CHECKS = 0',
|
|
16
|
+
enable: 'SET FOREIGN_KEY_CHECKS = 1',
|
|
17
|
+
},
|
|
18
|
+
UNIQUE_KEY_CHECKS: {
|
|
19
|
+
disable: 'SET UNIQUE_CHECKS = 0',
|
|
20
|
+
enable: 'SET UNIQUE_CHECKS = 1',
|
|
21
|
+
},
|
|
22
|
+
ISOLATION_LEVEL: {
|
|
23
|
+
READ_UNCOMMITTED: 'SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
|
|
24
|
+
READ_COMMITTED: 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',
|
|
25
|
+
REPEATABLE_READ: 'SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ',
|
|
26
|
+
SERIALIZABLE: 'SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
27
|
+
},
|
|
28
|
+
AUTOCOMMIT: {
|
|
29
|
+
on: 'SET AUTOCOMMIT = 1',
|
|
30
|
+
off: 'SET AUTOCOMMIT = 0',
|
|
31
|
+
},
|
|
32
|
+
CACHE: {
|
|
33
|
+
on: 'SET SESSION query_cache_type = ON',
|
|
34
|
+
off: 'SET SESSION query_cache_type = OFF',
|
|
35
|
+
},
|
|
36
|
+
SQL_MODE: {
|
|
37
|
+
STRICT_TRANS_TABLES: "SET @@sql_mode = 'STRICT_TRANS_TABLES'",
|
|
38
|
+
NO_ZERO_DATE: "SET @@sql_mode = 'NO_ZERO_DATE'",
|
|
39
|
+
NO_ZERO_IN_DATE: "SET @@sql_mode = 'NO_ZERO_IN_DATE'",
|
|
40
|
+
ERROR_FOR_DIVISION_BY_ZERO: "SET @@sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO'",
|
|
41
|
+
NO_AUTO_CREATE_USER: "SET @@sql_mode = 'NO_AUTO_CREATE_USER'",
|
|
42
|
+
NO_ENGINE_SUBSTITUTION: "SET @@sql_mode = 'NO_ENGINE_SUBSTITUTION'",
|
|
43
|
+
ALL: "SET @@sql_mode = 'ALL'",
|
|
44
|
+
TRADITIONAL: "SET @@sql_mode = 'TRADITIONAL'",
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* MariaDB SQL constants (extends MySQL with additional options)
|
|
49
|
+
*/
|
|
50
|
+
exports.MARIADB = {
|
|
51
|
+
...exports.MYSQL,
|
|
52
|
+
SQL_MODE: {
|
|
53
|
+
...exports.MYSQL.SQL_MODE,
|
|
54
|
+
STRICT_TRANS_TABLES: "SET @@sql_mode = 'STRICT_TRANS_TABLES'",
|
|
55
|
+
NO_ZERO_DATE: "SET @@sql_mode = 'NO_ZERO_DATE'",
|
|
56
|
+
NO_ZERO_IN_DATE: "SET @@sql_mode = 'NO_ZERO_IN_DATE'",
|
|
57
|
+
ERROR_FOR_DIVISION_BY_ZERO: "SET @@sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO'",
|
|
58
|
+
NO_AUTO_CREATE_USER: "SET @@sql_mode = 'NO_AUTO_CREATE_USER'",
|
|
59
|
+
NO_ENGINE_SUBSTITUTION: "SET @@sql_mode = 'NO_ENGINE_SUBSTITUTION'",
|
|
60
|
+
ALL: "SET @@sql_mode = 'ALL'",
|
|
61
|
+
TRADITIONAL: "SET @@sql_mode = 'TRADITIONAL'",
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* PostgreSQL SQL constants
|
|
66
|
+
*/
|
|
67
|
+
exports.POSTGRES = {
|
|
68
|
+
ISOLATION_LEVEL: {
|
|
69
|
+
READ_UNCOMMITTED: 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
|
|
70
|
+
READ_COMMITTED: 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED',
|
|
71
|
+
REPEATABLE_READ: 'SET TRANSACTION ISOLATION LEVEL REPEATABLE READ',
|
|
72
|
+
SERIALIZABLE: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
73
|
+
},
|
|
74
|
+
CONSTRAINT_DEFERral: {
|
|
75
|
+
DEFERRED: 'SET CONSTRAINTS ALL DEFERRED',
|
|
76
|
+
IMMEDIATE: 'SET CONSTRAINTS ALL IMMEDIATE',
|
|
77
|
+
},
|
|
78
|
+
SEARCH_PATH: {
|
|
79
|
+
set: (schema) => `SET search_path TO ${schema}`,
|
|
80
|
+
reset: 'SET search_path TO DEFAULT',
|
|
81
|
+
},
|
|
82
|
+
AUTOCOMMIT: {
|
|
83
|
+
on: 'SET SESSION autocommit = ON',
|
|
84
|
+
off: 'SET SESSION autocommit = OFF',
|
|
85
|
+
},
|
|
86
|
+
CACHE: {
|
|
87
|
+
on: 'SET SESSION statement_cache_mode = ON',
|
|
88
|
+
off: 'SET SESSION statement_cache_mode = OFF',
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* SQLite SQL constants
|
|
93
|
+
*/
|
|
94
|
+
exports.SQLITE = {
|
|
95
|
+
PRAGMA: {
|
|
96
|
+
foreign_keys: {
|
|
97
|
+
on: 'PRAGMA foreign_keys = ON',
|
|
98
|
+
off: 'PRAGMA foreign_keys = OFF',
|
|
99
|
+
},
|
|
100
|
+
trusted_schema: {
|
|
101
|
+
on: 'PRAGMA trusted_schema = ON',
|
|
102
|
+
off: 'PRAGMA trusted_schema = OFF',
|
|
103
|
+
},
|
|
104
|
+
journal_mode: {
|
|
105
|
+
WAL: 'PRAGMA journal_mode = WAL',
|
|
106
|
+
DELETE: 'PRAGMA journal_mode = DELETE',
|
|
107
|
+
TRUNCATE: 'PRAGMA journal_mode = TRUNCATE',
|
|
108
|
+
PERSIST: 'PRAGMA journal_mode = PERSIST',
|
|
109
|
+
MEMORY: 'PRAGMA journal_mode = MEMORY',
|
|
110
|
+
},
|
|
111
|
+
synchronous: {
|
|
112
|
+
OFF: 'PRAGMA synchronous = OFF',
|
|
113
|
+
NORMAL: 'PRAGMA synchronous = NORMAL',
|
|
114
|
+
FULL: 'PRAGMA synchronous = FULL',
|
|
115
|
+
EXTRA: 'PRAGMA synchronous = EXTRA',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
ISOLATION_LEVEL: {
|
|
119
|
+
READ_UNCOMMITTED: 'PRAGMA read_uncommitted = 1',
|
|
120
|
+
READ_COMMITTED: 'PRAGMA read_uncommitted = 0',
|
|
121
|
+
REPEATABLE_READ: 'PRAGMA read_uncommitted = 0',
|
|
122
|
+
SERIALIZABLE: 'PRAGMA read_uncommitted = 0',
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* CockroachDB SQL constants
|
|
127
|
+
* CockroachDB is wire-compatible with PostgreSQL and shares most session-level
|
|
128
|
+
* SQL syntax, though it internally maps all isolation levels to SERIALIZABLE.
|
|
129
|
+
*/
|
|
130
|
+
exports.COCKROACHDB = {
|
|
131
|
+
ISOLATION_LEVEL: {
|
|
132
|
+
READ_UNCOMMITTED: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
133
|
+
READ_COMMITTED: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
134
|
+
REPEATABLE_READ: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
135
|
+
SERIALIZABLE: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
136
|
+
},
|
|
137
|
+
CONSTRAINT_DEFERral: {
|
|
138
|
+
DEFERRED: 'SET CONSTRAINTS ALL DEFERRED',
|
|
139
|
+
IMMEDIATE: 'SET CONSTRAINTS ALL IMMEDIATE',
|
|
140
|
+
},
|
|
141
|
+
SEARCH_PATH: {
|
|
142
|
+
set: (schema) => `SET search_path TO ${schema}`,
|
|
143
|
+
reset: 'SET search_path TO DEFAULT',
|
|
144
|
+
},
|
|
145
|
+
AUTOCOMMIT: {
|
|
146
|
+
on: 'SET SESSION autocommit = ON',
|
|
147
|
+
off: 'SET SESSION autocommit = OFF',
|
|
148
|
+
},
|
|
149
|
+
CACHE: {
|
|
150
|
+
on: 'SET SESSION statement_cache_mode = ON',
|
|
151
|
+
off: 'SET SESSION statement_cache_mode = OFF',
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Amazon Redshift SQL constants
|
|
156
|
+
* Redshift is derived from PostgreSQL 8.0.2 and only supports the
|
|
157
|
+
* SERIALIZABLE (default) and READ COMMITTED isolation levels.
|
|
158
|
+
*/
|
|
159
|
+
exports.REDSHIFT = {
|
|
160
|
+
ISOLATION_LEVEL: {
|
|
161
|
+
READ_UNCOMMITTED: 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED',
|
|
162
|
+
READ_COMMITTED: 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED',
|
|
163
|
+
REPEATABLE_READ: 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
164
|
+
SERIALIZABLE: 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE',
|
|
165
|
+
},
|
|
166
|
+
CONSTRAINT_DEFERral: {
|
|
167
|
+
DEFERRED: 'SET CONSTRAINTS ALL DEFERRED',
|
|
168
|
+
IMMEDIATE: 'SET CONSTRAINTS ALL IMMEDIATE',
|
|
169
|
+
},
|
|
170
|
+
SEARCH_PATH: {
|
|
171
|
+
set: (schema) => `SET search_path TO ${schema}`,
|
|
172
|
+
reset: 'SET search_path TO DEFAULT',
|
|
173
|
+
},
|
|
174
|
+
AUTOCOMMIT: {
|
|
175
|
+
on: 'SET SESSION autocommit = ON',
|
|
176
|
+
off: 'SET SESSION autocommit = OFF',
|
|
177
|
+
},
|
|
178
|
+
CACHE: {
|
|
179
|
+
on: 'SET SESSION statement_cache_mode = ON',
|
|
180
|
+
off: 'SET SESSION statement_cache_mode = OFF',
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* IBM Db2 SQL constants
|
|
185
|
+
* Db2 isolation levels use single-letter codes: UR (uncommitted read),
|
|
186
|
+
* CS (cursor stability), RS (read stability), RR (repeatable read).
|
|
187
|
+
*/
|
|
188
|
+
exports.DB2 = {
|
|
189
|
+
ISOLATION_LEVEL: {
|
|
190
|
+
READ_UNCOMMITTED: 'SET CURRENT ISOLATION = UR',
|
|
191
|
+
READ_COMMITTED: 'SET CURRENT ISOLATION = CS',
|
|
192
|
+
REPEATABLE_READ: 'SET CURRENT ISOLATION = RS',
|
|
193
|
+
SERIALIZABLE: 'SET CURRENT ISOLATION = RR',
|
|
194
|
+
},
|
|
195
|
+
AUTOCOMMIT: {
|
|
196
|
+
on: 'SET AUTOCOMMIT ON',
|
|
197
|
+
off: 'SET AUTOCOMMIT OFF',
|
|
198
|
+
},
|
|
199
|
+
FOREIGN_KEY_CHECKS: {
|
|
200
|
+
disable: 'SET INTEGRITY FOR <table_name> OFF',
|
|
201
|
+
enable: 'SET INTEGRITY FOR <table_name> IMMEDIATE CHECKED',
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Snowflake SQL constants
|
|
206
|
+
* Snowflake session parameters are configured via ALTER SESSION SET.
|
|
207
|
+
* Snowflake enforces READ COMMITTED semantics for all statements, so the
|
|
208
|
+
* other isolation levels map to the same session behavior.
|
|
209
|
+
*/
|
|
210
|
+
exports.SNOWFLAKE = {
|
|
211
|
+
ISOLATION_LEVEL: {
|
|
212
|
+
READ_UNCOMMITTED: 'ALTER SESSION SET TRANSACTION_DEFAULT_ISOLATION_LEVEL = READ_COMMITTED',
|
|
213
|
+
READ_COMMITTED: 'ALTER SESSION SET TRANSACTION_DEFAULT_ISOLATION_LEVEL = READ_COMMITTED',
|
|
214
|
+
REPEATABLE_READ: 'ALTER SESSION SET TRANSACTION_DEFAULT_ISOLATION_LEVEL = READ_COMMITTED',
|
|
215
|
+
SERIALIZABLE: 'ALTER SESSION SET TRANSACTION_DEFAULT_ISOLATION_LEVEL = READ_COMMITTED',
|
|
216
|
+
},
|
|
217
|
+
AUTOCOMMIT: {
|
|
218
|
+
on: 'ALTER SESSION SET AUTOCOMMIT = TRUE',
|
|
219
|
+
off: 'ALTER SESSION SET AUTOCOMMIT = FALSE',
|
|
220
|
+
},
|
|
221
|
+
CACHE: {
|
|
222
|
+
on: 'ALTER SESSION SET USE_CACHED_RESULT = TRUE',
|
|
223
|
+
off: 'ALTER SESSION SET USE_CACHED_RESULT = FALSE',
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* ClickHouse SQL constants
|
|
228
|
+
* ClickHouse transactions are experimental and scoped via session settings;
|
|
229
|
+
* isolation level is effectively fixed and controlled through the
|
|
230
|
+
* `transaction_isolation` setting where supported.
|
|
231
|
+
*/
|
|
232
|
+
exports.CLICKHOUSE = {
|
|
233
|
+
ISOLATION_LEVEL: {
|
|
234
|
+
READ_UNCOMMITTED: "SET session_transaction_isolation = 'READ UNCOMMITTED'",
|
|
235
|
+
READ_COMMITTED: "SET session_transaction_isolation = 'READ COMMITTED'",
|
|
236
|
+
REPEATABLE_READ: "SET session_transaction_isolation = 'REPEATABLE READ'",
|
|
237
|
+
SERIALIZABLE: "SET session_transaction_isolation = 'SERIALIZABLE'",
|
|
238
|
+
},
|
|
239
|
+
AUTOCOMMIT: {
|
|
240
|
+
on: 'SET implicit_transaction = 1',
|
|
241
|
+
off: 'SET implicit_transaction = 0',
|
|
242
|
+
},
|
|
243
|
+
CACHE: {
|
|
244
|
+
on: 'SET use_query_cache = 1',
|
|
245
|
+
off: 'SET use_query_cache = 0',
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* All SQL constants
|
|
250
|
+
*/
|
|
251
|
+
exports.SQL = {
|
|
252
|
+
mysql: exports.MYSQL,
|
|
253
|
+
mariadb: exports.MARIADB,
|
|
254
|
+
postgres: exports.POSTGRES,
|
|
255
|
+
sqlite: exports.SQLITE,
|
|
256
|
+
cockroachdb: exports.COCKROACHDB,
|
|
257
|
+
redshift: exports.REDSHIFT,
|
|
258
|
+
db2: exports.DB2,
|
|
259
|
+
snowflake: exports.SNOWFLAKE,
|
|
260
|
+
clickhouse: exports.CLICKHOUSE,
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* Get SQL constants for a specific dialect
|
|
264
|
+
* @param dialect - The dialect name ('mysql', 'mariadb', 'postgres', 'sqlite',
|
|
265
|
+
* 'cockroachdb', 'redshift', 'db2', 'snowflake', 'clickhouse')
|
|
266
|
+
*/
|
|
267
|
+
function getConstantsForDialect(dialect) {
|
|
268
|
+
switch (dialect) {
|
|
269
|
+
case 'mysql':
|
|
270
|
+
return exports.MYSQL;
|
|
271
|
+
case 'mariadb':
|
|
272
|
+
return exports.MARIADB;
|
|
273
|
+
case 'postgres':
|
|
274
|
+
return exports.POSTGRES;
|
|
275
|
+
case 'sqlite':
|
|
276
|
+
return exports.SQLITE;
|
|
277
|
+
case 'cockroachdb':
|
|
278
|
+
return exports.COCKROACHDB;
|
|
279
|
+
case 'redshift':
|
|
280
|
+
return exports.REDSHIFT;
|
|
281
|
+
case 'db2':
|
|
282
|
+
return exports.DB2;
|
|
283
|
+
case 'snowflake':
|
|
284
|
+
return exports.SNOWFLAKE;
|
|
285
|
+
case 'clickhouse':
|
|
286
|
+
return exports.CLICKHOUSE;
|
|
287
|
+
default:
|
|
288
|
+
return exports.MYSQL;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Transaction isolation level enum
|
|
293
|
+
*/
|
|
294
|
+
var IsolationLevelEnum;
|
|
295
|
+
(function (IsolationLevelEnum) {
|
|
296
|
+
IsolationLevelEnum["READ_UNCOMMITTED"] = "READ_UNCOMMITTED";
|
|
297
|
+
IsolationLevelEnum["READ_COMMITTED"] = "READ_COMMITTED";
|
|
298
|
+
IsolationLevelEnum["REPEATABLE_READ"] = "REPEATABLE_READ";
|
|
299
|
+
IsolationLevelEnum["SERIALIZABLE"] = "SERIALIZABLE";
|
|
300
|
+
})(IsolationLevelEnum || (exports.IsolationLevelEnum = IsolationLevelEnum = {}));
|