prostgles-server 4.1.124 → 4.1.126

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,uBAAuB,EACvB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,EAAE,EACF,IAAI,EAAE,SAAS,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAqB,WAAW,EAAM,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAA8B,MAAM,mBAAmB,CAAC;AAK7E,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,KAAK,OAAO,GAAG;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG;IAC5B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAGF,qBAAa,UAAU;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAE7B,EAAE,EAAE,EAAE,CAAC;IAEP,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;IAC5E,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACxC,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAErD,aAAa,EAAE,aAAa,CAAC;IAE7B,gBAAgB,QAAa,QAAQ,aAAa,CAAC,CA4BlD;IAED,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,iBAAiB,CAAiB;IAE1C,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAErE,OAAO;IASP,OAAO,CAAC,IAAI,CAcX;IAED,OAAc,MAAM,cAAqB,SAAS,KAAG,QAAQ,UAAU,CAAC,CAGvE;IAGD,OAAO;IAIP,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAElB;IAED,eAAe;IAIf,wBAAwB,sBAKvB;IAED,MAAM,UAAiB,MAAM,UAAU,GAAG,WAAW,UAAU,GAAG,SAAS,gBAAgB,WAAW,kBAErG;IACK,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAsEvC,mBAAmB,gBAAiB,WAAW,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAoB9F;IAED,KAAK,OAAQ,IAAI,kBAUhB;CACF"}
1
+ {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,uBAAuB,EACvB,UAAU,EAEX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,EAAE,EACF,IAAI,EAAE,SAAS,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAqB,WAAW,EAAM,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAA8B,MAAM,mBAAmB,CAAC;AAK7E,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,KAAK,OAAO,GAAG;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,GAAG;IAC5B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,KAAK,kBAAkB,GAAG,OAAO,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAGF,qBAAa,UAAU;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAE7B,EAAE,EAAE,EAAE,CAAC;IAEP,GAAG,EAAE,eAAe,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;IAC5E,WAAW,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACxC,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAErD,aAAa,EAAE,aAAa,CAAC;IAE7B,gBAAgB,QAAa,QAAQ,aAAa,CAAC,CA4BlD;IAED,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,iBAAiB,CAAiB;IAE1C,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAErE,OAAO;IAQP,OAAO,CAAC,IAAI,CAaX;IAED,OAAc,MAAM,cAAqB,SAAS,KAAG,QAAQ,UAAU,CAAC,CAGvE;IAGD,OAAO;IAIP,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,EAElB;IAED,eAAe;IAIf,wBAAwB,sBAKvB;IAED,MAAM,UAAiB,MAAM,UAAU,GAAG,WAAW,UAAU,GAAG,SAAS,gBAAgB,WAAW,kBAErG;IACK,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAsEvC,mBAAmB,gBAAiB,WAAW,UAAU,MAAM,KAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAoB9F;IAED,KAAK,OAAQ,IAAI,kBAUhB;CACF"}
@@ -88,11 +88,10 @@ class DboBuilder {
88
88
  throw "db missing";
89
89
  this.db = this.prostgles.db;
90
90
  this.dbo = {};
91
- this.queryStreamer = new QueryStreamer_1.QueryStreamer(this.db);
92
- // this.queryStreamer.startQuery({ id: "1", query: "", onData: console.log as any });
91
+ this.queryStreamer = new QueryStreamer_1.QueryStreamer(this);
93
92
  }
94
93
  init = async () => {
95
- /* If watchSchema then PubSubManager must be created (if possible) */
94
+ /* If watchSchema is enabled then PubSubManager must be created (if possible) */
96
95
  await this.build();
97
96
  if (this.prostgles.opts.watchSchema &&
98
97
  (this.prostgles.opts.watchSchemaType === "DDL_trigger" || !this.prostgles.opts.watchSchemaType) &&
@@ -1 +1 @@
1
- {"version":3,"file":"DboBuilder.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DboBuilder.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { DB } from "../initProstgles";
2
2
  import { QueryIterablePool } from 'pg-iterator';
3
+ import { SQLOptions, SocketSQLStreamServer } from "prostgles-types";
3
4
  import { PRGLIOSocket } from "./DboBuilderTypes";
4
- import { SocketSQLStreamServer } from "prostgles-types";
5
+ import { DboBuilder } from "./DboBuilder";
5
6
  type ClientStreamedRequest = {
6
7
  socket: PRGLIOSocket;
7
8
  query: string;
9
+ options: SQLOptions | undefined;
8
10
  persistConnection?: boolean;
9
11
  };
10
12
  type StreamedQuery = ClientStreamedRequest & {
@@ -12,8 +14,9 @@ type StreamedQuery = ClientStreamedRequest & {
12
14
  };
13
15
  export declare class QueryStreamer {
14
16
  db: DB;
17
+ dboBuilder: DboBuilder;
15
18
  socketQueries: Record<string, Record<string, StreamedQuery>>;
16
- constructor(db: DB);
19
+ constructor(dboBuilder: DboBuilder);
17
20
  create: (query: ClientStreamedRequest) => Promise<SocketSQLStreamServer>;
18
21
  }
19
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAY,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAElE,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAE7B,CAAA;AACD,KAAK,aAAa,GAAG,qBAAqB,GAAG;IAC3C,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD,CAAA;AAWD,qBAAa,aAAa;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAM;gBAEtD,EAAE,EAAE,EAAE;IAIlB,MAAM,UAAiB,qBAAqB,KAAG,QAAQ,qBAAqB,CAAC,CAuE5E;CACF"}
1
+ {"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAY,UAAU,EAAyB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAE7B,CAAA;AACD,KAAK,aAAa,GAAG,qBAAqB,GAAG;IAC3C,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD,CAAA;AAWD,qBAAa,aAAa;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAM;gBAEtD,UAAU,EAAE,UAAU;IAKlC,MAAM,UAAiB,qBAAqB,KAAG,QAAQ,qBAAqB,CAAC,CA2G5E;CACF"}
@@ -4,6 +4,8 @@ exports.QueryStreamer = void 0;
4
4
  // import { Pool } from "pg";
5
5
  const pg_iterator_1 = require("pg-iterator");
6
6
  const prostgles_types_1 = require("prostgles-types");
7
+ const dboBuilderUtils_1 = require("./dboBuilderUtils");
8
+ const runSQL_1 = require("./runSQL");
7
9
  const shortSocketIds = {};
8
10
  const getSetShortSocketId = (socketId) => {
9
11
  const shortId = socketId.slice(0, 3);
@@ -14,9 +16,11 @@ const getSetShortSocketId = (socketId) => {
14
16
  };
15
17
  class QueryStreamer {
16
18
  db;
19
+ dboBuilder;
17
20
  socketQueries = {};
18
- constructor(db) {
19
- this.db = db;
21
+ constructor(dboBuilder) {
22
+ this.dboBuilder = dboBuilder;
23
+ this.db = dboBuilder.db;
20
24
  }
21
25
  create = async (query) => {
22
26
  const { socket, persistConnection } = query;
@@ -27,31 +31,69 @@ class QueryStreamer {
27
31
  if (this.socketQueries[id] && !persistConnection) {
28
32
  throw `Must stop existing query ${id} first`;
29
33
  }
30
- // const pool = new Pool(this.db.$cn as any);
31
34
  this.socketQueries[socketId] ??= {};
32
35
  this.socketQueries[socketId][id] ??= {
33
36
  ...query,
34
37
  iterablePool: undefined,
35
38
  };
36
- let batchRows = [];
37
- const batchSize = 1000;
39
+ const { options } = query;
38
40
  const startStream = async () => {
39
41
  const socketQuery = this.socketQueries[socketId]?.[id];
40
42
  if (!socketQuery) {
41
43
  throw "socket query not found";
42
44
  }
43
- const iterablePool = new pg_iterator_1.QueryIterablePool(this.db.$pool);
45
+ // this.db.connect().then(client => { client.query({ rowMode: "array", text: "" }) }).catch(err => { console.log(err) });
46
+ const iterablePool = new pg_iterator_1.QueryIterablePool(this.db.$pool, { rowMode: "array" });
44
47
  const iterable = iterablePool.query(query.query);
45
48
  socketQuery.iterablePool = iterablePool;
49
+ // const connectionId = await iterablePool.query(`SELECT pg_backend_pid()`);
46
50
  (async () => {
47
- for await (const u of iterable) {
48
- batchRows.push(u);
49
- if (batchRows.length >= batchSize) {
50
- socket.emit(channel, batchRows);
51
- batchRows = [];
51
+ let emittedPackets = 0;
52
+ let batchRows = [];
53
+ let finished = false;
54
+ const batchSize = 1000;
55
+ const emit = (type, rawError) => {
56
+ let packet;
57
+ const ended = type === "ended";
58
+ if (finished)
59
+ return;
60
+ finished = finished || ended;
61
+ if (type === "error") {
62
+ const error = (0, dboBuilderUtils_1.getSerializedClientErrorFromPGError)(rawError);
63
+ packet = { type: "error", error };
52
64
  }
65
+ else if (!emittedPackets) {
66
+ const fields = runSQL_1.getDetailedFieldInfo.bind(this.dboBuilder)(iterablePool.fields);
67
+ packet = { type: "start", rows: batchRows, fields, ended };
68
+ }
69
+ else {
70
+ packet = { type: "rows", rows: batchRows, ended };
71
+ }
72
+ socket.emit(channel, packet);
73
+ if (ended) {
74
+ iterablePool.release();
75
+ }
76
+ emittedPackets++;
77
+ };
78
+ try {
79
+ for await (const u of iterable) {
80
+ batchRows.push(u);
81
+ if (options?.streamLimit) {
82
+ if (batchRows.length >= options.streamLimit) {
83
+ emit("ended");
84
+ break;
85
+ }
86
+ }
87
+ if (batchRows.length >= batchSize) {
88
+ emit("rows");
89
+ batchRows = [];
90
+ }
91
+ }
92
+ emit("ended");
93
+ }
94
+ catch (err) {
95
+ emit("error", err);
53
96
  }
54
- socket.emit(channel, batchRows);
55
97
  })();
56
98
  };
57
99
  const stop = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryStreamer.js","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryStreamer.js","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import { DB, ProstglesInitOptions } from "../Prostgles";
3
3
  import { LocalParams, SortItem } from "./DboBuilderTypes";
4
4
  import { ViewHandler } from "./ViewHandler/ViewHandler";
5
5
  export declare function escapeTSNames(str: string, capitalize?: boolean): string;
6
- export declare function getClientErrorFromPGError(err: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]): Promise<never>;
6
+ export declare function getSerializedClientErrorFromPGError(rawError: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]): any;
7
+ export declare function getClientErrorFromPGError(rawError: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]): Promise<never>;
7
8
  /**
8
9
  * Ensure the error is a serializable Object
9
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dboBuilderUtils.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/dboBuilderUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,WAAW,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,EAAE,EACF,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAO,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAKrE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBA0BxH;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAejE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,EACL,GAAG,GACH,GAAG,GACH,GAAG,CAAA;IAEL;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,cAAc,mBAA0B,oBAAoB,CAAC,QAAQ,CAAC,KAAG,QAAQ,YAAY,EAAE,CAW3G,CAAA;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,GAAG,MAAM,OAAO,WAAW,CAKjG;AAED,eAAO,MAAM,mBAAmB,UAAW,QAAQ,EAAE,eAAe,MAAM,KAAG,MAAM,EAWlF,CAAA;AAED,eAAO,MAAM,UAAU,8BAUtB,CAAA;AAED,eAAO,MAAM,WAAW,gBAAiB,WAAW,GAAG,SAAS,SAAS,MAAM,WAU9E,CAAA"}
1
+ {"version":3,"file":"dboBuilderUtils.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/dboBuilderUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,WAAW,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,EAAE,EACF,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAO,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAKrE;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OA2BvI;AACD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAE7H;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAejE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,EACL,GAAG,GACH,GAAG,GACH,GAAG,CAAA;IAEL;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,cAAc,mBAA0B,oBAAoB,CAAC,QAAQ,CAAC,KAAG,QAAQ,YAAY,EAAE,CAW3G,CAAA;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,GAAG,MAAM,OAAO,WAAW,CAKjG;AAED,eAAO,MAAM,mBAAmB,UAAW,QAAQ,EAAE,eAAe,MAAM,KAAG,MAAM,EAWlF,CAAA;AAED,eAAO,MAAM,UAAU,8BAUtB,CAAA;AAED,eAAO,MAAM,WAAW,gBAAiB,WAAW,GAAG,SAAS,SAAS,MAAM,WAU9E,CAAA"}
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License. See LICENSE in the project root for license information.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.withUserRLS = exports.canEXECUTE = exports.prepareOrderByQuery = exports.postgresToTsType = exports.isPlainObject = exports.getConstraints = exports.parseError = exports.getClientErrorFromPGError = exports.escapeTSNames = void 0;
7
+ exports.withUserRLS = exports.canEXECUTE = exports.prepareOrderByQuery = exports.postgresToTsType = exports.isPlainObject = exports.getConstraints = exports.parseError = exports.getClientErrorFromPGError = exports.getSerializedClientErrorFromPGError = exports.escapeTSNames = void 0;
8
8
  const prostgles_types_1 = require("prostgles-types");
9
9
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
10
10
  const DboBuilderTypes_1 = require("./DboBuilderTypes");
@@ -19,7 +19,8 @@ function escapeTSNames(str, capitalize = false) {
19
19
  return JSON.stringify(res);
20
20
  }
21
21
  exports.escapeTSNames = escapeTSNames;
22
- function getClientErrorFromPGError(err, localParams, view, allowedKeys) {
22
+ function getSerializedClientErrorFromPGError(rawError, localParams, view, allowedKeys) {
23
+ const err = rawError instanceof Error ? JSON.parse(JSON.stringify(rawError, Object.getOwnPropertyNames(rawError))) : rawError;
23
24
  if (process.env.PRGL_DEBUG) {
24
25
  console.trace(err);
25
26
  }
@@ -42,7 +43,11 @@ function getClientErrorFromPGError(err, localParams, view, allowedKeys) {
42
43
  }
43
44
  }
44
45
  }
45
- return Promise.reject(errObject);
46
+ return errObject;
47
+ }
48
+ exports.getSerializedClientErrorFromPGError = getSerializedClientErrorFromPGError;
49
+ function getClientErrorFromPGError(rawError, localParams, view, allowedKeys) {
50
+ return Promise.reject(getSerializedClientErrorFromPGError(rawError, localParams, view, allowedKeys));
46
51
  }
47
52
  exports.getClientErrorFromPGError = getClientErrorFromPGError;
48
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dboBuilderUtils.js","sourceRoot":"","sources":["../../lib/DboBuilder/dboBuilderUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dboBuilderUtils.js","sourceRoot":"","sources":["../../lib/DboBuilder/dboBuilderUtils.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
1
  import { AnyObject, SQLOptions } from "prostgles-types";
2
2
  import { DboBuilder, LocalParams } from "./DboBuilder";
3
3
  import { DB, Prostgles } from "../Prostgles";
4
+ import pg from "pg-promise/typescript/pg-subset";
4
5
  export declare function runSQL(this: DboBuilder, queryWithoutRLS: string, args: undefined | AnyObject | any[], options: SQLOptions | undefined, localParams?: LocalParams): Promise<any>;
5
6
  export declare function cacheDBTypes(this: DboBuilder): Promise<void>;
7
+ export declare function getDetailedFieldInfo(this: DboBuilder, fields: pg.IColumn[]): {
8
+ tsDataType: "string" | "number" | "boolean" | "number[]" | "boolean[]" | "string[]" | "any[]" | "any";
9
+ dataType: import("prostgles-types").PG_COLUMN_UDT_DATA_TYPE;
10
+ udt_name: import("prostgles-types").PG_COLUMN_UDT_DATA_TYPE;
11
+ tableName: string | undefined;
12
+ tableSchema: string | undefined;
13
+ columnName: string | undefined;
14
+ name: string;
15
+ oid: number;
16
+ dataTypeID: number;
17
+ tableID: number;
18
+ columnID: number;
19
+ dataTypeSize: number;
20
+ dataTypeModifier: number;
21
+ format: string;
22
+ }[];
6
23
  export declare const canRunSQL: (prostgles: Prostgles, localParams?: LocalParams) => Promise<boolean>;
7
24
  export declare const canCreateTables: (db: DB) => Promise<boolean>;
8
25
  //# sourceMappingURL=runSQL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK7C,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,gBA4GtK;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,iBAqBlD;AAED,eAAO,MAAM,SAAS,cAAqB,SAAS,gBAAgB,WAAW,KAAG,QAAQ,OAAO,CAQhG,CAAA;AAED,eAAO,MAAM,eAAe,cAAmB,QAAQ,OAAO,CAE7D,CAAA"}
1
+ {"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAGjD,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,gBA6FtK;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,iBAyBlD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;IAiB1E;AAED,eAAO,MAAM,SAAS,cAAqB,SAAS,gBAAgB,WAAW,KAAG,QAAQ,OAAO,CAQhG,CAAA;AAED,eAAO,MAAM,eAAe,cAAmB,QAAQ,OAAO,CAE7D,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.canCreateTables = exports.canRunSQL = exports.cacheDBTypes = exports.runSQL = void 0;
3
+ exports.canCreateTables = exports.canRunSQL = exports.getDetailedFieldInfo = exports.cacheDBTypes = exports.runSQL = void 0;
4
4
  const DboBuilder_1 = require("./DboBuilder");
5
5
  const PubSubManager_1 = require("../PubSubManager/PubSubManager");
6
6
  const pg_promise_1 = require("pg-promise");
@@ -27,7 +27,7 @@ async function runSQL(queryWithoutRLS, args, options, localParams) {
27
27
  if (returnType === "stream") {
28
28
  if (!socket)
29
29
  throw "Only allowed with client socket";
30
- const streamInfo = await this.queryStreamer.create({ socket, query: DboBuilder_1.pgp.as.format(queryWithRLS, args) });
30
+ const streamInfo = await this.queryStreamer.create({ socket, query: DboBuilder_1.pgp.as.format(queryWithRLS, args), options });
31
31
  return streamInfo;
32
32
  }
33
33
  else if (returnType === "noticeSubscription") {
@@ -86,18 +86,7 @@ async function runSQL(queryWithoutRLS, args, options, localParams) {
86
86
  const qres = {
87
87
  duration: 0,
88
88
  ..._qres,
89
- fields: fields?.map(f => {
90
- const dataType = this.DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text", table = this.USER_TABLES.find(t => +t.relid === +f.tableID), column = this.USER_TABLE_COLUMNS.find(c => +c.relid === +f.tableID && c.ordinal_position === f.columnID), tsDataType = (0, DboBuilder_1.postgresToTsType)(dataType);
91
- return {
92
- ...f,
93
- tsDataType,
94
- dataType,
95
- udt_name: dataType,
96
- tableName: table?.relname,
97
- tableSchema: table?.schemaname,
98
- columnName: column?.column_name
99
- };
100
- }) ?? []
89
+ fields: getDetailedFieldInfo.bind(this)(fields),
101
90
  };
102
91
  return qres;
103
92
  }
@@ -109,7 +98,11 @@ exports.runSQL = runSQL;
109
98
  async function cacheDBTypes() {
110
99
  this.DATA_TYPES ??= await this.db.any("SELECT oid, typname FROM pg_type") ?? [];
111
100
  this.USER_TABLES ??= await this.db.any(`
112
- SELECT relid, relname, schemaname, array_to_json(array_agg(c.column_name) FILTER (WHERE c.column_name IS NOT NULL)) as pkey_columns
101
+ SELECT
102
+ relid,
103
+ relname,
104
+ schemaname,
105
+ array_to_json(array_agg(c.column_name) FILTER (WHERE c.column_name IS NOT NULL)) as pkey_columns
113
106
  FROM pg_catalog.pg_statio_user_tables t
114
107
  LEFT JOIN (
115
108
  SELECT a.attname as column_name, i.indrelid as table_oid
@@ -129,6 +122,21 @@ async function cacheDBTypes() {
129
122
  `);
130
123
  }
131
124
  exports.cacheDBTypes = cacheDBTypes;
125
+ function getDetailedFieldInfo(fields) {
126
+ return fields?.map(f => {
127
+ const dataType = this.DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text", table = this.USER_TABLES.find(t => +t.relid === +f.tableID), column = this.USER_TABLE_COLUMNS.find(c => +c.relid === +f.tableID && c.ordinal_position === f.columnID), tsDataType = (0, DboBuilder_1.postgresToTsType)(dataType);
128
+ return {
129
+ ...f,
130
+ tsDataType,
131
+ dataType,
132
+ udt_name: dataType,
133
+ tableName: table?.relname,
134
+ tableSchema: table?.schemaname,
135
+ columnName: column?.column_name
136
+ };
137
+ }) ?? [];
138
+ }
139
+ exports.getDetailedFieldInfo = getDetailedFieldInfo;
132
140
  const canRunSQL = async (prostgles, localParams) => {
133
141
  if (!localParams?.socket || !localParams?.httpReq)
134
142
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"runSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"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"}
@@ -118,14 +118,12 @@ export class DboBuilder {
118
118
  if (!this.prostgles.db) throw "db missing"
119
119
  this.db = this.prostgles.db;
120
120
  this.dbo = {} as unknown as DBHandlerServer;
121
- this.queryStreamer = new QueryStreamer(this.db);
122
- // this.queryStreamer.startQuery({ id: "1", query: "", onData: console.log as any });
121
+ this.queryStreamer = new QueryStreamer(this);
123
122
  }
124
123
 
125
124
  private init = async () => {
126
125
 
127
-
128
- /* If watchSchema then PubSubManager must be created (if possible) */
126
+ /* If watchSchema is enabled then PubSubManager must be created (if possible) */
129
127
  await this.build();
130
128
  if (
131
129
  this.prostgles.opts.watchSchema &&
@@ -1,12 +1,16 @@
1
1
  import { DB } from "../initProstgles";
2
2
  // import { Pool } from "pg";
3
3
  import { QueryIterablePool } from 'pg-iterator';
4
+ import { CHANNELS, SQLOptions, SocketSQLStreamPacket, SocketSQLStreamServer } from "prostgles-types";
4
5
  import { PRGLIOSocket } from "./DboBuilderTypes";
5
- import { CHANNELS, SocketSQLStreamServer } from "prostgles-types";
6
+ import { getSerializedClientErrorFromPGError } from "./dboBuilderUtils";
7
+ import { getDetailedFieldInfo } from "./runSQL";
8
+ import { DboBuilder } from "./DboBuilder";
6
9
 
7
10
  type ClientStreamedRequest = {
8
11
  socket: PRGLIOSocket;
9
12
  query: string;
13
+ options: SQLOptions | undefined;
10
14
  persistConnection?: boolean;
11
15
 
12
16
  }
@@ -25,10 +29,12 @@ const getSetShortSocketId = (socketId: string) => {
25
29
 
26
30
  export class QueryStreamer {
27
31
  db: DB;
32
+ dboBuilder: DboBuilder;
28
33
  socketQueries: Record<string, Record<string, StreamedQuery>> = {};
29
34
 
30
- constructor(db: DB) {
31
- this.db = db;
35
+ constructor(dboBuilder: DboBuilder) {
36
+ this.dboBuilder = dboBuilder;
37
+ this.db = dboBuilder.db;
32
38
  }
33
39
 
34
40
  create = async (query: ClientStreamedRequest): Promise<SocketSQLStreamServer> => {
@@ -41,33 +47,69 @@ export class QueryStreamer {
41
47
  throw `Must stop existing query ${id} first`;
42
48
  }
43
49
 
44
- // const pool = new Pool(this.db.$cn as any);
45
-
46
50
  this.socketQueries[socketId] ??= {}
47
51
  this.socketQueries[socketId]![id] ??= {
48
52
  ...query,
49
53
  iterablePool: undefined,
50
54
  };
51
-
52
- let batchRows: any[] = [];
53
- const batchSize = 1000;
55
+ const { options } = query
54
56
  const startStream = async () => {
55
57
  const socketQuery = this.socketQueries[socketId]?.[id];
56
58
  if(!socketQuery){
57
59
  throw "socket query not found";
58
60
  }
59
- const iterablePool = new QueryIterablePool(this.db.$pool as any);
61
+ // this.db.connect().then(client => { client.query({ rowMode: "array", text: "" }) }).catch(err => { console.log(err) });
62
+ const iterablePool = new QueryIterablePool(this.db.$pool as any, { rowMode: "array" });
60
63
  const iterable = iterablePool.query(query.query);
61
64
  socketQuery.iterablePool = iterablePool;
65
+ // const connectionId = await iterablePool.query(`SELECT pg_backend_pid()`);
62
66
  (async () => {
63
- for await (const u of iterable) {
64
- batchRows.push(u);
65
- if (batchRows.length >= batchSize) {
66
- socket.emit(channel, batchRows);
67
- batchRows = [];
67
+ let emittedPackets = 0;
68
+ let batchRows: any[] = [];
69
+ let finished = false;
70
+ const batchSize = 1000;
71
+
72
+ const emit = (type: "rows" | "error" | "ended", rawError?: any) => {
73
+ let packet: SocketSQLStreamPacket | undefined;
74
+ const ended = type === "ended";
75
+ if(finished) return;
76
+ finished = finished || ended;
77
+ if(type === "error"){
78
+ const error = getSerializedClientErrorFromPGError(rawError);
79
+ packet = { type: "error", error };
80
+ } else if (!emittedPackets) {
81
+ const fields = getDetailedFieldInfo.bind(this.dboBuilder)(iterablePool.fields as any);
82
+ packet = { type: "start", rows: batchRows, fields, ended };
83
+ } else {
84
+ packet = { type: "rows", rows: batchRows, ended };
85
+ }
86
+ socket.emit(channel, packet);
87
+ if(ended){
88
+ iterablePool.release();
89
+ }
90
+ emittedPackets++;
91
+ }
92
+
93
+ try {
94
+ for await (const u of iterable) {
95
+ batchRows.push(u);
96
+ if(options?.streamLimit) {
97
+ if(batchRows.length >= options.streamLimit){
98
+ emit("ended");
99
+ break;
100
+ }
101
+ }
102
+ if (batchRows.length >= batchSize) {
103
+ emit("rows");
104
+ batchRows = [];
105
+ }
68
106
  }
107
+ emit("ended");
108
+
109
+
110
+ } catch(err){
111
+ emit("error", err);
69
112
  }
70
- socket.emit(channel, batchRows);
71
113
  })();
72
114
  }
73
115
 
@@ -29,7 +29,8 @@ export function escapeTSNames(str: string, capitalize = false): string {
29
29
  return JSON.stringify(res);
30
30
  }
31
31
 
32
- export function getClientErrorFromPGError(err: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]) {
32
+ export function getSerializedClientErrorFromPGError(rawError: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]) {
33
+ const err = rawError instanceof Error ? JSON.parse(JSON.stringify(rawError, Object.getOwnPropertyNames(rawError))) : rawError
33
34
  if (process.env.PRGL_DEBUG) {
34
35
  console.trace(err)
35
36
  }
@@ -54,7 +55,10 @@ export function getClientErrorFromPGError(err: any, localParams?: LocalParams, v
54
55
  }
55
56
  }
56
57
  }
57
- return Promise.reject(errObject);
58
+ return errObject;
59
+ }
60
+ export function getClientErrorFromPGError(rawError: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]) {
61
+ return Promise.reject(getSerializedClientErrorFromPGError(rawError, localParams, view, allowedKeys));
58
62
  }
59
63
 
60
64
  /**
@@ -3,6 +3,7 @@ import { DboBuilder, LocalParams, pgp, postgresToTsType } from "./DboBuilder";
3
3
  import { DB, Prostgles } from "../Prostgles";
4
4
  import { PubSubManager } from "../PubSubManager/PubSubManager";
5
5
  import { ParameterizedQuery as PQ } from 'pg-promise';
6
+ import pg from "pg-promise/typescript/pg-subset";
6
7
 
7
8
 
8
9
  export async function runSQL(this: DboBuilder, queryWithoutRLS: string, args: undefined | AnyObject | any[], options: SQLOptions | undefined, localParams?: LocalParams) {
@@ -31,7 +32,7 @@ export async function runSQL(this: DboBuilder, queryWithoutRLS: string, args: un
31
32
  const db = localParams?.tx?.t || this.db;
32
33
  if (returnType === "stream") {
33
34
  if (!socket) throw "Only allowed with client socket";
34
- const streamInfo = await this.queryStreamer.create({ socket, query: pgp.as.format(queryWithRLS, args) });
35
+ const streamInfo = await this.queryStreamer.create({ socket, query: pgp.as.format(queryWithRLS, args), options });
35
36
  return streamInfo;
36
37
 
37
38
  } else if (returnType === "noticeSubscription") {
@@ -92,22 +93,7 @@ export async function runSQL(this: DboBuilder, queryWithoutRLS: string, args: un
92
93
  const qres: SQLResult<typeof returnType> = {
93
94
  duration: 0,
94
95
  ..._qres,
95
- fields: fields?.map(f => {
96
- const dataType = this.DATA_TYPES!.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text",
97
- table = this.USER_TABLES!.find(t => +t.relid === +f.tableID),
98
- column = this.USER_TABLE_COLUMNS!.find(c => +c.relid === +f.tableID && c.ordinal_position === f.columnID),
99
- tsDataType = postgresToTsType(dataType);
100
-
101
- return {
102
- ...f,
103
- tsDataType,
104
- dataType,
105
- udt_name: dataType,
106
- tableName: table?.relname,
107
- tableSchema: table?.schemaname,
108
- columnName: column?.column_name
109
- }
110
- }) ?? []
96
+ fields: getDetailedFieldInfo.bind(this)(fields),
111
97
  };
112
98
  return qres;
113
99
  }
@@ -118,7 +104,11 @@ export async function runSQL(this: DboBuilder, queryWithoutRLS: string, args: un
118
104
  export async function cacheDBTypes(this: DboBuilder) {
119
105
  this.DATA_TYPES ??= await this.db.any("SELECT oid, typname FROM pg_type") ?? [];
120
106
  this.USER_TABLES ??= await this.db.any(`
121
- SELECT relid, relname, schemaname, array_to_json(array_agg(c.column_name) FILTER (WHERE c.column_name IS NOT NULL)) as pkey_columns
107
+ SELECT
108
+ relid,
109
+ relname,
110
+ schemaname,
111
+ array_to_json(array_agg(c.column_name) FILTER (WHERE c.column_name IS NOT NULL)) as pkey_columns
122
112
  FROM pg_catalog.pg_statio_user_tables t
123
113
  LEFT JOIN (
124
114
  SELECT a.attname as column_name, i.indrelid as table_oid
@@ -138,6 +128,25 @@ export async function cacheDBTypes(this: DboBuilder) {
138
128
  `);
139
129
  }
140
130
 
131
+ export function getDetailedFieldInfo(this: DboBuilder, fields: pg.IColumn[]) {
132
+ return fields?.map(f => {
133
+ const dataType = this.DATA_TYPES!.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text",
134
+ table = this.USER_TABLES!.find(t => +t.relid === +f.tableID),
135
+ column = this.USER_TABLE_COLUMNS!.find(c => +c.relid === +f.tableID && c.ordinal_position === f.columnID),
136
+ tsDataType = postgresToTsType(dataType);
137
+
138
+ return {
139
+ ...f,
140
+ tsDataType,
141
+ dataType,
142
+ udt_name: dataType,
143
+ tableName: table?.relname,
144
+ tableSchema: table?.schemaname,
145
+ columnName: column?.column_name
146
+ }
147
+ }) ?? [];
148
+ }
149
+
141
150
  export const canRunSQL = async (prostgles: Prostgles, localParams?: LocalParams): Promise<boolean> => {
142
151
  if (!localParams?.socket || !localParams?.httpReq) return true;
143
152
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.1.124",
3
+ "version": "4.1.126",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,7 +45,7 @@
45
45
  "pg-iterator": "^0.3.0",
46
46
  "pg-promise": "^11.5.4",
47
47
  "prostgles-client": "^4.0.53",
48
- "prostgles-types": "^4.0.55"
48
+ "prostgles-types": "^4.0.61"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/bluebird": "^3.5.36",
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@types/node": "^14.14.16",
13
- "prostgles-client": "^4.0.53",
13
+ "prostgles-client": "^4.0.58",
14
14
  "prostgles-types": "^4.0.51",
15
15
  "socket.io-client": "^4.7.1"
16
16
  },
@@ -75,11 +75,11 @@
75
75
  "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
76
76
  },
77
77
  "node_modules/prostgles-client": {
78
- "version": "4.0.53",
79
- "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.53.tgz",
80
- "integrity": "sha512-pBSmCUKA8bxS0mQjpXYbwRczuOv19VQEYKqg8U8E8M15tafMg7Hf+4t+ywff6vJJ7dFBQ3mnBLbgETP3OdhXDQ==",
78
+ "version": "4.0.58",
79
+ "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.58.tgz",
80
+ "integrity": "sha512-VoO2+tjtLwZVwy2Ldod3y4D3rM0XYM1Lw1ft4mZ56F6LXLDtlqcJergzA93OHxk1ZFBoeeyH/+rFvOdjvThVfA==",
81
81
  "dependencies": {
82
- "prostgles-types": "^4.0.54"
82
+ "prostgles-types": "^4.0.61"
83
83
  },
84
84
  "peerDependencies": {
85
85
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
@@ -91,9 +91,9 @@
91
91
  }
92
92
  },
93
93
  "node_modules/prostgles-types": {
94
- "version": "4.0.55",
95
- "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.55.tgz",
96
- "integrity": "sha512-m8jLLR6pSHOvGs2kQw2LwjDEkq9oIoa+TVbxC35l4rFoOgSG0CKx9c2k5r8cqfINvLoFEJ+qZvWRqJ7RzdBmSw==",
94
+ "version": "4.0.61",
95
+ "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.61.tgz",
96
+ "integrity": "sha512-VMKbyrl1JxtJ+61GVQDuTn/6ZS/auVpymnt2Lol95Qz5xAocOQ0PHf/xmoxbtlc62I2JgLyYOomtpetucZBEpA==",
97
97
  "dependencies": {
98
98
  "json-schema": "^0.4.0"
99
99
  }
@@ -213,17 +213,17 @@
213
213
  "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
214
214
  },
215
215
  "prostgles-client": {
216
- "version": "4.0.53",
217
- "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.53.tgz",
218
- "integrity": "sha512-pBSmCUKA8bxS0mQjpXYbwRczuOv19VQEYKqg8U8E8M15tafMg7Hf+4t+ywff6vJJ7dFBQ3mnBLbgETP3OdhXDQ==",
216
+ "version": "4.0.58",
217
+ "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.58.tgz",
218
+ "integrity": "sha512-VoO2+tjtLwZVwy2Ldod3y4D3rM0XYM1Lw1ft4mZ56F6LXLDtlqcJergzA93OHxk1ZFBoeeyH/+rFvOdjvThVfA==",
219
219
  "requires": {
220
- "prostgles-types": "^4.0.54"
220
+ "prostgles-types": "^4.0.61"
221
221
  }
222
222
  },
223
223
  "prostgles-types": {
224
- "version": "4.0.55",
225
- "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.55.tgz",
226
- "integrity": "sha512-m8jLLR6pSHOvGs2kQw2LwjDEkq9oIoa+TVbxC35l4rFoOgSG0CKx9c2k5r8cqfINvLoFEJ+qZvWRqJ7RzdBmSw==",
224
+ "version": "4.0.61",
225
+ "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.61.tgz",
226
+ "integrity": "sha512-VMKbyrl1JxtJ+61GVQDuTn/6ZS/auVpymnt2Lol95Qz5xAocOQ0PHf/xmoxbtlc62I2JgLyYOomtpetucZBEpA==",
227
227
  "requires": {
228
228
  "json-schema": "^0.4.0"
229
229
  }
@@ -13,7 +13,7 @@
13
13
  "license": "ISC",
14
14
  "dependencies": {
15
15
  "@types/node": "^14.14.16",
16
- "prostgles-client": "^4.0.53",
16
+ "prostgles-client": "^4.0.58",
17
17
  "prostgles-types": "^4.0.51",
18
18
  "socket.io-client": "^4.7.1"
19
19
  },
@@ -1,41 +1,42 @@
1
1
  import { strict as assert } from 'assert';
2
2
  import type { DBHandlerClient, Auth } from "./client/index";
3
- import { DBSchemaTable, isDefined } from "prostgles-types";
3
+ import { DBSchemaTable, SocketSQLStreamPacket, isDefined } from "prostgles-types";
4
4
  import { tryRun, tryRunP } from './isomorphic_queries';
5
+ import { reject } from 'bluebird';
5
6
 
6
7
  export default async function client_only(db: DBHandlerClient, auth: Auth, log: (...args: any[]) => any, methods, tableSchema: DBSchemaTable[], token: string){
7
8
  await Promise.all([1e3, 1e2].map(async (numberOfRows) => {
8
9
  await tryRunP("SQL Stream", async (resolve) => {
9
10
  const res = await db.sql!(`SELECT v.* FROM generate_series(1, ${numberOfRows}) v`, {}, { returnType: "stream" });
10
11
  let rows: any[] = [];
11
- const listener = async (batchRows) => {
12
- rows = rows.concat(batchRows);
13
- if(rows.length === numberOfRows){
14
- resolve("ok");
15
- stop();
12
+ const listener = async (packet: SocketSQLStreamPacket) => {
13
+ if(packet.type === "error"){
14
+ reject(packet.error);
15
+ } else {
16
+ rows = rows.concat(packet.rows);
17
+ if(packet.ended){
18
+ assert.equal(rows.length, numberOfRows);
19
+ resolve("ok");
20
+ }
16
21
  }
17
22
  };
18
23
  const startHandler = await res.start(listener);
19
- const { stop } = startHandler;
20
24
  });
21
25
  }));
22
26
  await tryRunP("SQL Stream parallel execution + parameters", async (resolve, reject) => {
23
27
  const getExpected = (val: string) => new Promise(async (resolve, reject) => {
24
28
  const res = await db.sql!("SELECT ${val} as val", { val }, { returnType: "stream" });
25
- let rows: any[] = [];
26
- const listener = async (batchRows) => {
27
- rows = rows.concat(batchRows);
29
+ const listener = async (packet: SocketSQLStreamPacket) => {
28
30
  try {
29
- assert.deepStrictEqual(batchRows[0], { val });
30
- assert.equal(batchRows.length, 1);
31
+ assert.equal(packet.type, "start");
32
+ assert.equal(packet.ended, true);
33
+ assert.deepStrictEqual(packet.rows, [[val]]);
31
34
  resolve(1);
32
35
  } catch(err){
33
36
  reject(err);
34
- stop();
35
37
  }
36
38
  };
37
39
  const startHandler = await res.start(listener);
38
- const { stop } = startHandler;
39
40
  });
40
41
  let resolved = 0;
41
42
  const expected = ["a", "b", "c"];
@@ -48,6 +49,92 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
48
49
  }).catch(reject);
49
50
  })
50
51
  });
52
+ await tryRunP("SQL Stream query error", async (resolve, reject) => {
53
+ const res = await db.sql!("SELECT * FROM not_existing_table", {}, { returnType: "stream" });
54
+ const listener = async (packet: SocketSQLStreamPacket) => {
55
+ try {
56
+ assert.equal(packet.type, "error");
57
+ assert.equal(packet.error.message, 'relation "not_existing_table" does not exist');
58
+ resolve("ok");
59
+ } catch(err){
60
+ reject(err);
61
+ }
62
+ };
63
+ const startHandler = await res.start(listener);
64
+ });
65
+ await tryRunP("SQL Stream streamLimit", async (resolve, reject) => {
66
+ const generate_series = "SELECT * FROM generate_series(1, 100)";
67
+ const res = await db.sql!(generate_series, {}, { returnType: "stream", streamLimit: 10 });
68
+ const listener = async (packet: SocketSQLStreamPacket) => {
69
+ if(packet.type === "error"){
70
+ reject(packet.error);
71
+ } else {
72
+ assert.equal(packet.type, "start");
73
+ assert.equal(packet.ended, true);
74
+ assert.equal(packet.rows.length, 10);
75
+
76
+ const normalSql = await db.sql!(generate_series, {});
77
+
78
+ /** fields the same as on normal sql request */
79
+ assert.deepStrictEqual(packet.fields, normalSql.fields);
80
+
81
+ /** result is rowMode=array */
82
+ assert.equal(Array.isArray(packet.rows), true);
83
+ assert.equal(Array.isArray(packet.rows[0]), true);
84
+
85
+ assert.deepStrictEqual(packet.rows.flat(), Array.from({ length: 10 }, (_, i) => i + 1).flat());
86
+ resolve("ok");
87
+ }
88
+ };
89
+ const startHandler = await res.start(listener);
90
+ });
91
+
92
+ await tryRunP("SQL Stream table fields are the same as on default request", async (resolve, reject) => {
93
+ await db.sql!("INSERT INTO planes (last_updated) VALUES (56789);", {});
94
+ const res = await db.sql!("SELECT * FROM planes", {}, { returnType: "stream" });
95
+ const listener = async (packet: SocketSQLStreamPacket) => {
96
+ if(packet.type === "error"){
97
+ reject(packet.error);
98
+ } else {
99
+ assert.equal(packet.type, "start");
100
+ assert.equal(packet.ended, true);
101
+ assert.equal(packet.rows.length, 1);
102
+ const normalSql = await db.sql!("SELECT * FROM planes LIMIT 1", {});
103
+ await db.sql!("DELETE FROM planes", {});
104
+ assert.deepStrictEqual(packet.fields, normalSql.fields);
105
+ assert.equal(packet.fields.length > 0, true);
106
+ resolve("ok");
107
+ }
108
+ };
109
+ const startHandler = await res.start(listener);
110
+ });
111
+ // await tryRunP("SQL Stream ensure the connection is never released (same pg_backend_pid is the same for subsequent) queries when using persistConnectionId", async (resolve, reject) => {
112
+ // const res = await db.sql!("SELECT pg_backend_pid()", {}, { returnType: "stream", persistConnectionId: true });
113
+ // const listener = async (packet: SocketSQLStreamPacket) => {
114
+ // if(packet.type === "error"){
115
+ // reject(packet.error);
116
+ // } else {
117
+ // assert.equal(packet.type, "start");
118
+ // assert.equal(packet.ended, true);
119
+ // assert.equal(packet.rows.length, 1);
120
+ // const pid = packet.rows[0].pg_backend_pid;
121
+ // const res2 = await db.sql!("SELECT pg_backend_pid()", {}, { returnType: "stream", persistConnectionId: true });
122
+ // const listener2 = async (packet: SocketSQLStreamPacket) => {
123
+ // if(packet.type === "error"){
124
+ // reject(packet.error);
125
+ // } else {
126
+ // assert.equal(packet.type, "start");
127
+ // assert.equal(packet.ended, true);
128
+ // assert.equal(packet.rows.length, 1);
129
+ // assert.equal(packet.rows[0].pg_backend_pid, pid);
130
+ // resolve("ok");
131
+ // }
132
+ // };
133
+ // const startHandler2 = await res2.start(listener2);
134
+ // }
135
+ // };
136
+ // const startHandler = await res.start(listener);
137
+ // });
51
138
 
52
139
 
53
140
  /**
@@ -72,7 +159,6 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
72
159
  });
73
160
 
74
161
  const testRealtime = () => {
75
-
76
162
  return new Promise(async (resolve, reject) => {
77
163
  try {
78
164
 
@@ -82,6 +168,7 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
82
168
 
83
169
  /* RAWSQL */
84
170
  await tryRun("SQL Full result", async () => {
171
+ if(!db.sql) throw "db.sql missing";
85
172
  const sqlStatement = await db.sql("SELECT $1", [1], { returnType: "statement" });
86
173
  assert.equal(sqlStatement, "SELECT 1", "db.sql statement query failed");
87
174
 
@@ -113,6 +200,7 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
113
200
  });
114
201
 
115
202
  await tryRunP("sql LISTEN NOTIFY events", async (resolve, reject) => {
203
+ if(!db.sql) throw "db.sql missing";
116
204
 
117
205
  try {
118
206
 
@@ -134,6 +222,7 @@ export default async function client_only(db: DBHandlerClient, auth: Auth, log:
134
222
  });
135
223
 
136
224
  await tryRunP("sql NOTICE events", async (resolve, reject) => {
225
+ if(!db.sql) throw "db.sql missing";
137
226
 
138
227
  const sub = await db.sql("", {}, { returnType: "noticeSubscription" });
139
228
 
@@ -1,8 +1,7 @@
1
1
  import { strict as assert } from 'assert';
2
-
2
+ import * as fs from "fs";
3
3
  import type { DBHandlerServer } from "./server/dist/server/index";
4
4
  import type { DBHandlerClient } from "./client/index";
5
- import * as fs from "fs";
6
5
 
7
6
  export async function tryRun(desc: string, func: () => any, log?: Function){
8
7
  try {
@@ -27,6 +26,7 @@ export function tryRunP(desc: string, func: (resolve: any, reject: any) => any,
27
26
  clearTimeout(testTimeout);
28
27
  } catch(err: any){
29
28
  opts?.log?.(`${desc} failed: ` + JSON.stringify(err));
29
+ rj(err);
30
30
  await tout(50);
31
31
  throw err;
32
32
  }
@@ -48,10 +48,11 @@ export default async function isomorphic(db: Required<DBHandlerServer> | DBHandl
48
48
  await db.items2.delete!({ });
49
49
  await db.items.delete!({ });
50
50
  }
51
- await db.sql(`TRUNCATE items RESTART IDENTITY CASCADE;`)
51
+ await db.sql!(`TRUNCATE items RESTART IDENTITY CASCADE;`)
52
52
 
53
53
 
54
54
  await tryRun("Prepare data", async () => {
55
+ if(!db.sql) throw "db.sql missing";
55
56
  const res = await db.items.insert!([{ name: "a" }, { name: "a" }, { name: "b" }], { returning: "*" });
56
57
  assert.equal(res.length, 3);
57
58
  const added1 = '04 Dec 1995 00:12:00';
@@ -445,7 +446,6 @@ export default async function isomorphic(db: Required<DBHandlerServer> | DBHandl
445
446
 
446
447
  await tryRunP("subscribe", async (resolve, reject) => {
447
448
  await db.various.insert!({ id: 99 });
448
- console.log("subscribing")
449
449
  const sub = await db.various.subscribe!({ id: 99 }, { }, async items => {
450
450
  const item = items[0];
451
451
 
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.1.122",
24
+ "version": "4.1.125",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",
@@ -31,11 +31,10 @@
31
31
  "body-parser": "^1.20.2",
32
32
  "check-disk-space": "^3.3.1",
33
33
  "file-type": "^18.5.0",
34
- "pg": "^8.11.3",
35
34
  "pg-iterator": "^0.3.0",
36
35
  "pg-promise": "^11.5.4",
37
36
  "prostgles-client": "^4.0.53",
38
- "prostgles-types": "^4.0.55"
37
+ "prostgles-types": "^4.0.61"
39
38
  },
40
39
  "devDependencies": {
41
40
  "@types/bluebird": "^3.5.36",
@@ -1542,11 +1541,10 @@
1542
1541
  "check-disk-space": "^3.3.1",
1543
1542
  "eslint": "^8.51.0",
1544
1543
  "file-type": "^18.5.0",
1545
- "pg": "^8.11.3",
1546
1544
  "pg-iterator": "^0.3.0",
1547
1545
  "pg-promise": "^11.5.4",
1548
1546
  "prostgles-client": "^4.0.53",
1549
- "prostgles-types": "^4.0.55",
1547
+ "prostgles-types": "^4.0.61",
1550
1548
  "typescript": "^5.2.2"
1551
1549
  }
1552
1550
  },