@spinajs/orm-postgres 2.0.557 → 3.0.1

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 (52) hide show
  1. package/README.md +20 -20
  2. package/lib/cjs/compilers.d.ts +5 -5
  3. package/lib/cjs/compilers.d.ts.map +1 -1
  4. package/lib/cjs/compilers.js +23 -17
  5. package/lib/cjs/compilers.js.map +1 -1
  6. package/lib/cjs/converters.d.ts +7 -7
  7. package/lib/cjs/converters.d.ts.map +1 -1
  8. package/lib/cjs/converters.js +18 -40
  9. package/lib/cjs/converters.js.map +1 -1
  10. package/lib/cjs/errors.d.ts +4 -0
  11. package/lib/cjs/errors.d.ts.map +1 -0
  12. package/lib/cjs/errors.js +31 -0
  13. package/lib/cjs/errors.js.map +1 -0
  14. package/lib/cjs/expressions.d.ts +9 -0
  15. package/lib/cjs/expressions.d.ts.map +1 -0
  16. package/lib/cjs/expressions.js +22 -0
  17. package/lib/cjs/expressions.js.map +1 -0
  18. package/lib/cjs/index.d.ts +12 -3
  19. package/lib/cjs/index.d.ts.map +1 -1
  20. package/lib/cjs/index.js +95 -35
  21. package/lib/cjs/index.js.map +1 -1
  22. package/lib/cjs/statements.d.ts +19 -6
  23. package/lib/cjs/statements.d.ts.map +1 -1
  24. package/lib/cjs/statements.js +37 -8
  25. package/lib/cjs/statements.js.map +1 -1
  26. package/lib/mjs/compilers.d.ts +5 -5
  27. package/lib/mjs/compilers.d.ts.map +1 -1
  28. package/lib/mjs/compilers.js +23 -17
  29. package/lib/mjs/compilers.js.map +1 -1
  30. package/lib/mjs/converters.d.ts +7 -7
  31. package/lib/mjs/converters.d.ts.map +1 -1
  32. package/lib/mjs/converters.js +19 -41
  33. package/lib/mjs/converters.js.map +1 -1
  34. package/lib/mjs/errors.d.ts +4 -0
  35. package/lib/mjs/errors.d.ts.map +1 -0
  36. package/lib/mjs/errors.js +28 -0
  37. package/lib/mjs/errors.js.map +1 -0
  38. package/lib/mjs/expressions.d.ts +9 -0
  39. package/lib/mjs/expressions.d.ts.map +1 -0
  40. package/lib/mjs/expressions.js +18 -0
  41. package/lib/mjs/expressions.js.map +1 -0
  42. package/lib/mjs/index.d.ts +12 -3
  43. package/lib/mjs/index.d.ts.map +1 -1
  44. package/lib/mjs/index.js +97 -39
  45. package/lib/mjs/index.js.map +1 -1
  46. package/lib/mjs/statements.d.ts +19 -6
  47. package/lib/mjs/statements.d.ts.map +1 -1
  48. package/lib/mjs/statements.js +37 -9
  49. package/lib/mjs/statements.js.map +1 -1
  50. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  51. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  52. package/package.json +13 -10
package/README.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  PostgreSQL driver for the SpinaJS ORM.
4
4
 
5
+ ## Documentation
6
+
7
+ Full documentation lives in [`docs/orm-postgres`](../../docs/orm-postgres/README.md):
8
+
9
+ - [Connection and pooling](../../docs/orm-postgres/01-connection-and-pooling.md)
10
+ - [Transactions](../../docs/orm-postgres/02-transactions.md)
11
+ - [Queries and inserts](../../docs/orm-postgres/03-queries-and-inserts.md)
12
+ - [Schema DDL and reflection](../../docs/orm-postgres/04-schema-ddl-and-reflection.md)
13
+ - [Quoting and parameters](../../docs/orm-postgres/05-quoting-and-parameters.md)
14
+ - [Extending the driver](../../docs/orm-postgres/06-extending-the-driver.md)
15
+ - [Customizing dialect compilers](../../docs/orm-postgres/07-customizing-dialect-compilers.md)
16
+
5
17
  ## Usage
6
18
 
