pipework 0.289.0 → 0.290.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/REFERENCE.md +2 -0
- package/dist/data/db/expressions.d.ts +23 -0
- package/dist/data/db/expressions.d.ts.map +1 -1
- package/dist/data/db/expressions.js +27 -1
- package/dist/data/db/expressions.js.map +1 -1
- package/dist/data/db/filter.d.ts +3 -1
- package/dist/data/db/filter.d.ts.map +1 -1
- package/dist/data/db/filter.js +3 -1
- package/dist/data/db/filter.js.map +1 -1
- package/dist/data/db/namespace.d.ts +2 -0
- package/dist/data/db/namespace.d.ts.map +1 -1
- package/dist/data/query/sql/expressions/conditions.d.ts +2 -0
- package/dist/data/query/sql/expressions/conditions.d.ts.map +1 -1
- package/dist/data/query/sql/expressions/conditions.js +13 -0
- package/dist/data/query/sql/expressions/conditions.js.map +1 -1
- package/dist/data/query/sql/expressions/index.d.ts +1 -0
- package/dist/data/query/sql/expressions/index.d.ts.map +1 -1
- package/dist/data/query/sql/expressions/index.js +1 -0
- package/dist/data/query/sql/expressions/index.js.map +1 -1
- package/dist/data/query/sql/expressions/row.d.ts +19 -0
- package/dist/data/query/sql/expressions/row.d.ts.map +1 -0
- package/dist/data/query/sql/expressions/row.js +50 -0
- package/dist/data/query/sql/expressions/row.js.map +1 -0
- package/package.json +1 -1
- package/src/data/db/expressions.ts +29 -1
- package/src/data/db/filter.ts +3 -1
- package/src/data/query/sql/expressions/conditions.ts +8 -0
- package/src/data/query/sql/expressions/index.ts +1 -0
- package/src/data/query/sql/expressions/row.ts +63 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.290.0
|
|
4
|
+
|
|
5
|
+
- **Added: `filter.row(...)` and `filter.rowEquals(lhs, rhs)`, row comparisons for composite keys** (#1010). `eq` / `ne` / `gt` / `gte` / `lt` / `lte` now accept a row on both sides: `gte(row(t.a, t.b, t.c), row(k.a, k.b, k.c))` renders `("t"."a", "t"."b", "t"."c") >= ("k"."a", "k"."b", "k"."c")`, so a composite-key join against a `pipe.rows` key list needs no `pipe.sql`. Each element is a column, a SQL expression (a `pipe.rows` column is one) or a JS value. A value is bound and cast to the SQL type of the column facing it on the other row (`($1::text, $2::text)`); facing an expression it is bound uncast. `rowEquals` emits the range pair `lhs >= rhs and lhs <= rhs`: Postgres splits `(a, b, c) = (x, y, z)` into three equalities and probes the shortest index holding a and b, while a row comparison is an index condition only on an index holding all its columns in order, so the pair takes the (a, b, c) index and reads only matching rows (measured under FORCE ROW LEVEL SECURITY: 50 rows read for 50 returned, against 800 read with three `eq`s). It equals equality for never-NULL keys; with a NULL element it can yield NULL where equality yields false, which differs only under `not(...)`. A row of fewer than two elements, rows of unequal length, or a row compared with a non-row throw `[pipework] row:`.
|
|
6
|
+
- Tests: the trace partition sync no longer fails after files that leave the audit chain tables installed (#998), and the reaper specs plant their fixtures in a namespace of their own, so clones sharing one test cluster no longer drop each other's (#1000).
|
|
7
|
+
|
|
3
8
|
## 0.289.0
|
|
4
9
|
|
|
5
10
|
- **Fixed: a database test project with `isolate: false` no longer loads the app's schemas twice** (#1006). Since 0.268 (#942) pipework is not inlined in such a project, so auto-setup's import of `pipework.config.ts` ran under Node while the test files' imports ran through vite. Every module the config imports (its schemas, through surfaces or handlers) evaluated twice against one pipework registry, and even a single test file failed with `Duplicate domain definition`. auto-setup now loads the config through vitest's module runner, so the app's modules evaluate once, shared with the test files. The 0.268 entry's "inlining protects nothing" missed this case. The `vitest.inlineDeps: ['pipework']` workaround is no longer needed.
|
package/REFERENCE.md
CHANGED
|
@@ -857,6 +857,8 @@ Expression helpers for `.set()`, `.values()` and `.where()` (a string or number
|
|
|
857
857
|
- `filter.arrayAt(arr, n)` — `(arr)[n]`, 1-based; negative `n` is `(arr)[cardinality(arr) + n + 1]`; NULL for 0, out of range or `'{}'`. Typed from the column (`uuid[]` gives `SQL<string | null>`); `n` must be an integer or it throws.
|
|
858
858
|
- `filter.cardinality(arr)`, `filter.arrayPosition(col, value)` (`array_position`, NULL when absent), `filter.arraySlice(col, from, to)` (`(col)[from:to]`), `filter.arrayToString(arr, delimiter)`, `filter.arrayAppend(col, value)` and `filter.arrayRemove(col, value)` (for `.set()`). Values are bound and cast to the column's element type.
|
|
859
859
|
- `filter.arrayOf(like, ...elements)` builds `ARRAY[e1, e2, ...]::<element>[]` from columns, SQL expressions or JS values; `like` is an array column that supplies the element type. Pass it as the second argument of `arrayOverlaps` / `arrayContains` / `arrayContained`: `arrayOverlaps(t.keys, arrayOf(t.keys, concat(o.key, ':x'), concat(o.key, ':*')))`.
|
|
860
|
+
- `filter.row(...elements)` builds a row constructor `(e1, e2, ...)` for composite keys; each element is a column, a SQL expression (a `pipe.rows` column is one) or a bound JS value. `eq` / `ne` / `gt` / `gte` / `lt` / `lte` accept a row on both sides (equal length, row against row): `gte(row(t.a, t.b), row(k.a, k.b))` renders `("t"."a", "t"."b") >= ("k"."a", "k"."b")`, so a composite-key join needs no `pipe.sql`. A value is bound and cast to the SQL type of the column facing it on the other side (`($1::text, $2::text)`); facing an expression it is bound uncast and Postgres infers the type. Fewer than two elements, rows of unequal length, or a row against a non-row throw `[pipework] row:`.
|
|
861
|
+
- `filter.rowEquals(lhs, rhs)` — row equality as the range pair `lhs >= rhs and lhs <= rhs`. A row comparison is a btree index condition only on an index holding all its columns in order, whereas `(a, b, c) = (x, y, z)` is split into three equalities and probes the shortest index holding a and b; the range pair takes the index over (a, b, c) and reads only matching rows. Equal to equality for never-NULL keys; with a NULL element neither is true, but the pair yields NULL where equality may yield false, which differs only under `not(...)`.
|
|
860
862
|
- `filter.concat(...parts)` — `(p1 || p2 || ...)`, at least two parts, each a string, column or expression (`scalar(...)` for a subquery). A null part makes the result null; wrap it in `coalesce` if not wanted.
|
|
861
863
|
- `pipe.sql.inList(values, cast?)` — list match for a JS list: `` sql`id ${sql.inList(ids, 'uuid')}` `` renders `IN (SELECT ...)` over the list, which Postgres hashes under any plan and across integer types, and an empty list matches nothing; never build `IN (${sql.join(...)})`, which is a syntax error when the list is empty. `cast` is the element type, default `text`.
|
|
862
864
|
- `filter.arrayReplace(col, from, to)` — `array_replace`, every `from` becomes `to`; `filter.arrayHas(col, value)` — `$value = ANY(col)`. `col` must be an array column; a JS value is bound and cast to its element type. `value` may also be a column or SQL expression of the element type: it renders `<value> = ANY(col)` with no bind or cast, so a join on `filter.arrayHas(f.memberIds, m.id)` can use `m.id`'s index.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SQL, Column } from './types.js';
|
|
2
2
|
import type { SQLWrapper } from '../query/sql/sql.js';
|
|
3
|
+
import { Row, type RowElement } from '../query/index.js';
|
|
3
4
|
import { type CollationName } from '../query/collation.js';
|
|
4
5
|
/** Returns `column + amount`. Use negative amounts for subtraction. */
|
|
5
6
|
export declare function increment(column: Column | SQL, amount: number): SQL<number>;
|
|
@@ -180,5 +181,27 @@ export declare function walCurrentLsn(): SQL<string>;
|
|
|
180
181
|
export declare function walReplayLsn(): SQL<string | null>;
|
|
181
182
|
/** PostgreSQL `pg_last_wal_replay_lsn() >= lsn::pg_lsn` — true once a replica has replayed up to the given LSN. Yields NULL (not true) on a primary, where there is no replay position. */
|
|
182
183
|
export declare function replicaFresh(createdLsn: string | Column | SQL): SQL<boolean | null>;
|
|
184
|
+
/**
|
|
185
|
+
* A row constructor `(e1, e2, ...)` for comparing composite keys: `eq` / `ne` / `gt` / `gte` / `lt` / `lte`
|
|
186
|
+
* accept a row on both sides (row against row, equal length), so a composite-key join needs no `pipe.sql`:
|
|
187
|
+
* `gte(row(t.a, t.b), row(k.a, k.b))` renders `("t"."a", "t"."b") >= ("k"."a", "k"."b")`.
|
|
188
|
+
* Each element is a column, a SQL expression (a `pipe.rows` column is one) or a bound JS value. A column or
|
|
189
|
+
* expression is embedded as written. A value is bound and, when the element facing it on the other side is
|
|
190
|
+
* a column, converted by that column's driver mapping and cast to its SQL type (`$1::text`); facing an
|
|
191
|
+
* expression it is bound without a cast and Postgres infers its type from the other side.
|
|
192
|
+
* Throws `[pipework] row:` for fewer than two elements, for rows of unequal length, and when a row is
|
|
193
|
+
* compared with a non-row.
|
|
194
|
+
*/
|
|
195
|
+
export declare function row(...elements: RowElement[]): Row;
|
|
196
|
+
/**
|
|
197
|
+
* Row equality as the range pair `lhs >= rhs and lhs <= rhs`, for a composite-key match that must use an index.
|
|
198
|
+
* Written as `(a, b, c) = (x, y, z)` Postgres splits it into three equalities, and a join then probes the shortest
|
|
199
|
+
* index holding a and b and filters c. A row comparison is a btree index condition only on an index holding all
|
|
200
|
+
* its columns in order, so the range pair takes the index over (a, b, c) and reads only the matching rows.
|
|
201
|
+
* It equals equality for keys that are never NULL. With a NULL element a match is never true, as with
|
|
202
|
+
* equality (a NULL-bearing key does not match itself), but the result can be NULL where equality gives
|
|
203
|
+
* false, which differs only under `not(...)`; keep NULL-able columns out of the row or filter them first.
|
|
204
|
+
*/
|
|
205
|
+
export declare function rowEquals(lhs: Row, rhs: Row): SQL<boolean>;
|
|
183
206
|
export {};
|
|
184
207
|
//# sourceMappingURL=expressions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sql } from './sql.js';
|
|
2
|
-
import { bindIfParam } from '../query/index.js';
|
|
2
|
+
import { and, bindIfParam, gte, lte, Row } from '../query/index.js';
|
|
3
3
|
import { PgArray } from '../query/pg-core/index.js';
|
|
4
4
|
import { quoteCollation } from '../query/collation.js';
|
|
5
5
|
import { is } from '../query/entity.js';
|
|
@@ -367,4 +367,30 @@ export function walReplayLsn() {
|
|
|
367
367
|
export function replicaFresh(createdLsn) {
|
|
368
368
|
return sql `pg_last_wal_replay_lsn() >= ${createdLsn}::pg_lsn`;
|
|
369
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* A row constructor `(e1, e2, ...)` for comparing composite keys: `eq` / `ne` / `gt` / `gte` / `lt` / `lte`
|
|
372
|
+
* accept a row on both sides (row against row, equal length), so a composite-key join needs no `pipe.sql`:
|
|
373
|
+
* `gte(row(t.a, t.b), row(k.a, k.b))` renders `("t"."a", "t"."b") >= ("k"."a", "k"."b")`.
|
|
374
|
+
* Each element is a column, a SQL expression (a `pipe.rows` column is one) or a bound JS value. A column or
|
|
375
|
+
* expression is embedded as written. A value is bound and, when the element facing it on the other side is
|
|
376
|
+
* a column, converted by that column's driver mapping and cast to its SQL type (`$1::text`); facing an
|
|
377
|
+
* expression it is bound without a cast and Postgres infers its type from the other side.
|
|
378
|
+
* Throws `[pipework] row:` for fewer than two elements, for rows of unequal length, and when a row is
|
|
379
|
+
* compared with a non-row.
|
|
380
|
+
*/
|
|
381
|
+
export function row(...elements) {
|
|
382
|
+
return new Row(elements);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Row equality as the range pair `lhs >= rhs and lhs <= rhs`, for a composite-key match that must use an index.
|
|
386
|
+
* Written as `(a, b, c) = (x, y, z)` Postgres splits it into three equalities, and a join then probes the shortest
|
|
387
|
+
* index holding a and b and filters c. A row comparison is a btree index condition only on an index holding all
|
|
388
|
+
* its columns in order, so the range pair takes the index over (a, b, c) and reads only the matching rows.
|
|
389
|
+
* It equals equality for keys that are never NULL. With a NULL element a match is never true, as with
|
|
390
|
+
* equality (a NULL-bearing key does not match itself), but the result can be NULL where equality gives
|
|
391
|
+
* false, which differs only under `not(...)`; keep NULL-able columns out of the row or filter them first.
|
|
392
|
+
*/
|
|
393
|
+
export function rowEquals(lhs, rhs) {
|
|
394
|
+
return and(gte(lhs, rhs), lte(lhs, rhs));
|
|
395
|
+
}
|
|
370
396
|
//# sourceMappingURL=expressions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEpE,uEAAuE;AACvE,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAQ,GAAG,MAAM,MAAM,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAQ,GAAG,MAAM,MAAM,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,GAAG,CAAc,IAAkB,EAAE,KAAmB;IACtE,OAAO,GAAG,CAAG,GAAG,IAAI,MAAM,KAAK,EAAE,CAAA;AACnC,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,QAAQ,CAAc,IAAkB,EAAE,KAAmB;IAC3E,OAAO,GAAG,CAAG,GAAG,IAAI,MAAM,KAAK,EAAE,CAAA;AACnC,CAAC;AAED,8MAA8M;AAC9M,MAAM,UAAU,QAAQ,CAAI,UAAwB,EAAE,YAAe;IACnE,OAAO,GAAG,CAAG,YAAY,UAAU,KAAK,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAA;AAClF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,GAAG;IACjB,OAAO,GAAG,CAAM,OAAO,CAAA;AACzB,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,MAAM,CAAI,QAAoB;IAC5C,OAAO,GAAG,CAAG,IAAI,QAAQ,GAAG,CAAA;AAC9B,CAAC;AAKD,kDAAkD;AAClD,MAAM,UAAU,IAAI,CAAc,UAAqC,EAAE,MAAc;IACrF,OAAO,GAAG,CAAG,IAAI,UAAU,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AACpD,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,IAAO,EACP,SAAwB;IAExB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,GAAG,CAAA,IAAI,IAAI,aAAa,IAAI,EAAE,CAAA;IAC1C,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,GAAG,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;SACnD,IAAK,IAAY,CAAC,OAAO,KAAK,WAAW;QAAE,GAAG,CAAC,OAAO,CAAE,IAAY,CAAC,OAAO,CAAC,CAAA;IAClF,OAAO,GAAY,CAAA;AACrB,CAAC;AAED,MAAM,sBAAsB,GAA2C;IACrE,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,MAAM;CACd,CAAA;AAED,4JAA4J;AAC5J,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAkB;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,MAAM,CAAC,MAAM,CAAC,OAAO;YACzE,sDAAsD;YACtD,wDAAwD,CACzD,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA,IAAI,MAAM,oCAAoC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA;AACnG,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,CAAM,mBAAmB,CAAA;AACrC,CAAC;AAKD,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AACxE,CAAC;AAED,SAAS,MAAM,CAAC,KAA4B;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AACvE,CAAC;AAED,sJAAsJ;AACtJ,MAAM,UAAU,MAAM,CAAC,CAAU,EAAE,CAAU;IAC3C,OAAO,GAAG,CAAQ,UAAU,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1D,CAAC;AAED,uHAAuH;AACvH,MAAM,UAAU,YAAY,CAAC,CAAU,EAAE,CAAU;IACjD,OAAO,GAAG,CAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;AAC1C,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,MAAe;IACpD,OAAO,GAAG,CAAS,eAAe,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;AACrE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,CAAwB;IACvD,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,KAAK,CAAC,CAAU,EAAE,CAAwB;IACxD,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACxD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,GAAG,CAAQ,UAAU,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,IAAY;IAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,6BAA6B,IAAI,SAAS,MAAM,CAAC,KAAK,CAAC,OAAO;YAClF,oEAAoE;YACpE,2BAA2B,MAAM,aAAa,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAA4B,EAAE,MAAc,EAAE,IAAY;IAC/E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AAClG,CAAC;AAED,4JAA4J;AAC5J,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,SAAiB,EAAE,CAAwB;IAC/E,OAAO,GAAG,CAAQ,cAAc,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,WAAW,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAA;AACrH,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AAKhF,uJAAuJ;AACvJ,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,UAAsE,EAAE;IACvG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAA;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,uEAAuE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC1F,6CAA6C,CAC9C,CAAA;IACH,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;IACxF,OAAO,GAAG,CAAQ,QAAQ,EAAE,IAAI,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAChF,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,OAAO,CAAC,CAAU,EAAE,IAAa,EAAE,EAAW;IAC5D,OAAO,GAAG,CAAQ,WAAW,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,GAAG,CAAA;AAC9E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,IAA2B,EAAE,KAA6B;IAC9F,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,aAAa,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAA;IAC/E,OAAO,GAAG,CAAQ,aAAa,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAA;AACvG,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,GAAG,CAAQ,WAAW,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC5C,CAAC;AAED,iIAAiI;AACjI,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,MAA6B,EAAE,IAAa;IAC3E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA;IACvE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;AAChE,CAAC;AAED,kIAAkI;AAClI,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,MAA6B,EAAE,IAAa;IAC3E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA;IACvE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;AAChE,CAAC;AAED,6JAA6J;AAC7J,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAc;IAC5F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,kBAAkB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,WAAW,SAAS,CAAA;IAClH,OAAO,GAAG,CAAQ,kBAAkB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,WAAW,WAAW,KAAK,SAAS,CAAA;AAC3G,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,OAAe,EAAE,UAAkD,EAAE;IAC3G,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1E,OAAO,GAAG,CAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,QAAQ,CAAA;AAC3D,CAAC;AAED,gIAAgI;AAChI,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,SAAiB;IACzD,OAAO,GAAG,CAAU,mBAAmB,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,SAAS,CAAA;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,GAAG,KAAmC;IAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,qDAAqD,KAAK,CAAC,MAAM,OAAO;YACxE,qEAAqE;YACrE,8DAA8D,CAC/D,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA,MAAM,CAAC,GAAG,CAAA;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAc;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,kCAAkC,MAAM,CAAC,IAAI,aAAa,IAAI,OAAO;YACzF,8EAA8E;YAC9E,oEAAoE,MAAM,OAAO,CAClF,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC1B,CAAC;AAED,yGAAyG;AACzG,SAAS,OAAO,CAAC,GAAW,EAAE,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,IAAI,GAAI,GAA4E,CAAC,UAAU,CAAA;IACrG,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9E,CAAC;AAID,2JAA2J;AAC3J,MAAM,UAAU,YAAY,CAAmB,GAAM,EAAE,IAAkB,EAAE,EAAgB;IACzF,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;IACpD,OAAO,GAAG,CAAgB,iBAAiB,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAA;AAC7G,CAAC;AAgBD,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAc;IAClD,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;QAAE,OAAO,GAAG,CAAS,GAAG,KAAK,UAAU,GAAG,GAAG,CAAA;IAClG,OAAO,GAAG,CAAS,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAA;AAClE,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC3C,OAAO,GAAG,CAAe,eAAe,GAAG,GAAG,CAAA;AAChD,CAAC;AAQD,MAAM,UAAU,OAAO,CAAC,GAAiB,EAAE,CAAS;IAClD,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;IACpE,OAAO,GAAG,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAA;AACjC,CAAC;AAED,qJAAqJ;AACrJ,MAAM,UAAU,aAAa,CAAmB,GAAM,EAAE,KAAmB;IACzE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAA;IACrD,OAAO,GAAG,CAAe,kBAAkB,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAA;AAClF,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,UAAU,CAAmB,GAAM,EAAE,IAAY,EAAE,EAAU;IAC3E,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IACxC,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,GAAG,CAAgB,IAAI,GAAG,MAAM,IAAI,WAAW,EAAE,SAAS,CAAA;AACnE,CAAC;AAED,uHAAuH;AACvH,MAAM,UAAU,aAAa,CAAC,GAAiB,EAAE,SAAiB;IAChE,OAAO,GAAG,CAAQ,mBAAmB,GAAG,KAAK,SAAS,SAAS,CAAA;AACjE,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,WAAW,CAAmB,GAAM,EAAE,KAAmB;IACvE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAgB,gBAAgB,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAA;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAmB,IAAO,EAAE,GAAG,QAA4C;IAChG,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACnG,OAAO,GAAG,CAAgB,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,MAAM,EAAE,IAAI,CAAA;AAC7F,CAAC;AAED,mIAAmI;AACnI,MAAM,UAAU,WAAW,CAAmB,GAAM,EAAE,KAAmB;IACvE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAgB,gBAAgB,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAA;AACjF,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,IAA0J,EAAE,MAAoB;IACxM,OAAO,GAAG,CAAM,eAAe,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,CAAA;AAC7D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAQ,cAAc,CAAA;AAClC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,IAAI;IAClB,OAAO,GAAG,CAAQ,QAAQ,CAAA;AAC5B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAQ,cAAc,CAAA;AAClC,CAAC;AAmBD,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,KAAK,KAAK,oBAAoB;QAAE,OAAO,qBAAqB,CAAA;IAChE,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,aAAa,CAAA;IAChD,IAAI,KAAK,KAAK,oBAAoB;QAAE,OAAO,qBAAqB,CAAA;IAChE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAU,CAAA;IACzH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,wCAAwC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzH,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,CAAA;AACtB,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,IAAI,CAAI,EAAU,EAAE,IAAgB;IAClD,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACpF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,gBAAgB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAA,IAAI,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACvC,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,UAAU,CAAC,KAAK,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,EAAE,CAAA;QAC/H,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAG,GAAG,EAAE,UAAU,CAAA;IACpD,OAAO,GAAG,CAAG,GAAG,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA,GAAG,CAAC,GAAG,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAG,IAAc;IACzD,IAAI,SAAS,GAAG,GAAG,CAAA,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,SAAS,GAAG,GAAG,CAAA,GAAG,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;IACvD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,4IAA4I;AAC5I,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,IAAS,EAAE,IAAS,EAAE,UAAgB;IACjF,MAAM,GAAG,GAAG,GAAG,CAAA,kBAAkB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,cAAc,IAAI,GAAG,CAAA;IACvF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAA,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA,GAAG,GAAG,kBAAkB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;AAC3D,CAAC;AAQD,qIAAqI;AACrI,MAAM,UAAU,QAAQ,CAAc,QAAsC,EAAE,SAA+B;IAC3G,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,yDAAyD;YACzD,8DAA8D;YAC9D,8FAA8F,CAC/F,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAU,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,QAAQ,SAAS,EAAE,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,CAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA,GAAG,CAAC,MAAM,CAAA;AACpD,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,CAAQ,4BAA4B,CAAA;AAChD,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,CAAe,gCAAgC,CAAA;AAC3D,CAAC;AAED,2LAA2L;AAC3L,MAAM,UAAU,YAAY,CAAC,UAAiC;IAC5D,OAAO,GAAG,CAAgB,+BAA+B,UAAU,UAAU,CAAA;AAC/E,CAAC"}
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"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"}
|
package/dist/data/db/filter.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { and, arrayContained, arrayContains, arrayOverlaps, asc, between, desc, exists, ilike, inArray, is, isNotNull, isNull, like, not, notBetween, notExists, notIlike, notInArray, notLike, or } from '../query/index.js';
|
|
2
2
|
import { countAgg, countDistinctAgg, sumAgg, sumDistinctAgg, avgAgg, avgDistinctAgg, maxAgg, minAgg, boolAnd, boolOr, arrayAgg, stringAgg, jsonbAgg, jsonbObjectAgg, jsonbBuildObject } from './aggregates.js';
|
|
3
|
-
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
|
|
3
|
+
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, row, rowEquals, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
|
|
4
4
|
import { ago, castUuid, castJsonb, castTimestamp, castBoolean, castNumeric, castInteger, castText, nextSequence } from './composed.js';
|
|
5
5
|
import { json as jsonbExtract, pathText as jsonbExtractText, contains as jsonbContains, merge as jsonbMerge, concat as jsonbConcat, remove as jsonbRemove } from '../jsonb/query.js';
|
|
6
6
|
import { arrayAny, arrayAll, jsonbElements } from './array-elements.js';
|
|
@@ -93,6 +93,8 @@ export declare const filter: {
|
|
|
93
93
|
readonly arrayToString: typeof arrayToString;
|
|
94
94
|
readonly arrayAppend: typeof arrayAppend;
|
|
95
95
|
readonly arrayOf: typeof arrayOf;
|
|
96
|
+
readonly row: typeof row;
|
|
97
|
+
readonly rowEquals: typeof rowEquals;
|
|
96
98
|
readonly arrayRemove: typeof arrayRemove;
|
|
97
99
|
readonly dateTrunc: typeof dateTrunc;
|
|
98
100
|
readonly rowNumber: typeof rowNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAM,MAAM,EACjF,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAe,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC9F,UAAU,EAAE,OAAO,EAAE,EAAE,EACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAE9M,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAM,MAAM,EACjF,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAe,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC9F,UAAU,EAAE,OAAO,EAAE,EAAE,EACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAE9M,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAChkB,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtI,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,QAAQ,IAAI,gBAAgB,EAAE,QAAQ,IAAI,aAAa,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpL,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFT,CAAA"}
|
package/dist/data/db/filter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { and, arrayContained, arrayContains, arrayOverlaps, asc, between, desc, eq, exists, gt, gte, ilike, inArray, is, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or, } from '../query/index.js';
|
|
2
2
|
import { countAgg, countDistinctAgg, sumAgg, sumDistinctAgg, avgAgg, avgDistinctAgg, maxAgg, minAgg, boolAnd, boolOr, arrayAgg, stringAgg, jsonbAgg, jsonbObjectAgg, jsonbBuildObject } from './aggregates.js';
|
|
3
3
|
import { except, exceptAll, intersect, intersectAll, union, unionAll } from '../query/pg-core/index.js';
|
|
4
|
-
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
|
|
4
|
+
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, row, rowEquals, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
|
|
5
5
|
import { ago, castUuid, castJsonb, castTimestamp, castBoolean, castNumeric, castInteger, castText, nextSequence } from './composed.js';
|
|
6
6
|
import { json as jsonbExtract, pathText as jsonbExtractText, contains as jsonbContains, merge as jsonbMerge, concat as jsonbConcat, remove as jsonbRemove } from '../jsonb/query.js';
|
|
7
7
|
import { arrayAny, arrayAll, jsonbElements } from './array-elements.js';
|
|
@@ -52,6 +52,8 @@ export const filter = {
|
|
|
52
52
|
arrayToString,
|
|
53
53
|
arrayAppend,
|
|
54
54
|
arrayOf,
|
|
55
|
+
row,
|
|
56
|
+
rowEquals,
|
|
55
57
|
arrayRemove,
|
|
56
58
|
dateTrunc,
|
|
57
59
|
rowNumber,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAC1F,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC9F,UAAU,EAAE,OAAO,EAAE,EAAE,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC9M,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACvG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,8 @@ export declare const pipe: typeof getDb & {
|
|
|
113
113
|
readonly arrayToString: typeof import("./expressions.js").arrayToString;
|
|
114
114
|
readonly arrayAppend: typeof import("./expressions.js").arrayAppend;
|
|
115
115
|
readonly arrayOf: typeof import("./expressions.js").arrayOf;
|
|
116
|
+
readonly row: typeof import("./expressions.js").row;
|
|
117
|
+
readonly rowEquals: typeof import("./expressions.js").rowEquals;
|
|
116
118
|
readonly arrayRemove: typeof import("./expressions.js").arrayRemove;
|
|
117
119
|
readonly dateTrunc: typeof import("./expressions.js").dateTrunc;
|
|
118
120
|
readonly rowNumber: typeof import("./expressions.js").rowNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6QAA6Q;;IAG7Q,6EAA6E
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6QAA6Q;;IAG7Q,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E,2oBAA2oB;;IAG3oB,+RAA+R;;;;;;;;;;;;;IAkB/R,oDAAoD;;IAEpD,mDAAmD;;IAGnD,6EAA6E;;IAG7E,gFAAgF;;IAGhF,qHAAqH;;IAGrH,kHAAkH;;IAGlH,oMAAoM;;IAGpM,2GAA2G;;IAG3G,0GAA0G;;IAG1G,uVAAuV;;IAGvV,uNAAuN;;IAGvN,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;IAE9E,qMAAqM;;IAErM,6DAA6D;;IAE7D,+LAA+L;;IAG/L,2GAA2G;;IAE3G,kNAAkN;;IAElN,gHAAgH;;IAEhH,kQAAkQ;;CAElQ,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type AnyColumn, Column, type GetColumnData } from '../../column.js';
|
|
2
2
|
import type { AcceptReadonly } from '../../../db/readonly.js';
|
|
3
|
+
import { Row } from './row.js';
|
|
3
4
|
import { Placeholder, SQL, type SQLChunk, type SQLWrapper } from '../sql.js';
|
|
4
5
|
export declare function bindIfParam(value: unknown, column: SQLWrapper): SQLChunk;
|
|
5
6
|
export interface BinaryOperator {
|
|
7
|
+
(left: Row, right: Row): SQL;
|
|
6
8
|
<TColumn extends Column>(left: TColumn, right: GetColumnData<TColumn, 'raw'> | SQLWrapper): SQL;
|
|
7
9
|
<T>(left: SQL.Aliased<T>, right: T | SQLWrapper): SQL;
|
|
8
10
|
<T extends SQLWrapper>(left: Exclude<T, SQL.Aliased | Column>, right: unknown): SQL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAIN,WAAW,EACX,GAAG,EAEH,KAAK,QAAQ,EACb,KAAK,UAAU,EAGf,MAAM,WAAW,CAAC;AAEnB,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,CAaxE;AAED,MAAM,WAAW,cAAc;IAC9B,CAAC,OAAO,SAAS,MAAM,EACtB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,UAAU,GAC/C,GAAG,CAAC;IACP,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;IACtD,CAAC,CAAC,SAAS,UAAU,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,EACtC,KAAK,EAAE,OAAO,GACZ,GAAG,CAAC;CACP;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Column } from '../../column.js';
|
|
2
2
|
import { is } from '../../entity.js';
|
|
3
3
|
import { Table } from '../../table.js';
|
|
4
|
+
import { isRow, Row, rowCompare } from './row.js';
|
|
4
5
|
import { isDriverValueEncoder, isSQLWrapper, Param, Placeholder, SQL, sql, StringChunk, View, } from '../sql.js';
|
|
5
6
|
export function bindIfParam(value, column) {
|
|
6
7
|
if (isDriverValueEncoder(column)
|
|
@@ -33,6 +34,8 @@ export function bindIfParam(value, column) {
|
|
|
33
34
|
* @see isNull for a way to test equality to NULL.
|
|
34
35
|
*/
|
|
35
36
|
export const eq = (left, right) => {
|
|
37
|
+
if (isRow(left) || isRow(right))
|
|
38
|
+
return rowCompare(left, '=', right);
|
|
36
39
|
return sql `${left} = ${bindIfParam(right, left)}`;
|
|
37
40
|
};
|
|
38
41
|
/**
|
|
@@ -54,6 +57,8 @@ export const eq = (left, right) => {
|
|
|
54
57
|
* @see isNotNull for a way to test whether a value is not null.
|
|
55
58
|
*/
|
|
56
59
|
export const ne = (left, right) => {
|
|
60
|
+
if (isRow(left) || isRow(right))
|
|
61
|
+
return rowCompare(left, '<>', right);
|
|
57
62
|
return sql `${left} <> ${bindIfParam(right, left)}`;
|
|
58
63
|
};
|
|
59
64
|
export function and(...unfilteredConditions) {
|
|
@@ -113,6 +118,8 @@ export function not(condition) {
|
|
|
113
118
|
* @see gte for greater-than-or-equal
|
|
114
119
|
*/
|
|
115
120
|
export const gt = (left, right) => {
|
|
121
|
+
if (isRow(left) || isRow(right))
|
|
122
|
+
return rowCompare(left, '>', right);
|
|
116
123
|
return sql `${left} > ${bindIfParam(right, left)}`;
|
|
117
124
|
};
|
|
118
125
|
/**
|
|
@@ -132,6 +139,8 @@ export const gt = (left, right) => {
|
|
|
132
139
|
* @see gt for a strictly greater-than condition
|
|
133
140
|
*/
|
|
134
141
|
export const gte = (left, right) => {
|
|
142
|
+
if (isRow(left) || isRow(right))
|
|
143
|
+
return rowCompare(left, '>=', right);
|
|
135
144
|
return sql `${left} >= ${bindIfParam(right, left)}`;
|
|
136
145
|
};
|
|
137
146
|
/**
|
|
@@ -149,6 +158,8 @@ export const gte = (left, right) => {
|
|
|
149
158
|
* @see lte for less-than-or-equal
|
|
150
159
|
*/
|
|
151
160
|
export const lt = (left, right) => {
|
|
161
|
+
if (isRow(left) || isRow(right))
|
|
162
|
+
return rowCompare(left, '<', right);
|
|
152
163
|
return sql `${left} < ${bindIfParam(right, left)}`;
|
|
153
164
|
};
|
|
154
165
|
/**
|
|
@@ -166,6 +177,8 @@ export const lt = (left, right) => {
|
|
|
166
177
|
* @see lt for a strictly less-than condition
|
|
167
178
|
*/
|
|
168
179
|
export const lte = (left, right) => {
|
|
180
|
+
if (isRow(left) || isRow(right))
|
|
181
|
+
return rowCompare(left, '<=', right);
|
|
169
182
|
return sql `${left} <= ${bindIfParam(right, left)}`;
|
|
170
183
|
};
|
|
171
184
|
export function inArray(column, values) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAAsB,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACN,oBAAoB,EACpB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,GAAG,EACH,GAAG,EAGH,WAAW,EACX,IAAI,GACJ,MAAM,WAAW,CAAC;AAEnB,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,MAAkB;IAC7D,IACC,oBAAoB,CAAC,MAAM,CAAC;WACzB,CAAC,YAAY,CAAC,KAAK,CAAC;WACpB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;WACjB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;WACvB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;WAClB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;WACjB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAClB,CAAC;QACF,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAiB,CAAC;AAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Column } from '../../column.js';
|
|
2
|
+
import { type SQL, type SQLWrapper } from '../sql.js';
|
|
3
|
+
/** One element of a row: a column, a SQL expression (a `pipe.rows` column is one), or a bound JS value. */
|
|
4
|
+
export type RowElement = Column | SQLWrapper | string | number | bigint | boolean | Date | null;
|
|
5
|
+
/**
|
|
6
|
+
* A row constructor `(e1, e2, ...)` built by `filter.row`. Compare it with another row through
|
|
7
|
+
* `eq` / `ne` / `gt` / `gte` / `lt` / `lte`; on its own it renders with its values bound uncast.
|
|
8
|
+
*/
|
|
9
|
+
export declare class Row implements SQLWrapper {
|
|
10
|
+
readonly elements: readonly RowElement[];
|
|
11
|
+
constructor(elements: readonly RowElement[]);
|
|
12
|
+
/** The row as `(e1, e2, ...)`. A value is cast to the type of `peers[i]` when that is a column. */
|
|
13
|
+
render(peers?: readonly RowElement[]): SQL;
|
|
14
|
+
getSQL(): SQL;
|
|
15
|
+
}
|
|
16
|
+
export declare function isRow(value: unknown): value is Row;
|
|
17
|
+
/** Renders `left <op> right` for two rows, binding each value with the type of the column facing it. */
|
|
18
|
+
export declare function rowCompare(left: unknown, op: string, right: unknown): SQL;
|
|
19
|
+
//# sourceMappingURL=row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAA4B,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhF,2GAA2G;AAC3G,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhG;;;GAGG;AACH,qBAAa,GAAI,YAAW,UAAU;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;gBAE7B,QAAQ,EAAE,SAAS,UAAU,EAAE;IAW3C,mGAAmG;IACnG,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG;IAY1C,MAAM,IAAI,GAAG;CAGb;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAElD;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAczE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Column } from '../../column.js';
|
|
2
|
+
import { is } from '../../entity.js';
|
|
3
|
+
import { isSQLWrapper, Param, sql } from '../sql.js';
|
|
4
|
+
/**
|
|
5
|
+
* A row constructor `(e1, e2, ...)` built by `filter.row`. Compare it with another row through
|
|
6
|
+
* `eq` / `ne` / `gt` / `gte` / `lt` / `lte`; on its own it renders with its values bound uncast.
|
|
7
|
+
*/
|
|
8
|
+
export class Row {
|
|
9
|
+
elements;
|
|
10
|
+
constructor(elements) {
|
|
11
|
+
if (elements.length < 2) {
|
|
12
|
+
throw new Error(`[pipework] row: a row needs at least two elements, got ${elements.length}.\n\n`
|
|
13
|
+
+ ' A one-element row is just its element.\n'
|
|
14
|
+
+ ' Fix: pass two or more elements to row(), or compare the element directly.\n');
|
|
15
|
+
}
|
|
16
|
+
this.elements = elements;
|
|
17
|
+
}
|
|
18
|
+
/** The row as `(e1, e2, ...)`. A value is cast to the type of `peers[i]` when that is a column. */
|
|
19
|
+
render(peers) {
|
|
20
|
+
const parts = this.elements.map((e, i) => {
|
|
21
|
+
if (is(e, Column) || isSQLWrapper(e))
|
|
22
|
+
return sql `${e}`;
|
|
23
|
+
const peer = peers?.[i];
|
|
24
|
+
if (peer !== undefined && is(peer, Column)) {
|
|
25
|
+
return sql `${new Param(e, peer)}::${sql.raw(peer.getSQLType())}`;
|
|
26
|
+
}
|
|
27
|
+
return sql `${new Param(e)}`;
|
|
28
|
+
});
|
|
29
|
+
return sql `(${sql.join(parts, sql `, `)})`;
|
|
30
|
+
}
|
|
31
|
+
getSQL() {
|
|
32
|
+
return this.render();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function isRow(value) {
|
|
36
|
+
return value instanceof Row;
|
|
37
|
+
}
|
|
38
|
+
/** Renders `left <op> right` for two rows, binding each value with the type of the column facing it. */
|
|
39
|
+
export function rowCompare(left, op, right) {
|
|
40
|
+
if (!isRow(left) || !isRow(right)) {
|
|
41
|
+
throw new Error(`[pipework] row: a row can only be compared with another row (${isRow(left) ? 'right' : 'left'} side is not one).\n\n`
|
|
42
|
+
+ ' Fix: build both sides with row(...), for example eq(row(t.a, t.b), row(k.a, k.b)).\n');
|
|
43
|
+
}
|
|
44
|
+
if (left.elements.length !== right.elements.length) {
|
|
45
|
+
throw new Error(`[pipework] row: the rows differ in length (${left.elements.length} and ${right.elements.length}).\n\n`
|
|
46
|
+
+ ' Fix: give both sides the same number of elements.\n');
|
|
47
|
+
}
|
|
48
|
+
return sql `${left.render(right.elements)} ${sql.raw(op)} ${right.render(left.elements)}`;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../../../../src/data/query/sql/expressions/row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAA6B,MAAM,WAAW,CAAC;AAKhF;;;GAGG;AACH,MAAM,OAAO,GAAG;IACN,QAAQ,CAAwB;IAEzC,YAAY,QAA+B;QAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACd,0DAA0D,QAAQ,CAAC,MAAM,OAAO;kBAC7E,4CAA4C;kBAC5C,+EAA+E,CAClF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,mGAAmG;IACnG,MAAM,CAAC,KAA6B;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,CAAA,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YAClE,CAAC;YACD,OAAO,GAAG,CAAA,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAA,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA,IAAI,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;CACD;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,GAAG,CAAC;AAC7B,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,UAAU,CAAC,IAAa,EAAE,EAAU,EAAE,KAAc;IACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACd,gEAAgE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,wBAAwB;cACnH,wFAAwF,CAC3F,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACd,8CAA8C,IAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,KAAK,CAAC,QAAQ,CAAC,MAAM,QAAQ;cACpG,uDAAuD,CAC1D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { sql } from './sql.js'
|
|
2
2
|
import type { SQL, Column } from './types.js'
|
|
3
3
|
import type { SQLWrapper } from '../query/sql/sql.js'
|
|
4
|
-
import { bindIfParam } from '../query/index.js'
|
|
4
|
+
import { and, bindIfParam, gte, lte, Row, type RowElement } from '../query/index.js'
|
|
5
5
|
import { PgArray } from '../query/pg-core/index.js'
|
|
6
6
|
import { quoteCollation, type CollationName } from '../query/collation.js'
|
|
7
7
|
import { is } from '../query/entity.js'
|
|
@@ -486,3 +486,31 @@ export function walReplayLsn(): SQL<string | null> {
|
|
|
486
486
|
export function replicaFresh(createdLsn: string | Column | SQL): SQL<boolean | null> {
|
|
487
487
|
return sql<boolean | null>`pg_last_wal_replay_lsn() >= ${createdLsn}::pg_lsn`
|
|
488
488
|
}
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* A row constructor `(e1, e2, ...)` for comparing composite keys: `eq` / `ne` / `gt` / `gte` / `lt` / `lte`
|
|
492
|
+
* accept a row on both sides (row against row, equal length), so a composite-key join needs no `pipe.sql`:
|
|
493
|
+
* `gte(row(t.a, t.b), row(k.a, k.b))` renders `("t"."a", "t"."b") >= ("k"."a", "k"."b")`.
|
|
494
|
+
* Each element is a column, a SQL expression (a `pipe.rows` column is one) or a bound JS value. A column or
|
|
495
|
+
* expression is embedded as written. A value is bound and, when the element facing it on the other side is
|
|
496
|
+
* a column, converted by that column's driver mapping and cast to its SQL type (`$1::text`); facing an
|
|
497
|
+
* expression it is bound without a cast and Postgres infers its type from the other side.
|
|
498
|
+
* Throws `[pipework] row:` for fewer than two elements, for rows of unequal length, and when a row is
|
|
499
|
+
* compared with a non-row.
|
|
500
|
+
*/
|
|
501
|
+
export function row(...elements: RowElement[]): Row {
|
|
502
|
+
return new Row(elements)
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Row equality as the range pair `lhs >= rhs and lhs <= rhs`, for a composite-key match that must use an index.
|
|
507
|
+
* Written as `(a, b, c) = (x, y, z)` Postgres splits it into three equalities, and a join then probes the shortest
|
|
508
|
+
* index holding a and b and filters c. A row comparison is a btree index condition only on an index holding all
|
|
509
|
+
* its columns in order, so the range pair takes the index over (a, b, c) and reads only the matching rows.
|
|
510
|
+
* It equals equality for keys that are never NULL. With a NULL element a match is never true, as with
|
|
511
|
+
* equality (a NULL-bearing key does not match itself), but the result can be NULL where equality gives
|
|
512
|
+
* false, which differs only under `not(...)`; keep NULL-able columns out of the row or filter them first.
|
|
513
|
+
*/
|
|
514
|
+
export function rowEquals(lhs: Row, rhs: Row): SQL<boolean> {
|
|
515
|
+
return and(gte(lhs, rhs), lte(lhs, rhs)) as SQL<boolean>
|
|
516
|
+
}
|
package/src/data/db/filter.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from '../query/index.js'
|
|
6
6
|
import { countAgg, countDistinctAgg, sumAgg, sumDistinctAgg, avgAgg, avgDistinctAgg, maxAgg, minAgg, boolAnd, boolOr, arrayAgg, stringAgg, jsonbAgg, jsonbObjectAgg, jsonbBuildObject } from './aggregates.js'
|
|
7
7
|
import { except, exceptAll, intersect, intersectAll, union, unionAll } from '../query/pg-core/index.js'
|
|
8
|
-
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js'
|
|
8
|
+
import { increment, decrement, add, subtract, coalesce, now, scalar, cast, collate, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayOf, row, rowEquals, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js'
|
|
9
9
|
import { ago, castUuid, castJsonb, castTimestamp, castBoolean, castNumeric, castInteger, castText, nextSequence } from './composed.js'
|
|
10
10
|
import { json as jsonbExtract, pathText as jsonbExtractText, contains as jsonbContains, merge as jsonbMerge, concat as jsonbConcat, remove as jsonbRemove } from '../jsonb/query.js'
|
|
11
11
|
import { arrayAny, arrayAll, jsonbElements } from './array-elements.js'
|
|
@@ -57,6 +57,8 @@ export const filter = {
|
|
|
57
57
|
arrayToString,
|
|
58
58
|
arrayAppend,
|
|
59
59
|
arrayOf,
|
|
60
|
+
row,
|
|
61
|
+
rowEquals,
|
|
60
62
|
arrayRemove,
|
|
61
63
|
dateTrunc,
|
|
62
64
|
rowNumber,
|
|
@@ -2,6 +2,7 @@ import { type AnyColumn, Column, type GetColumnData } from '../../column.js';
|
|
|
2
2
|
import type { AcceptReadonly } from '../../../db/readonly.js';
|
|
3
3
|
import { is } from '../../entity.js';
|
|
4
4
|
import { Table } from '../../table.js';
|
|
5
|
+
import { isRow, Row, rowCompare } from './row.js';
|
|
5
6
|
import {
|
|
6
7
|
isDriverValueEncoder,
|
|
7
8
|
isSQLWrapper,
|
|
@@ -31,6 +32,7 @@ export function bindIfParam(value: unknown, column: SQLWrapper): SQLChunk {
|
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export interface BinaryOperator {
|
|
35
|
+
(left: Row, right: Row): SQL;
|
|
34
36
|
<TColumn extends Column>(
|
|
35
37
|
left: TColumn,
|
|
36
38
|
right: GetColumnData<TColumn, 'raw'> | SQLWrapper,
|
|
@@ -61,6 +63,7 @@ export interface BinaryOperator {
|
|
|
61
63
|
* @see isNull for a way to test equality to NULL.
|
|
62
64
|
*/
|
|
63
65
|
export const eq: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
66
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '=', right);
|
|
64
67
|
return sql`${left} = ${bindIfParam(right, left)}`;
|
|
65
68
|
};
|
|
66
69
|
|
|
@@ -83,6 +86,7 @@ export const eq: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
|
83
86
|
* @see isNotNull for a way to test whether a value is not null.
|
|
84
87
|
*/
|
|
85
88
|
export const ne: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
89
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '<>', right);
|
|
86
90
|
return sql`${left} <> ${bindIfParam(right, left)}`;
|
|
87
91
|
};
|
|
88
92
|
|
|
@@ -194,6 +198,7 @@ export function not(condition: SQLWrapper): SQL {
|
|
|
194
198
|
* @see gte for greater-than-or-equal
|
|
195
199
|
*/
|
|
196
200
|
export const gt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
201
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '>', right);
|
|
197
202
|
return sql`${left} > ${bindIfParam(right, left)}`;
|
|
198
203
|
};
|
|
199
204
|
|
|
@@ -214,6 +219,7 @@ export const gt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
|
214
219
|
* @see gt for a strictly greater-than condition
|
|
215
220
|
*/
|
|
216
221
|
export const gte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
222
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '>=', right);
|
|
217
223
|
return sql`${left} >= ${bindIfParam(right, left)}`;
|
|
218
224
|
};
|
|
219
225
|
|
|
@@ -232,6 +238,7 @@ export const gte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
|
232
238
|
* @see lte for less-than-or-equal
|
|
233
239
|
*/
|
|
234
240
|
export const lt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
241
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '<', right);
|
|
235
242
|
return sql`${left} < ${bindIfParam(right, left)}`;
|
|
236
243
|
};
|
|
237
244
|
|
|
@@ -250,6 +257,7 @@ export const lt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
|
250
257
|
* @see lt for a strictly less-than condition
|
|
251
258
|
*/
|
|
252
259
|
export const lte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {
|
|
260
|
+
if (isRow(left) || isRow(right)) return rowCompare(left, '<=', right);
|
|
253
261
|
return sql`${left} <= ${bindIfParam(right, left)}`;
|
|
254
262
|
};
|
|
255
263
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Column } from '../../column.js';
|
|
2
|
+
import { is } from '../../entity.js';
|
|
3
|
+
import { isSQLWrapper, Param, sql, type SQL, type SQLWrapper } from '../sql.js';
|
|
4
|
+
|
|
5
|
+
/** One element of a row: a column, a SQL expression (a `pipe.rows` column is one), or a bound JS value. */
|
|
6
|
+
export type RowElement = Column | SQLWrapper | string | number | bigint | boolean | Date | null;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A row constructor `(e1, e2, ...)` built by `filter.row`. Compare it with another row through
|
|
10
|
+
* `eq` / `ne` / `gt` / `gte` / `lt` / `lte`; on its own it renders with its values bound uncast.
|
|
11
|
+
*/
|
|
12
|
+
export class Row implements SQLWrapper {
|
|
13
|
+
readonly elements: readonly RowElement[];
|
|
14
|
+
|
|
15
|
+
constructor(elements: readonly RowElement[]) {
|
|
16
|
+
if (elements.length < 2) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
`[pipework] row: a row needs at least two elements, got ${elements.length}.\n\n`
|
|
19
|
+
+ ' A one-element row is just its element.\n'
|
|
20
|
+
+ ' Fix: pass two or more elements to row(), or compare the element directly.\n',
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
this.elements = elements;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** The row as `(e1, e2, ...)`. A value is cast to the type of `peers[i]` when that is a column. */
|
|
27
|
+
render(peers?: readonly RowElement[]): SQL {
|
|
28
|
+
const parts = this.elements.map((e, i) => {
|
|
29
|
+
if (is(e, Column) || isSQLWrapper(e)) return sql`${e}`;
|
|
30
|
+
const peer = peers?.[i];
|
|
31
|
+
if (peer !== undefined && is(peer, Column)) {
|
|
32
|
+
return sql`${new Param(e, peer)}::${sql.raw(peer.getSQLType())}`;
|
|
33
|
+
}
|
|
34
|
+
return sql`${new Param(e)}`;
|
|
35
|
+
});
|
|
36
|
+
return sql`(${sql.join(parts, sql`, `)})`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getSQL(): SQL {
|
|
40
|
+
return this.render();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function isRow(value: unknown): value is Row {
|
|
45
|
+
return value instanceof Row;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Renders `left <op> right` for two rows, binding each value with the type of the column facing it. */
|
|
49
|
+
export function rowCompare(left: unknown, op: string, right: unknown): SQL {
|
|
50
|
+
if (!isRow(left) || !isRow(right)) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`[pipework] row: a row can only be compared with another row (${isRow(left) ? 'right' : 'left'} side is not one).\n\n`
|
|
53
|
+
+ ' Fix: build both sides with row(...), for example eq(row(t.a, t.b), row(k.a, k.b)).\n',
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (left.elements.length !== right.elements.length) {
|
|
57
|
+
throw new Error(
|
|
58
|
+
`[pipework] row: the rows differ in length (${left.elements.length} and ${right.elements.length}).\n\n`
|
|
59
|
+
+ ' Fix: give both sides the same number of elements.\n',
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return sql`${left.render(right.elements)} ${sql.raw(op)} ${right.render(left.elements)}`;
|
|
63
|
+
}
|