joist-orm 2.3.0-next.31 → 2.3.0-next.32

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.
@@ -6,6 +6,28 @@ export interface PostgresDriverOpts {
6
6
  preloadPlugin?: PreloadPlugin;
7
7
  /** Called after each query is executed, useful for testing/debugging. */
8
8
  onQuery?: (sql: string) => void;
9
+ /**
10
+ * Experimental: keeps entity find results as raw wire bytes and decodes each row/column cell
11
+ * lazily on field access, instead of eagerly materializing POJO rows.
12
+ *
13
+ * Applies to unpaginated `em.find`, `em.load`, and o2m/o2o/recursive relation loads against
14
+ * the pure-JS pg client. Other loaders deliberately stay classic: paginated finds (small
15
+ * pages, measured neutral), m2m join-table rows (narrow + fully read, where materialized rows
16
+ * measured faster, and `JoinRows` owns/mutates them), lazy columns, and id/count loaders.
17
+ *
18
+ * Lazy queries also request *binary* result format (prototype), decoding int/bool/float/text
19
+ * cells — and, via the fast paths `setupLatestPgTypes` registers, date/timestamptz cells —
20
+ * wire-bytes -> value with no intermediate strings; numeric/exotic cells render to pg's
21
+ * canonical text and reuse the active text parsers for parity. `JOIST_LAZY_BINARY=0`
22
+ * reverts lazy queries to text-format results. It
23
+ * uses classic rows when the choice is knowable up-front (patching pg-protocol failed, or the
24
+ * client is unsupported, i.e. pg-native — both warn once). If a connection turns out
25
+ * mid-query to use an unpatched pg-protocol copy (a duplicate `pg` install), the query fails
26
+ * with a descriptive error — a misconfiguration CI builds/smoketests will catch immediately.
27
+ * Note deferred decoding also defers custom-parser errors from `await em.find` to first field
28
+ * access. See JS-ROW-STORE-DESIGN.md.
29
+ */
30
+ lazyRows?: boolean;
9
31
  }
10
32
  /**
11
33
  * Implements the `Driver` interface for Postgres.
@@ -24,6 +46,9 @@ export interface PostgresDriverOpts {
24
46
  export declare class PostgresDriver implements Driver<pg.PoolClient> {
25
47
  #private;
26
48
  readonly pool: pg.Pool;
49
+ readonly lazyRows: boolean;
50
+ /** Defined only when `lazyRows` is enabled; its presence is the capability signal the EM checks. */
51
+ readonly executeFindRowData: Driver["executeFindRowData"];
27
52
  constructor(pool: pg.Pool, opts?: PostgresDriverOpts);