7
19
  ```ts
@@ -48,35 +60,22 @@ import { Configuration } from '@spinajs/configuration';
48
60
  | `CREATE DATABASE IF NOT EXISTS` | supported | refused — postgres has no such clause |
49
61
  | `CREATE EVENT`, table history triggers, `CREATE TABLE ... LIKE` | MySQL syntax | unregistered — fail with a DI error naming the abstraction |
50
62
  | `DECIMAL` / `NUMERIC` / `BIGINT` in responses | driver-dependent | strings (node-postgres refuses to lose precision above 2^53); `ResponseSchemaTypes` says so |
51
- | `dateTime` / `timestamp` columns | `DATETIME` | `TIMESTAMPTZ(3)`; the driver writes and reads UTC instants (milliseconds; microseconds truncated), a `DateTime` read back is in the UTC zone, and every pooled session runs with `TimeZone = UTC`. Legacy `TIMESTAMP` columns are read as UTC, see [Upgrading `TIMESTAMP` columns](#upgrading-timestamp-columns-created-by-earlier-versions) |
52
- | `DATE` columns | calendar day | calendar day; a raw query returns it as a `Date` at UTC midnight (pg-types alone would use the process zone) |
63
+ | `dateTime` / `timestamp` columns | `DATETIME` | `TIMESTAMPTZ(3)`; the driver writes and reads UTC instants (milliseconds; microseconds truncated), a `DateTime` read back is in the UTC zone, and every pooled session runs with `TimeZone = UTC`. `TIMESTAMP` (without time zone) columns are read as UTC |
64
+ | `DATE` columns | calendar day | calendar day; a model writes the day of the value in its own zone, and a raw query returns it as a `Date` at UTC midnight (pg-types alone would use the process zone) |
53
65
  | Column defaults (`tableInfo`) | literal values | literal defaults become values of the column type; expression defaults (`gen_random_uuid()`, `CURRENT_TIMESTAMP`, sequences) stay on the server: a new model leaves the column unset and the insert writes `DEFAULT` |
54
- | Joined table references | `` `db`.`table` `` (sibling databases) | unqualified; join key columns quoted |
66
+ | Joined table references | `` `db`.`table` `` (sibling databases) | qualified with `Options.Schema` when set, else unqualified |
55
67
  | `COUNT(*)` | number | `bigint`; `count()` / `selectCount()` return numbers |
56
68
  | Upsert target of `insert(InsertOrUpdate)` | `ON DUPLICATE KEY` (any unique key) | the primary key when the row carries it, else the one unique column it carries; a row carrying several unique columns needs `insert().onDuplicate(column)` |
57
69
  | JSON string value in a `jsonb` column | string | string; a string value that is itself valid JSON text (`"123"`) comes back parsed |
58
70
  | Explicit value into an identity key | moves `AUTO_INCREMENT` | does not move the identity; run `SELECT setval(pg_get_serial_sequence('"t"', 'Id'), (SELECT max("Id") FROM "t"))` after explicit keys |
59
71
  | Failed statement inside a transaction | transaction continues | transaction is aborted (`25P02`) until rollback; wrap recoverable statements in a nested `transaction()` (savepoint) |
60
- | `?` in raw SQL | placeholder | the first N `?` (N = bindings) become `$1..$N`, including jsonb `?` operators; with bindings, use `jsonb_exists()` / `jsonb_exists_any()` |
72
+ | `?` in raw SQL | placeholder | the first N `?` (N = bindings) outside quoted literals and identifiers become `$1..$N`; `?\|` and `?&` stay operators, a bare jsonb `?` does not: with bindings, use `jsonb_exists()` |
61
73
  | `dropColumn()` | unquoted name | quoted, so mixed-case names are not folded to lower case |
62
74
 
63
75
  Transactions run on a dedicated pooled client with full savepoint support; all four
64
76
  standard isolation levels are accepted (`READ UNCOMMITTED` behaves as `READ COMMITTED`,
65
77
  postgres' documented, standard-permitted upgrade).
66
78
 
67
- ### Upgrading `TIMESTAMP` columns created by earlier versions
68
-
69
- New `dateTime` / `timestamp` columns are `TIMESTAMPTZ(3)`. Existing `TIMESTAMP` (without time zone) columns keep
70
- working: the driver writes UTC into them and reads them as UTC. Rows written by earlier versions hold the wall time
71
- of the process that wrote them, so they read shifted by that zone's offset until converted. Convert each column
72
- once, naming the zone the old rows were written in (the app servers' `TZ`; `UTC` in most containers):
73
-
74
- ALTER TABLE "orders" ALTER COLUMN "CreatedAt" TYPE TIMESTAMPTZ(3) USING "CreatedAt" AT TIME ZONE 'Europe/Warsaw';
75
-
76
- Do this in a migration (raw query), one statement per column. Rows written by this version into a still
77
- unconverted column are UTC wall time: if both kinds are mixed, convert before deploying this version, or split
78
- the rows by their insert time.
79
-
80
79
  ## Running integration tests
81
80
 
82
81
  docker compose --profile test up -d postgres
@@ -85,8 +84,9 @@ the rows by their insert time.
85
84
 
86
85
  One file: `npx ts-mocha -p tsconfig.json --config .mocharc.integration.json test/integration/<file>.test.ts`.
87
86
 
88
- Each suite creates its own schema `it_<suite>_<pid>_<random>` in database `orm_postgres_it` (created on first run)
89
- and drops it afterwards. The suites skip with a warning when the server is unreachable.
87
+ Suites on `harness.ts` create their own schema `it_<suite>_<pid>_<random>` in database `orm_postgres_it` (created
88
+ on first run); suites on `support.ts` create a throwaway database `orm_<suite>_<random>`. Both drop what they created
89
+ afterwards, and skip with a warning when the server is unreachable.
90
90
 
91
91
  | Variable | Default |
92
92
  | --- | --- |
@@ -95,7 +95,7 @@ and drops it afterwards. The suites skip with a warning when the server is unrea
95
95
  | `ORM_TEST_POSTGRES_USER` / `_PASSWORD` | `postgres` / `postgres` |
96
96
  | `ORM_TEST_POSTGRES_DATABASE` | `orm_postgres_it` |
97
97
  | `ORM_TEST_POSTGRES_CONTAINER` | `spinajs-orm-test-postgres` (the restart test runs `docker restart` on it) |
98
- | `ORM_TEST_POSTGRES_REQUIRED` | unset; `1` fails instead of skipping (CI) |
98
+ | `ORM_TEST_POSTGRES_REQUIRED` (or `ORM_TEST_REQUIRE_PG`) | unset; `1` fails instead of skipping (CI) |
99
99
  | `ORM_TEST_POSTGRES_KEEP_SCHEMA` | unset; `1` keeps each suite's schema for inspection |
100
100
 
101
101
  **The infrastructure suite restarts the container**, and the time suite changes the integration database's
@@ -1,7 +1,7 @@
1
1
  import { Container, IContainer } from '@spinajs/di';
2
2
  import { Log } from '@spinajs/log';
3
3
  import { ICompilerOutput, OnDuplicateQueryBuilder, InsertQueryBuilder, TableExistsCompiler, TableExistsQueryBuilder, LimitQueryCompiler, LimitBuilder, CreateDatabaseCompiler, CreateDatabaseQueryBuilder, IdentifierQuoter, TableAliasCompiler, CreateViewQueryBuilder } from '@spinajs/orm';
4
- import { SqlInsertQueryCompiler, SqlColumnQueryCompiler, SqlAlterColumnQueryCompiler, SqlAlterTableQueryCompiler, SqlOnDuplicateQueryCompiler, SqlDefaultValueBuilder, SqlCreateViewQueryCompiler } from '@spinajs/orm-sql';
4
+ import { SqlInsertQueryCompiler, SqlColumnQueryCompiler, SqlAlterColumnQueryCompiler, SqlOnDuplicateQueryCompiler, SqlDefaultValueBuilder, SqlCreateViewQueryCompiler, SqlIndexQueryCompiler } from '@spinajs/orm-sql';
5
5
  export declare class PostgresTableExistsCompiler implements TableExistsCompiler {
6
6
  protected builder: TableExistsQueryBuilder;
7
7
  constructor(builder: TableExistsQueryBuilder);
@@ -103,10 +103,6 @@ export declare class PostgresAlterColumnQueryCompiler extends SqlAlterColumnQuer
103
103
  protected _add(definition: string): string | null;
104
104
  protected _modify(_definition: string): string | null;
105
105
  }
106
- /** Postgres folds an unquoted identifier to lower case, so a dropped column is quoted. */
107
- export declare class PostgresAlterTableQueryCompiler extends SqlAlterTableQueryCompiler {
108
- protected droppedColumn(column: string): string;
109
- }
110
106
  /**
111
107
  * Postgres spells database DDL its own way: encoding is `ENCODING`, not CHARACTER SET,
112
108
  * and CREATE DATABASE has no IF NOT EXISTS at all — existence has to be checked by the
@@ -125,6 +121,7 @@ export declare class PostgresCreateDatabaseQueryCompiler extends CreateDatabaseC
125
121
  */
126
122
  export declare class PostgresDefaultValueBuilder<T> extends SqlDefaultValueBuilder<T> {
127
123
  date(): T;
124
+ dateTime(): T;
128
125
  }
129
126
  /**
130
127
  * Table references carry NO database prefix in postgres. The shared `SqlTableAliasCompiler`
@@ -149,4 +146,7 @@ export declare class PostgresCreateViewCompiler extends SqlCreateViewQueryCompil
149
146
  protected _withOptions(): string;
150
147
  protected _checkOption(): string;
151
148
  }
149
+ export declare class PostgresIndexQueryCompiler extends SqlIndexQueryCompiler {
150
+ protected _drop(): string;
151
+ }
152
152
  //# sourceMappingURL=compilers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PostgresCreateViewCompiler = exports.PostgresTableAliasCompiler = exports.PostgresDefaultValueBuilder = exports.PostgresCreateDatabaseQueryCompiler = exports.PostgresAlterTableQueryCompiler = exports.PostgresAlterColumnQueryCompiler = exports.PostgresColumnQueryCompiler = exports.PostgresInsertQueryCompiler = exports.PostgresOnDuplicateQueryCompiler = exports.PostgresLimitQueryCompiler = exports.PostgresTableExistsCompiler = void 0;
15
+ exports.PostgresIndexQueryCompiler = exports.PostgresCreateViewCompiler = exports.PostgresTableAliasCompiler = exports.PostgresDefaultValueBuilder = exports.PostgresCreateDatabaseQueryCompiler = exports.PostgresAlterColumnQueryCompiler = exports.PostgresColumnQueryCompiler = exports.PostgresInsertQueryCompiler = exports.PostgresOnDuplicateQueryCompiler = exports.PostgresLimitQueryCompiler = exports.PostgresTableExistsCompiler = void 0;
16
16
  /* eslint-disable security/detect-object-injection */
17
17
  const di_1 = require("@spinajs/di");
18
18
  const exceptions_1 = require("@spinajs/exceptions");
@@ -20,6 +20,7 @@ const log_1 = require("@spinajs/log");
20
20
  const orm_1 = require("@spinajs/orm");
21
21
  const orm_sql_1 = require("@spinajs/orm-sql");
22
22
  const lodash_1 = __importDefault(require("lodash"));
23
+ const statements_js_1 = require("./statements.js");
23
24
  let PostgresTableExistsCompiler = class PostgresTableExistsCompiler {
24
25
  constructor(builder) {
25
26
  this.builder = builder;
@@ -214,8 +215,9 @@ let PostgresColumnQueryCompiler = class PostgresColumnQueryCompiler extends orm_
214
215
  }
215
216
  _stmt.push('GENERATED BY DEFAULT AS IDENTITY');
216
217
  }
217
- if (this.builder.Collation) {
218
- _stmt.push(`COLLATE ${this.Quoter.quote(this.builder.Collation)}`);
218
+ const collation = this.builder.Collation || (this.builder.Exact ? 'C' : '');
219
+ if (collation) {
220
+ _stmt.push(`COLLATE ${this.Quoter.quote(collation)}`);
219
221
  }
220
222
  if (this.builder.NotNull) {
221
223
  _stmt.push('NOT NULL');
@@ -295,7 +297,7 @@ let PostgresColumnQueryCompiler = class PostgresColumnQueryCompiler extends orm_
295
297
  return 'TIME';
296
298
  case 'dateTime':
297
299
  case 'timestamp':
298
- // instants: the driver converts to UTC; precision 3 because JS dates carry milliseconds
300
+ // precision 3 because JS dates carry milliseconds
299
301
  return 'TIMESTAMPTZ(3)';
300
302
  case 'json':
301
303
  return 'JSONB';
@@ -324,14 +326,15 @@ let PostgresAlterColumnQueryCompiler = class PostgresAlterColumnQueryCompiler ex
324
326
  _add(definition) {
325
327
  if (this.builder.AfterColumn) {
326
328
  // AFTER is MySQL-only; postgres appends columns at the end and offers no placement
327
- this.Log.warn(`postgres cannot place column '${this.builder.Name}' AFTER '${this.builder.AfterColumn}' - the column is appended at the end of the table`);
329
+ this.Log.warn({ column: this.builder.Name, afterColumn: this.builder.AfterColumn }, 'postgres cannot place column ${column} AFTER ${afterColumn} - the column is appended at the end of the table');
328
330
  }
329
331
  return `ADD COLUMN ${definition}`;
330
332
  }
331
333
  _modify(_definition) {
332
334
  const column = this.Quoter.quote(this.builder.Name);
333
335
  const compiler = this.container.resolve(orm_1.ColumnQueryCompiler, [this.builder]);
334
- const actions = [`ALTER COLUMN ${column} TYPE ${compiler.typeExpression()}`];
336
+ // Without USING, postgres refuses a type it has no implicit cast to, e.g. text to jsonb.
337
+ const actions = [`ALTER COLUMN ${column} TYPE ${compiler.typeExpression()} USING ${column}::${compiler.typeExpression()}`];
335
338
  actions.push(this.builder.NotNull ? `ALTER COLUMN ${column} SET NOT NULL` : `ALTER COLUMN ${column} DROP NOT NULL`);
336
339
  const defaultExpression = compiler.defaultExpression();
337
340
  actions.push(defaultExpression ? `ALTER COLUMN ${column} SET ${defaultExpression}` : `ALTER COLUMN ${column} DROP DEFAULT`);
@@ -347,17 +350,6 @@ exports.PostgresAlterColumnQueryCompiler = PostgresAlterColumnQueryCompiler = __
347
350
  (0, di_1.NewInstance)(),
348
351
  (0, di_1.Inject)(di_1.Container)
349
352
  ], PostgresAlterColumnQueryCompiler);
350
- /** Postgres folds an unquoted identifier to lower case, so a dropped column is quoted. */
351
- let PostgresAlterTableQueryCompiler = class PostgresAlterTableQueryCompiler extends orm_sql_1.SqlAlterTableQueryCompiler {
352
- droppedColumn(column) {
353
- return this.container.resolve(orm_1.IdentifierQuoter).quote(column);
354
- }
355
- };
356
- exports.PostgresAlterTableQueryCompiler = PostgresAlterTableQueryCompiler;
357
- exports.PostgresAlterTableQueryCompiler = PostgresAlterTableQueryCompiler = __decorate([
358
- (0, di_1.NewInstance)(),
359
- (0, di_1.Inject)(di_1.Container)
360
- ], PostgresAlterTableQueryCompiler);
361
353
  /**
362
354
  * Postgres spells database DDL its own way: encoding is `ENCODING`, not CHARACTER SET,
363
355
  * and CREATE DATABASE has no IF NOT EXISTS at all — existence has to be checked by the
@@ -403,6 +395,10 @@ let PostgresDefaultValueBuilder = class PostgresDefaultValueBuilder extends orm_
403
395
  this.Query = orm_1.RawQuery.create('CURRENT_DATE');
404
396
  return this.Owner;
405
397
  }
398
+ dateTime() {
399
+ this.Query = orm_1.RawQuery.create(new statements_js_1.PostgresNowExpression().sql());
400
+ return this.Owner;
401
+ }
406
402
  };
407
403
  exports.PostgresDefaultValueBuilder = PostgresDefaultValueBuilder;
408
404
  exports.PostgresDefaultValueBuilder = PostgresDefaultValueBuilder = __decorate([
@@ -463,4 +459,14 @@ exports.PostgresCreateViewCompiler = PostgresCreateViewCompiler = __decorate([
463
459
  (0, di_1.Inject)(di_1.Container),
464
460
  __metadata("design:paramtypes", [di_1.Container, orm_1.CreateViewQueryBuilder])
465
461
  ], PostgresCreateViewCompiler);
462
+ // Index names are schema-wide, so DROP INDEX names no table.
463
+ let PostgresIndexQueryCompiler = class PostgresIndexQueryCompiler extends orm_sql_1.SqlIndexQueryCompiler {
464
+ _drop() {
465
+ return `DROP INDEX ${this.Quoter.quote(this._builder.Name)}`;
466
+ }
467
+ };
468
+ exports.PostgresIndexQueryCompiler = PostgresIndexQueryCompiler;
469
+ exports.PostgresIndexQueryCompiler = PostgresIndexQueryCompiler = __decorate([
470
+ (0, di_1.NewInstance)()
471
+ ], PostgresIndexQueryCompiler);
466
472
  //# sourceMappingURL=compilers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compilers.js","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { DatetimeValueConverter, IColumnDescriptor, IDehydrateOptions, JsonValueConverter, ModelBase } from '@spinajs/orm';
1
+ import { IColumnDescriptor, IDehydrateOptions, JsonValueConverter, ModelBase } from '@spinajs/orm';
2
+ import { IsoDatetimeValueConverter } from '@spinajs/orm-sql';
2
3
  import { DateTime } from 'luxon';
3
4
  /**
4
- * Instants go to the server as UTC ISO strings and come back as UTC DateTimes, so neither the
5
- * process zone nor the session TimeZone moves a stored instant. `dehydrate()` (API output) keeps
6
- * the formats of the shared SQL converter.
5
+ * {@link IsoDatetimeValueConverter} ( UTC instants ) with two exceptions: an unset value stays
6
+ * unset, and a DATE column takes the calendar day of the value in its own zone.
7
7
  */
8
- export declare class PostgresDatetimeValueConverter extends DatetimeValueConverter {
9
- toDB(value: Date | DateTime | string, _model: ModelBase<unknown>, column: IColumnDescriptor, _options?: any, dehydrateOptions?: IDehydrateOptions): string | number | null | undefined;
10
- fromDB(value: string | DateTime | Date | number): any;
8
+ export declare class PostgresDatetimeValueConverter extends IsoDatetimeValueConverter {
9
+ toDB(value: unknown, model?: ModelBase<unknown>, column?: IColumnDescriptor, options?: unknown, ...dehydrating: [IDehydrateOptions?]): any;
10
+ fromDB(value: unknown): DateTime | null;
11
11
  }
12
12
  /** node-postgres already parses json/jsonb; a string here is either a JSON string value or JSON text from a TEXT column. */
13
13
  export declare class PostgresJsonValueConverter extends JsonValueConverter {
@@ -1 +1 @@
1
- {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3H,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,sBAAsB;IACjE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAiC5L;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,CAiB3D;CACF;AAED,4HAA4H;AAC5H,qBAAa,0BAA2B,SAAQ,kBAAkB;IACzD,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAS7B;CACF"}
1
+ {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,yBAAyB;IACpE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAmBhJ;IAEM,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAO7C;CACF;AAED,4HAA4H;AAC5H,qBAAa,0BAA2B,SAAQ,kBAAkB;IACzD,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAS7B;CACF"}
@@ -3,59 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PostgresJsonValueConverter = exports.PostgresDatetimeValueConverter = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  const orm_1 = require("@spinajs/orm");
6
+ const orm_sql_1 = require("@spinajs/orm-sql");
6
7
  const luxon_1 = require("luxon");
7
- const NUMERIC_TYPES = ['int', 'integer', 'float', 'double', 'decimal', 'bigint', 'smallint', 'tinyint', 'mediumint', 'int2', 'int4', 'int8', 'numeric', 'float4', 'float8'];
8
+ const PG_NUMERIC_TYPES = ['int2', 'int4', 'int8', 'numeric', 'float4', 'float8'];
8
9
  /**
9
- * Instants go to the server as UTC ISO strings and come back as UTC DateTimes, so neither the
10
- * process zone nor the session TimeZone moves a stored instant. `dehydrate()` (API output) keeps
11
- * the formats of the shared SQL converter.
10
+ * {@link IsoDatetimeValueConverter} ( UTC instants ) with two exceptions: an unset value stays
11
+ * unset, and a DATE column takes the calendar day of the value in its own zone.
12
12
  */
13
- class PostgresDatetimeValueConverter extends orm_1.DatetimeValueConverter {
14
- toDB(value, _model, column, _options, dehydrateOptions) {
13
+ class PostgresDatetimeValueConverter extends orm_sql_1.IsoDatetimeValueConverter {
14
+ toDB(value, model, column, options, ...dehydrating) {
15
15
  // undefined stays undefined: the insert then writes DEFAULT (e.g. CURRENT_TIMESTAMP) instead of NULL
16
- if (value === null || value === undefined) {
17
- return value;
16
+ if (value === undefined) {
17
+ return undefined;
18
18
  }
19
- const dt = typeof value === 'string' ? luxon_1.DateTime.fromISO(value, { setZone: true }) : luxon_1.DateTime.isDateTime(value) ? value : luxon_1.DateTime.fromJSDate(value);
20
- if (dehydrateOptions) {
21
- switch (dehydrateOptions.dateTimeFormat) {
22
- case 'iso':
23
- return dt.toISO();
24
- case 'unix':
25
- return dt.toUnixInteger() ?? 0;
26
- case 'sql':
27
- return dt.toSQL({ includeOffset: false });
19
+ if (dehydrating.length === 0 && column?.Type === 'date') {
20
+ const day = luxon_1.DateTime.isDateTime(value) ? value : value instanceof Date ? luxon_1.DateTime.fromJSDate(value) : null;
21
+ if (day?.isValid) {
22
+ return day.toISODate();
28
23
  }
29
24
  }
30
- if (column && NUMERIC_TYPES.includes(column.Type)) {
31
- return dt.toUnixInteger();
32
- }
33
- if (dehydrateOptions) {
34
- return dt.toSQL({ includeOffset: false });
35
- }
36
- // a DATE is a calendar day in the value's own zone, not an instant
37
- if (column?.Type === 'date') {
38
- return dt.toISODate();
25
+ // tableInfo() reports udt names ( int8, float8 ), which the shared numeric-type list does not know
26
+ if (dehydrating.length === 0 && column && PG_NUMERIC_TYPES.includes(column.Type)) {
27
+ return (0, orm_1.toInstant)(value, column.Name)?.toUnixInteger() ?? null;
39
28
  }
40
- return dt.toUTC().toISO();
29
+ return super.toDB(value, model, column, options, ...dehydrating);
41
30
  }
42
31
  fromDB(value) {
43
- if (value === null || value === undefined || value === '') {
44
- return null;
45
- }
46
32
  // model construction runs assigned values through here too; converting the zone would move a DATE's day
47
- if (luxon_1.DateTime.isDateTime(value)) {
33
+ if (luxon_1.DateTime.isDateTime(value) && value.isValid) {
48
34
  return value;
49
35
  }
50
- if (value instanceof Date) {
51
- return luxon_1.DateTime.fromJSDate(value, { zone: 'utc' });
52
- }
53
- if (typeof value === 'number') {
54
- return luxon_1.DateTime.fromSeconds(value, { zone: 'utc' });
55
- }
56
- // text without an offset (a raw query, a legacy TIMESTAMP read without the type parser) is UTC
57
- const iso = luxon_1.DateTime.fromISO(value, { zone: 'utc' });
58
- return iso.isValid ? iso : luxon_1.DateTime.fromSQL(value, { zone: 'utc' });
36
+ return super.fromDB(value);
59
37
  }
60
38
  }
61
39
  exports.PostgresDatetimeValueConverter = PostgresDatetimeValueConverter;
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/converters.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,sCAA8G;AAC9G,8CAA6D;AAC7D,iCAAiC;AAEjC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEjF;;;GAGG;AACH,oCAA4C,SAAQ,mCAAyB;IACpE,IAAI,CAAC,KAAc,EAAE,KAA0B,EAAE,MAA0B,EAAE,OAAiB,EAAE,GAAG,WAAiC;QACzI,qGAAqG;QACrG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3G,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,mGAAmG;QACnG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,OAAO,IAAA,eAAS,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,IAAI,CAAC;QAChE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,KAAc;QAC1B,wGAAwG;QACxG,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF;;AAED,4HAA4H;AAC5H,gCAAwC,SAAQ,wBAAkB;IACzD,MAAM,CAAC,KAAU;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { IDriverOptions } from '@spinajs/orm';
2
+ /** Maps a node-postgres error by its SQLSTATE: `23505` is a duplicate, the rest of class 23 another constraint. */
3
+ export declare function mapPostgresError(err: unknown, driver: Partial<IDriverOptions>, query: string, bindings: unknown): Error;
4
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,cAAc,EAAiC,MAAM,cAAc,CAAC;AAgBlH,mHAAmH;AACnH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,CAgBvH"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapPostgresError = mapPostgresError;
4
+ const orm_1 = require("@spinajs/orm");
5
+ const PG_CONSTRAINT_KINDS = {
6
+ '23502': 'not_null',
7
+ '23503': 'foreign_key',
8
+ '23514': 'check',
9
+ };
10
+ const text = (value) => (typeof value === 'string' && value.length > 0 ? value : undefined);
11
+ // `Key ("Email", tenant)=(a@x, 1) already exists.`
12
+ function keyColumns(detail) {
13
+ const key = typeof detail === 'string' ? /^Key \((.+?)\)=/.exec(detail) : null;
14
+ return key ? key[1].split(',').map((c) => c.trim().replace(/^"(.*)"$/, '$1')) : undefined;
15
+ }
16
+ /** Maps a node-postgres error by its SQLSTATE: `23505` is a duplicate, the rest of class 23 another constraint. */
17
+ function mapPostgresError(err, driver, query, bindings) {
18
+ const native = err;
19
+ const code = typeof native?.code === 'string' ? native.code : '';
20
+ const message = String(native?.message ?? err);
21
+ const info = { table: text(native?.table), constraint: text(native?.constraint) };
22
+ if (code === '23505') {
23
+ return new orm_1.UniqueViolation(message, { ...info, columns: keyColumns(native?.detail) }, err);
24
+ }
25
+ if (code.startsWith('23')) {
26
+ const column = text(native?.column);
27
+ return new orm_1.ConstraintViolation(message, PG_CONSTRAINT_KINDS[code] ?? 'other', { ...info, columns: column ? [column] : undefined }, driver, query, bindings, err);
28
+ }
29
+ return new orm_1.OrmException('Error executing orm command ', driver, query, bindings, err);
30
+ }
31
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,sCAAkH;AAElH,MAAM,mBAAmB,GAAmC;IAC1D,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEzH,mDAAmD;AACnD,SAAS,UAAU,CAAC,MAAe;IACjC,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5F,CAAC;AAED,mHAAmH;AACnH,0BAAiC,GAAY,EAAE,MAA+B,EAAE,KAAa,EAAE,QAAiB;IAC9G,MAAM,MAAM,GAAG,GAA0I,CAAC;IAC1J,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;IAElF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,qBAAe,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,yBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnK,CAAC;IAED,OAAO,IAAI,kBAAY,CAAC,8BAA8B,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACxF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SqlExpressions } from '@spinajs/orm';
2
+ import type { SqlFragment } from '@spinajs/orm';
3
+ export declare class PostgresSqlExpressions extends SqlExpressions {
4
+ castText(expression: string): string;
5
+ datetimeText(expression: string): string;
6
+ contains(haystack: SqlFragment, needle: SqlFragment): SqlFragment;
7
+ equalsExactly(left: string, right: SqlFragment): SqlFragment;
8
+ }
9
+ //# sourceMappingURL=expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,qBAAa,sBAAuB,SAAQ,cAAc;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1C;IAGM,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9C;IAEM,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAEvE;IAGM,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAElE;CACF"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresSqlExpressions = void 0;
4
+ const orm_1 = require("@spinajs/orm");
5
+ class PostgresSqlExpressions extends orm_1.SqlExpressions {
6
+ castText(expression) {
7
+ return `CAST(${expression} AS TEXT)`;
8
+ }
9
+ // Read as a timestamp, node-postgres would place the wall-clock time in the process zone.
10
+ datetimeText(expression) {
11
+ return `CAST(${expression} AS TEXT)`;
12
+ }
13
+ contains(haystack, needle) {
14
+ return { sql: `strpos(${haystack.sql}, ${needle.sql}) > 0`, bindings: [...haystack.bindings, ...needle.bindings] };
15
+ }
16
+ // The default collations are deterministic.
17
+ equalsExactly(left, right) {
18
+ return { sql: `${left} = ${right.sql}`, bindings: [...right.bindings] };
19
+ }
20
+ }
21
+ exports.PostgresSqlExpressions = PostgresSqlExpressions;
22
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../src/expressions.ts"],"names":[],"mappings":";;;AAAA,sCAA8C;AAG9C,4BAAoC,SAAQ,oBAAc;IACjD,QAAQ,CAAC,UAAkB;QAChC,OAAO,QAAQ,UAAU,WAAW,CAAC;IACvC,CAAC;IAED,0FAA0F;IACnF,YAAY,CAAC,UAAkB;QACpC,OAAO,QAAQ,UAAU,WAAW,CAAC;IACvC,CAAC;IAEM,QAAQ,CAAC,QAAqB,EAAE,MAAmB;QACxD,OAAO,EAAE,GAAG,EAAE,UAAU,QAAQ,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrH,CAAC;IAED,4CAA4C;IACrC,aAAa,CAAC,IAAY,EAAE,KAAkB;QACnD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1E,CAAC;CACF"}
@@ -2,7 +2,9 @@ import { QueryContext, OrmDriver, IColumnDescriptor, ServerResponseMapper, ISupp
2
2
  import { SqlDriver } from '@spinajs/orm-sql';
3
3
  import pg from 'pg';
4
4
  export * from './compilers.js';
5
+ export * from './expressions.js';
5
6
  export * from './statements.js';
7
+ export * from './errors.js';
6
8
  export * from './converters.js';
7
9
  export interface IPostgresTransactionContext extends ITransactionContext {
8
10
  connection: pg.PoolClient;
@@ -21,10 +23,13 @@ export declare function toPositionalParameters(stmt: string): string;
21
23
  */
22
24
  export declare function toDriverStatement(stmt: string, params?: unknown[]): string;
23
25
  /**
24
- * pg-types reads `date` and `timestamp` (no zone) as LOCAL time. This driver writes UTC, so
25
- * both are read as UTC: a legacy TIMESTAMP column holds UTC wall time, and a DATE becomes UTC
26
- * midnight of its calendar day. `timestamptz` keeps the default parser: its text carries the offset.
26
+ * Parses `timestamp` (without time zone) as UTC: the datetime converter writes UTC into such a
27
+ * column, and pg's own parser reads it in the process zone.
27
28
  */
29
+ export declare function parseUtcTimestamp(value: string): unknown;
30
+ /** Parses `date` as UTC midnight of its calendar day; pg's own parser takes local midnight, which read as UTC is the day before east of UTC. */
31
+ export declare function parseUtcDate(value: string): unknown;
32
+ /** The pool's type parsers: `timestamp` and `date` as UTC, the rest as pg reads them ( `timestamptz` text carries its offset ). */
28
33
  export declare function utcTypeParser(oid: number, format?: string): (value: string) => unknown;
29
34
  /**
30
35
  * `column_default` is SQL text, and a new model copies `DefaultValue` into its properties.
@@ -47,6 +52,8 @@ export declare class PostgresOrmDriver extends SqlDriver {
47
52
  * READ COMMITTED, which is the standard-permitted upgrade, so it is not refused here.
48
53
  */
49
54
  readonly SupportedIsolationLevels: IsolationLevel[];
55
+ /** The wire protocol counts parameters in an Int16. */
56
+ readonly MaxBindings = 65535;
50
57
  /**
51
58
  * pg hands NUMERIC/DECIMAL and BIGINT back as STRINGS: both can exceed 2^53, where a
52
59
  * float loses exactly the precision those types exist to keep, so node-postgres refuses
@@ -62,8 +69,10 @@ export declare class PostgresOrmDriver extends SqlDriver {
62
69
  /** pg.Pool publishes its bookkeeping — no private-field spelunking needed here. */
63
70
  poolMetrics(): IPoolMetrics;
64
71
  ping(): Promise<boolean>;
72
+ protected poolConfig(): pg.PoolConfig;
65
73
  connect(): Promise<OrmDriver>;
66
74
  disconnect(): Promise<OrmDriver>;
75
+ lockTableShared(table: string): Promise<void>;
67
76
  tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
68
77
  /**
69
78
  * Pulls the pooled client out of a transaction context. The base class only ever hands
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}