@spinajs/orm-postgres 2.0.557 → 3.0.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/README.md +20 -20
- package/lib/cjs/compilers.d.ts +5 -5
- package/lib/cjs/compilers.d.ts.map +1 -1
- package/lib/cjs/compilers.js +23 -17
- package/lib/cjs/compilers.js.map +1 -1
- package/lib/cjs/converters.d.ts +7 -7
- package/lib/cjs/converters.d.ts.map +1 -1
- package/lib/cjs/converters.js +18 -40
- package/lib/cjs/converters.js.map +1 -1
- package/lib/cjs/errors.d.ts +4 -0
- package/lib/cjs/errors.d.ts.map +1 -0
- package/lib/cjs/errors.js +31 -0
- package/lib/cjs/errors.js.map +1 -0
- package/lib/cjs/expressions.d.ts +9 -0
- package/lib/cjs/expressions.d.ts.map +1 -0
- package/lib/cjs/expressions.js +22 -0
- package/lib/cjs/expressions.js.map +1 -0
- package/lib/cjs/index.d.ts +12 -3
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +95 -35
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/statements.d.ts +19 -6
- package/lib/cjs/statements.d.ts.map +1 -1
- package/lib/cjs/statements.js +37 -8
- package/lib/cjs/statements.js.map +1 -1
- package/lib/mjs/compilers.d.ts +5 -5
- package/lib/mjs/compilers.d.ts.map +1 -1
- package/lib/mjs/compilers.js +23 -17
- package/lib/mjs/compilers.js.map +1 -1
- package/lib/mjs/converters.d.ts +7 -7
- package/lib/mjs/converters.d.ts.map +1 -1
- package/lib/mjs/converters.js +19 -41
- package/lib/mjs/converters.js.map +1 -1
- package/lib/mjs/errors.d.ts +4 -0
- package/lib/mjs/errors.d.ts.map +1 -0
- package/lib/mjs/errors.js +28 -0
- package/lib/mjs/errors.js.map +1 -0
- package/lib/mjs/expressions.d.ts +9 -0
- package/lib/mjs/expressions.d.ts.map +1 -0
- package/lib/mjs/expressions.js +18 -0
- package/lib/mjs/expressions.js.map +1 -0
- package/lib/mjs/index.d.ts +12 -3
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +97 -39
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/statements.d.ts +19 -6
- package/lib/mjs/statements.d.ts.map +1 -1
- package/lib/mjs/statements.js +37 -9
- package/lib/mjs/statements.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- 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`.
|
|
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) |
|
|
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
|
|
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
|
-
|
|
89
|
-
|
|
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
|
package/lib/cjs/compilers.d.ts
CHANGED
|
@@ -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,
|
|
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":"AACA,OAAO,EAAuB,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAErF,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAY,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAgB,kBAAkB,EAAE,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAuB,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3U,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"compilers.d.ts","sourceRoot":"","sources":["../../src/compilers.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/compilers.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
218
|
-
|
|
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
|
-
//
|
|
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(
|
|
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
|
-
|
|
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
|
package/lib/cjs/compilers.js.map
CHANGED
|
@@ -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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"}
|
package/lib/cjs/converters.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
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
|
-
*
|
|
5
|
-
*
|
|
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
|
|
9
|
-
toDB(value:
|
|
10
|
-
fromDB(value:
|
|
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,
|
|
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"}
|
package/lib/cjs/converters.js
CHANGED
|
@@ -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
|
|
8
|
+
const PG_NUMERIC_TYPES = ['int2', 'int4', 'int8', 'numeric', 'float4', 'float8'];
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
14
|
-
toDB(value,
|
|
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 ===
|
|
17
|
-
return
|
|
16
|
+
if (value === undefined) {
|
|
17
|
+
return undefined;
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
31
|
-
|
|
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
|
|
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
|
-
|
|
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":";;;AAAA,uDAAuD;AACvD,
|
|
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"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
25
|
-
*
|
|
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
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|