28
53
  executeFind(em: EntityManager, parsed: ParsedFindQuery, settings: {
29
54
  limit?: number;
@@ -9,6 +9,9 @@ const joist_core_1 = require("joist-core");
9
9
  const pg_1 = __importDefault(require("pg"));
10
10
  const pg_types_1 = require("pg-types");
11
11
  const postgres_array_1 = __importDefault(require("postgres-array"));
12
+ const binaryParsers_1 = require("./binaryParsers");
13
+ const patchPgProtocol_1 = require("./patchPgProtocol");
14
+ const WireRowData_1 = require("./WireRowData");
12
15
  /**
13
16
  * Implements the `Driver` interface for Postgres.
14
17
  *
@@ -28,6 +31,10 @@ class PostgresDriver {
28
31
  #idAssigner;
29
32
  #preloadPlugin;
30
33
  #onQuery;
34
+ lazyRows;
35
+ /** Defined only when `lazyRows` is enabled; its presence is the capability signal the EM checks. */
36
+ executeFindRowData;
37
+ #databaseBinaryParsers = undefined;
31
38
  constructor(pool, opts) {
32
39
  this.pool = pool;
33
40
  this.#idAssigner =
@@ -38,12 +45,48 @@ class PostgresDriver {
38
45
  });
39
46
  this.#preloadPlugin = opts?.preloadPlugin;
40
47
  this.#onQuery = opts?.onQuery;
48
+ // Lazy rows require pg-protocol to emit lazy DataRows, which we patch in at runtime; if the
49
+ // patch cannot be applied/verified (i.e. future pg-protocol internals changed), stay classic
50
+ this.lazyRows = (opts?.lazyRows ?? false) && (0, patchPgProtocol_1.ensureLazyDataRows)();
51
+ if (opts?.lazyRows && !this.lazyRows) {
52
+ console.warn("joist-orm: lazyRows was requested, but patching pg-protocol failed; using classic rows.");
53
+ }
54
+ this.executeFindRowData = this.lazyRows
55
+ ? (em, parsed, settings) => this.#executeFindRowData(em, parsed, settings)
56
+ : undefined;
41
57
  setupLatestPgTypes((0, joist_core_1.getRuntimeConfig)().temporal);
42
58
  }
43
59
  async executeFind(em, parsed, settings) {
44
60
  const { sql, bindings } = (0, joist_core_1.buildRawQuery)(parsed, { limit: em.entityLimit, ...settings });
45
61
  return this.executeQuery(em, sql, bindings);
46
62
  }
63
+ async #executeFindRowData(em, parsed, settings) {
64
+ // Auto-register binary parsers for the db's dynamic-oid text-likes (native enums, citext)
65
+ // once, before our first lazy query; on failure, reset so the next query retries
66
+ await (this.#databaseBinaryParsers ??= (0, binaryParsers_1.registerDatabaseBinaryParsers)(this.pool).catch((err) => {
67
+ this.#databaseBinaryParsers = undefined;
68
+ throw err;
69
+ }));
70
+ const { sql, bindings } = (0, joist_core_1.buildRawQuery)(parsed, { limit: em.entityLimit, ...settings });
71
+ const pgSql = toPgParams(sql);
72
+ this.#onQuery?.(pgSql);
73
+ // Centralize client checkout here (pg-pool rejects Submittables in pool.query), and decide
74
+ // classic-vs-lazy *before* submitting anything, i.e. unsupported clients like pg-native fall
75
+ // back to classic rows rather than failing mid-query
76
+ const txnClient = em.txn;
77
+ const client = txnClient ?? (await this.pool.connect());
78
+ try {
79
+ if (!(0, WireRowData_1.isRowDataCapableClient)(client)) {
80
+ warnUnsupportedClientOnce();
81
+ return new joist_core_1.PojoRowData((await client.query(pgSql, bindings)).rows);
82
+ }
83
+ return await (0, WireRowData_1.executeRowDataQuery)(client, pgSql, bindings);
84
+ }
85
+ finally {
86
+ if (!txnClient)
87
+ client.release();
88
+ }
89
+ }
47
90
  async executeQuery(em, sql, bindings) {
48
91
  const pgSql = toPgParams(sql);
49
92
  this.#onQuery?.(pgSql);
@@ -278,7 +321,9 @@ async function m2mBatchDelete(client, joinTableName, todo, onQuery) {
278
321
  */
279
322
  function setupLatestPgTypes(temporal) {
280
323
  if (temporal) {
281
- // Don't eagerly parse the strings, instead defer to the serde logic
324
+ // Don't eagerly parse the strings, instead defer to the serde logic. This only governs
325
+ // classic *text* results (knex, pool.query, non-lazy drivers); binary lazy cells construct
326
+ // Temporal values directly, with no strings involved (see registerTemporalBinaryParsers).
282
327
  const noop = (s) => s;
283
328
  const noopArray = (s) => postgres_array_1.default.parse(s, noop);
284
329
  const { TIMESTAMP, TIMESTAMPTZ, DATE } = pg_1.default.types.builtins;
@@ -289,9 +334,11 @@ function setupLatestPgTypes(temporal) {
289
334
  pg_1.default.types.setTypeParser(1182, noopArray); // date[]
290
335
  pg_1.default.types.setTypeParser(1115, noopArray); // timestamp[]
291
336
  pg_1.default.types.setTypeParser(1185, noopArray); // timestamptz[]
337
+ (0, binaryParsers_1.registerTemporalBinaryParsers)();
292
338
  }
293
339
  else {
294
340
  pg_1.default.types.setTypeParser(pg_1.default.types.builtins.TIMESTAMPTZ, (0, pg_types_1.getTypeParser)(pg_types_1.builtins.TIMESTAMPTZ));
341
+ // The binary registry's date/timestamp/timestamptz builtins already decode to Dates
295
342
  }
296
343
  }
297
344
  const questionMarks = /(?<!@)\?/g;
@@ -303,4 +350,12 @@ function toPgParams(sql) {
303
350
  let i = 0;
304
351
  return sql.replace(questionMarks, () => `$${++i}`);
305
352
  }
353
+ let warnedUnsupportedClient = false;
354
+ /** Warns once when lazyRows degrades to classic rows for an unsupported client, i.e. pg-native. */
355
+ function warnUnsupportedClientOnce() {
356
+ if (warnedUnsupportedClient)
357
+ return;
358
+ warnedUnsupportedClient = true;
359
+ console.warn("joist-orm: lazyRows is enabled, but this client does not support it; using classic rows.");
360
+ }
306
361
  //# sourceMappingURL=PostgresDriver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { RowData } from "joist-core";
2
+ import pg from "pg";
3
+ /**
4
+ * A lazy wire-row {@link RowData} over raw Postgres `DataRow` payload bytes.
5
+ *
6
+ * Each query produces its own `WireRowData` — one query, one result; results are never combined
7
+ * or appended across queries, and the payload is read-only after the query completes (entity
8
+ * mutations go into `InstanceData.data`, never back into the row bytes).
9
+ *
10
+ * Rows are kept in their row-major wire format (`int16 fieldCount` + length-prefixed cells) as
11
+ * zero-copy views over the parser's own immutable buffers: `addRow` records each DataRow's
12
+ * `(bytes, offset, length)` by reference, deduping the socket chunk that consecutive rows
13
+ * share. (Our pg-protocol patch guarantees message bytes are never rewritten — chunks parse in
14
+ * place and straddling messages get a buffer of their own; see `patchPgProtocol.ts`.) A
15
+ * `row × column` cell is decoded on first field access by scanning the row's length-prefixed
16
+ * cells to the column's ordinal ("row-lazy" decode, see JS-ROW-STORE-DESIGN.md §3/C2). This is
17
+ * deferred decoding of row-major data, not a columnar layout.
18
+ *
19
+ * Because chunks are whole socket reads, retaining any row pins its ~64KiB chunk (plus whatever
20
+ * protocol frames share it); `finalize`'s compaction copies retained rows out into an
21
+ * exact-size owned buffer when enough of the payload was dropped.
22
+ *
23
+ * Text-format cells go through the same active text parsers node-postgres would resolve for
24
+ * the query (i.e. honoring pool/client `TypeOverrides`), so they parse identically to classic
25
+ * rows. Binary-format cells decode via `wireBinaryParser`: wire bytes -> value directly for
26
+ * default-parsed scalar types (no intermediate string), else rendered to pg's canonical text
27
+ * and fed through the active text parser for parity. (Classic node-postgres cannot do binary
28
+ * at all — it round-trips cells through a UTF-8 string, corrupting bytes >= 0x80.)
29
+ *
30
+ * Because decoding is deferred, a custom parser that throws will do so on first field access
31
+ * (or `toRow`/`toRows`), not while awaiting the query; `id` and inheritance-discriminator cells
32
+ * still decode during hydration.
33
+ *
34
+ * After hydration, `finalize` trims unused capacity and, when some rows were not retained (i.e.
35
+ * their entities were already in the identity map), compacts the payload down to only the
36
+ * retained rows, so retained memory tracks live entities rather than query history.
37
+ *
38
+ * Small results deliberately stay lazy — there is NO row-count threshold below which we
39
+ * materialize to a `PojoRowData` instead. Measured (benchmark-rowdata-small.ts, 40-col rows):
40
+ * for the typical sparse access pattern (~6 of 40 columns read), keeping the lazy result wins at
41
+ * every size including a single row (n=1: 4.3µs vs 7.6µs; n=1000: 0.76ms vs 3.0ms), because
42
+ * materialization eagerly decodes every column while lazy faults only what is read. Even full
43
+ * column coverage no longer flips the winner: with binary decode and `#readCell`'s adaptive
44
+ * scan cursor, reading all ~36 columns of every row measures ~parity with classic end-to-end
45
+ * (benchmark-lazy-parsing.ts), and small finds (n <= 10) are statistically identical.
46
+ */
47
+ export declare class WireRowData implements RowData {
48
+ #private;
49
+ get rowCount(): number;
50
+ /** The DataRow payload bytes currently indexed; drops when compaction discards rows. */
51
+ get payloadBytes(): number;
52
+ /** The bytes currently held by payload chunks + the row-slice table, i.e. for benchmarks. */
53
+ get memoryBytes(): number;
54
+ get(rowIndex: number, columnName: string): any;
55
+ /** Materializes one row as a POJO, i.e. for debugging and differential tests; values are not cached. */
56
+ toRow(rowIndex: number): any;
57
+ /** Materializes classic POJO rows, i.e. for `afterFind` observation or debugging; not cached. */
58
+ toRows(): any[];
59
+ /**
60
+ * Resolves each column's decoder from the query's RowDescription.
61
+ *
62
+ * Binary-format fields decode through Joist's own binary registry only (see
63
+ * `setBinaryTypeParser`) — `pg.types`/`TypeOverrides` are never consulted, and a column whose
64
+ * oid has no registered binary parser fails the query here, before any rows arrive, rather
65
+ * than guessing at a lossy decoding. Text-format fields (the `binary: false` escape hatch)
66
+ * decode by utf8-slicing the cell into the active text parser, resolved via `getTypeParser`
67
+ * (i.e. the pool/client `TypeOverrides` chain) or the global registry.
68
+ */
69
+ setRowDescription(fields: Array<{
70
+ name: string;
71
+ dataTypeID: number;
72
+ format?: string;
73
+ }>, getTypeParser?: (dataTypeID: number) => (value: any) => any): void;
74
+ /**
75
+ * Records one DataRow payload *by reference* (zero-copy); called synchronously from the wire
76
+ * parser, whose patched buffer management guarantees the bytes are never rewritten.
77
+ *
78
+ * Consecutive rows usually share one socket chunk, so `bytes` is deduped against the last
79
+ * chunk ref; retaining any row of a chunk pins the whole chunk, which `finalize`'s compaction
80
+ * resolves by copying retained rows out when enough of the payload was dropped.
81
+ */
82
+ addRow(bytes: Buffer, offset: number, payloadLength: number): void;
83
+ /** Marks `rowIndex` as retained by a hydrated entity; unmarked rows can be compacted away. */
84
+ retain(rowIndex: number): void;
85
+ /**
86
+ * Trims unused capacity, and compacts down to only `retain`-ed rows when enough rows were not
87
+ * retained to be worth the copy.
88
+ *
89
+ * Compaction exists to release pinned socket buffers to the GC: rows are zero-copy views into
90
+ * whole ~64KiB chunks, so keeping any row alive pins its entire chunk — and unretained rows
91
+ * are typically duplicates whose entities were *already in memory* (identity-map hits that
92
+ * keep their original `rowData`), making the newly-arrived bytes dead weight. Copying the
93
+ * retained rows into one exact-size owned buffer lets every chunk reference drop.
94
+ *
95
+ * The copy re-copies every retained byte, so it only pays off when it buys back a meaningful
96
+ * fraction of the payload: we compact when the dropped rows hold more than 20% of the payload
97
+ * bytes, and otherwise just trim, accepting the (bounded) leftover bytes. Called once after
98
+ * hydration + sidecar reads (`_tags`, preload aggregates) are complete; retained entities keep
99
+ * their original `rowIndex`, and un-compacted unretained rows simply remain readable-but-unused.
100
+ */
101
+ finalize(): void;
102
+ }
103
+ export declare function executeRowDataQuery(client: pg.PoolClient, sql: string, bindings: readonly any[], opts?: {
104
+ binary?: boolean;
105
+ }): Promise<RowData>;
106
+ /** Returns whether `client` supports the lazy row-data query path, before submitting anything. */
107
+ export declare function isRowDataCapableClient(client: unknown): client is pg.PoolClient;