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.
Files changed (460) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +711 -0
  239. package/dist/index.js +19 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. 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
  /**