prostgles-server 4.1.153 → 4.1.155
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/dist/DboBuilder/QueryStreamer.d.ts +2 -0
- package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
- package/dist/DboBuilder/QueryStreamer.js +9 -1
- package/dist/DboBuilder/QueryStreamer.js.map +1 -1
- package/lib/DboBuilder/QueryStreamer.ts +11 -1
- package/package.json +1 -1
- package/tests/server/package-lock.json +1 -1
|
@@ -4,6 +4,7 @@ import { DB } from "../initProstgles";
|
|
|
4
4
|
import { DboBuilder } from "./DboBuilder";
|
|
5
5
|
import { PRGLIOSocket } from "./DboBuilderTypes";
|
|
6
6
|
import CursorType from 'pg-cursor';
|
|
7
|
+
import { VoidFunction } from "../SchemaWatch";
|
|
7
8
|
type ClientStreamedRequest = {
|
|
8
9
|
socket: PRGLIOSocket;
|
|
9
10
|
query: string;
|
|
@@ -13,6 +14,7 @@ type ClientStreamedRequest = {
|
|
|
13
14
|
type StreamedQuery = ClientStreamedRequest & {
|
|
14
15
|
cursor: CursorType | undefined;
|
|
15
16
|
client: pg.Client | undefined;
|
|
17
|
+
stop?: VoidFunction;
|
|
16
18
|
onError: ((error: any) => void);
|
|
17
19
|
};
|
|
18
20
|
export declare class QueryStreamer {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAY,UAAU,EAAyB,qBAAqB,EAAsB,MAAM,iBAAiB,CAAC;AAEzH,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,UAAU,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"QueryStreamer.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAY,UAAU,EAAyB,qBAAqB,EAAsB,MAAM,iBAAiB,CAAC;AAEzH,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,UAAU,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,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;CAC7B,CAAA;AACD,KAAK,aAAa,GAAG,qBAAqB,GAAG;IAC3C,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;CACjC,CAAA;AAiBD,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;IAClE,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC;gBACX,UAAU,EAAE,UAAU;IAelC,aAAa,mBAAoB,GAAG,KAAK,IAAI,8BAA8B,GAAG,YAAY,eAOzF;IAED,YAAY,aAAc,MAAM,UAS/B;IAED,MAAM,UAAiB,qBAAqB,KAAG,QAAQ,qBAAqB,CAAC,CAyK5E;CACF"}
|
|
@@ -46,7 +46,9 @@ class QueryStreamer {
|
|
|
46
46
|
const socketQueries = this.socketQueries[socketId];
|
|
47
47
|
if (!socketQueries)
|
|
48
48
|
return;
|
|
49
|
-
Object.values(socketQueries).forEach(({ client }) => {
|
|
49
|
+
Object.values(socketQueries).forEach(({ client, stop }) => {
|
|
50
|
+
stop?.();
|
|
51
|
+
/** end does not stop active query?! */
|
|
50
52
|
client?.end();
|
|
51
53
|
});
|
|
52
54
|
delete this.socketQueries[socketId];
|
|
@@ -164,6 +166,11 @@ class QueryStreamer {
|
|
|
164
166
|
const { client: queryClient } = this.socketQueries[socketId]?.[id] ?? {};
|
|
165
167
|
if (!queryClient)
|
|
166
168
|
return;
|
|
169
|
+
if (opts?.terminate) {
|
|
170
|
+
setTimeout(() => {
|
|
171
|
+
queryClient.end();
|
|
172
|
+
}, 4e3);
|
|
173
|
+
}
|
|
167
174
|
try {
|
|
168
175
|
const stopFunction = opts?.terminate ? "pg_terminate_backend" : "pg_cancel_backend";
|
|
169
176
|
const rows = await this.adminClient.query(`SELECT ${stopFunction}(pid), pid, state, query FROM pg_stat_activity WHERE pid = $1`, [processID]);
|
|
@@ -174,6 +181,7 @@ class QueryStreamer {
|
|
|
174
181
|
cb(null, error);
|
|
175
182
|
}
|
|
176
183
|
};
|
|
184
|
+
this.socketQueries[socketId][id].stop = () => stop({ terminate: true }, () => { });
|
|
177
185
|
socket.removeAllListeners(unsubChannel);
|
|
178
186
|
socket.once(unsubChannel, stop);
|
|
179
187
|
let runCount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryStreamer.js","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,qDAAyH;AAKzH,uDAA0F;AAC1F,qCAAqE;
|
|
1
|
+
{"version":3,"file":"QueryStreamer.js","sourceRoot":"","sources":["../../lib/DboBuilder/QueryStreamer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { PRGLIOSocket } from "./DboBuilderTypes";
|
|
|
7
7
|
import { getErrorAsObject, getSerializedClientErrorFromPGError } from "./dboBuilderUtils";
|
|
8
8
|
import { getDetailedFieldInfo, watchSchemaFallback } from "./runSQL";
|
|
9
9
|
import CursorType from 'pg-cursor'
|
|
10
|
+
import { VoidFunction } from "../SchemaWatch";
|
|
10
11
|
const Cursor: typeof CursorType = require('pg-cursor');
|
|
11
12
|
|
|
12
13
|
type ClientStreamedRequest = {
|
|
@@ -18,6 +19,7 @@ type ClientStreamedRequest = {
|
|
|
18
19
|
type StreamedQuery = ClientStreamedRequest & {
|
|
19
20
|
cursor: CursorType | undefined;
|
|
20
21
|
client: pg.Client | undefined;
|
|
22
|
+
stop?: VoidFunction;
|
|
21
23
|
onError: ((error: any) => void);
|
|
22
24
|
}
|
|
23
25
|
type Info = {
|
|
@@ -68,7 +70,9 @@ export class QueryStreamer {
|
|
|
68
70
|
onDisconnect = (socketId: string) => {
|
|
69
71
|
const socketQueries = this.socketQueries[socketId];
|
|
70
72
|
if(!socketQueries) return;
|
|
71
|
-
Object.values(socketQueries).forEach(({ client }) => {
|
|
73
|
+
Object.values(socketQueries).forEach(({ client, stop }) => {
|
|
74
|
+
stop?.();
|
|
75
|
+
/** end does not stop active query?! */
|
|
72
76
|
client?.end();
|
|
73
77
|
});
|
|
74
78
|
delete this.socketQueries[socketId];
|
|
@@ -189,6 +193,11 @@ export class QueryStreamer {
|
|
|
189
193
|
const stop = async (opts: { terminate?: boolean; } | undefined, cb: BasicCallback) => {
|
|
190
194
|
const { client: queryClient } = this.socketQueries[socketId]?.[id] ?? {};
|
|
191
195
|
if(!queryClient) return;
|
|
196
|
+
if(opts?.terminate){
|
|
197
|
+
setTimeout(() => {
|
|
198
|
+
queryClient.end();
|
|
199
|
+
}, 4e3);
|
|
200
|
+
}
|
|
192
201
|
try {
|
|
193
202
|
const stopFunction = opts?.terminate? "pg_terminate_backend" : "pg_cancel_backend";
|
|
194
203
|
const rows = await this.adminClient.query(`SELECT ${stopFunction}(pid), pid, state, query FROM pg_stat_activity WHERE pid = $1`, [processID]);
|
|
@@ -198,6 +207,7 @@ export class QueryStreamer {
|
|
|
198
207
|
cb(null, error);
|
|
199
208
|
}
|
|
200
209
|
}
|
|
210
|
+
this.socketQueries[socketId]![id]!.stop = () => stop({ terminate: true }, () => { /* Empty */ });
|
|
201
211
|
|
|
202
212
|
socket.removeAllListeners(unsubChannel);
|
|
203
213
|
socket.once(unsubChannel, stop);
|
package/package.json
CHANGED