prostgles-server 4.2.52 → 4.2.54
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/ViewHandler/ViewHandler.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +9 -6
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/lib/DboBuilder/ViewHandler/count.ts +16 -13
- package/package.json +1 -1
- package/tests/isomorphicQueries.spec.ts +12 -3
- package/tests/server/package-lock.json +1 -1
|
@@ -72,7 +72,7 @@ export declare class ViewHandler {
|
|
|
72
72
|
unsubscribe: () => any;
|
|
73
73
|
}>;
|
|
74
74
|
subscribeOne(filter: Filter, params: SubscribeParams, localFunc: undefined, table_rules: TableRule, localParams: LocalParams): Promise<string>;
|
|
75
|
-
count: (_filter?: Filter | undefined, selectParams?: SelectParams | undefined,
|
|
75
|
+
count: (_filter?: Filter | undefined, selectParams?: SelectParams | undefined, _param3_unused?: undefined, table_rules?: TableRule | undefined, localParams?: LocalParams | undefined) => Promise<number>;
|
|
76
76
|
size: (_filter?: Filter | undefined, selectParams?: SelectParams | undefined, param3_unused?: undefined, table_rules?: TableRule | undefined, localParams?: LocalParams | undefined) => Promise<string>;
|
|
77
77
|
getAllowedSelectFields(selectParams: FieldFilter | undefined, allowed_cols: FieldFilter, allow_empty?: boolean): string[];
|
|
78
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHandler.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/ViewHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ViewHandler.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/ViewHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import { SelectParams } from "prostgles-types";
|
|
|
2
2
|
import { ViewHandler } from "./ViewHandler";
|
|
3
3
|
import { Filter, LocalParams } from "../DboBuilder";
|
|
4
4
|
import { TableRule } from "../../PublishParser/publishTypesAndUtils";
|
|
5
|
-
export declare function count(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams,
|
|
5
|
+
export declare function count(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams, _param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<number>;
|
|
6
6
|
//# sourceMappingURL=count.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAErE,wBAAsB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAErE,wBAAsB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B7L"}
|
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.count = void 0;
|
|
4
4
|
const dboBuilderUtils_1 = require("../dboBuilderUtils");
|
|
5
|
-
async function count(_filter, selectParams,
|
|
5
|
+
async function count(_filter, selectParams, _param3_unused, table_rules, localParams) {
|
|
6
6
|
const filter = _filter || {};
|
|
7
|
+
const { limit: _limit, ...selectParamsWithoutLimit } = selectParams ?? {};
|
|
7
8
|
try {
|
|
8
9
|
await this._log({ command: "count", localParams, data: { filter } });
|
|
9
|
-
return await this.find(filter, { select: "", limit: 0 }, undefined, table_rules, localParams)
|
|
10
|
+
return await this.find(filter, { select: selectParamsWithoutLimit?.select ?? "", limit: 0 }, undefined, table_rules, localParams)
|
|
10
11
|
.then(async (_allowed) => {
|
|
11
|
-
const
|
|
12
|
+
const findQuery = await this.find(filter, selectParamsWithoutLimit, undefined, table_rules, { ...localParams, returnQuery: "noRLS", bypassLimit: true });
|
|
12
13
|
const query = [
|
|
13
14
|
(0, dboBuilderUtils_1.withUserRLS)(localParams, ""),
|
|
14
|
-
"SELECT COUNT(*)
|
|
15
|
-
|
|
15
|
+
"SELECT COUNT(*)",
|
|
16
|
+
"FROM (",
|
|
17
|
+
findQuery,
|
|
16
18
|
") t"
|
|
17
19
|
].join("\n");
|
|
18
|
-
|
|
20
|
+
const handler = this.tx?.t ?? this.db;
|
|
21
|
+
return handler.one(query).then(({ count }) => +count);
|
|
19
22
|
});
|
|
20
23
|
}
|
|
21
24
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/count.ts"],"names":[],"mappings":";;;AACA,wDAA6D;AAKtD,KAAK,UAAU,KAAK,CAAoB,OAAgB,EAAE,YAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"count.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/count.ts"],"names":[],"mappings":";;;AACA,wDAA6D;AAKtD,KAAK,UAAU,KAAK,CAAoB,OAAgB,EAAE,YAA2B,EAAE,cAA0B,EAAE,WAAuB,EAAE,WAAyB;IAC1K,MAAM,MAAM,GAAG,OAAO,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,wBAAwB,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;aAC9H,IAAI,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,MAAM,EACN,wBAAwB,EACxB,SAAS,EACT,WAAW,EACX,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CACvC,CAAC;YACvB,MAAM,KAAK,GAAG;gBACZ,IAAA,6BAAW,EAAC,WAAW,EAAE,EAAE,CAAC;gBAC5B,iBAAiB;gBACjB,QAAQ;gBACR,SAAS;gBACT,KAAK;aACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;YAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAA,4BAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,UAAU,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AA5BD,sBA4BC"}
|
|
@@ -4,26 +4,29 @@ import { ViewHandler } from "./ViewHandler";
|
|
|
4
4
|
import { Filter, LocalParams } from "../DboBuilder";
|
|
5
5
|
import { TableRule } from "../../PublishParser/publishTypesAndUtils";
|
|
6
6
|
|
|
7
|
-
export async function count(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams,
|
|
7
|
+
export async function count(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams, _param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<number> {
|
|
8
8
|
const filter = _filter || {};
|
|
9
|
+
const { limit: _limit, ...selectParamsWithoutLimit } = selectParams ?? {};
|
|
9
10
|
try {
|
|
10
11
|
await this._log({ command: "count", localParams, data: { filter } });
|
|
11
|
-
return await this.find(filter, { select: "", limit: 0 }, undefined, table_rules, localParams)
|
|
12
|
-
.then(async _allowed => {
|
|
13
|
-
const
|
|
12
|
+
return await this.find(filter, { select: selectParamsWithoutLimit?.select ?? "", limit: 0 }, undefined, table_rules, localParams)
|
|
13
|
+
.then(async _allowed => {
|
|
14
|
+
const findQuery = await this.find(
|
|
14
15
|
filter,
|
|
15
|
-
|
|
16
|
+
selectParamsWithoutLimit,
|
|
16
17
|
undefined,
|
|
17
18
|
table_rules,
|
|
18
19
|
{ ...localParams, returnQuery: "noRLS", bypassLimit: true }
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
) as unknown as string;
|
|
21
|
+
const query = [
|
|
22
|
+
withUserRLS(localParams, ""),
|
|
23
|
+
"SELECT COUNT(*)",
|
|
24
|
+
"FROM (",
|
|
25
|
+
findQuery,
|
|
26
|
+
") t"
|
|
27
|
+
].join("\n");
|
|
28
|
+
const handler = this.tx?.t ?? this.db;
|
|
29
|
+
return handler.one(query).then(({ count }) => +count);
|
|
27
30
|
});
|
|
28
31
|
} catch (e) {
|
|
29
32
|
if (localParams && localParams.testRule) throw e;
|
package/package.json
CHANGED
|
@@ -553,17 +553,26 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
553
553
|
const res = await db.items.find!({}, { select: { name: 1 }, orderBy: [{ key: "name", asc: false, nulls: "first", nullEmpty: true }] });
|
|
554
554
|
assert.deepStrictEqual(res, [{ name: 'b'}, { name: 'a'}, { name: 'a'}]);
|
|
555
555
|
});
|
|
556
|
-
|
|
557
556
|
await test("Order by aliased func", async () => {
|
|
558
557
|
const res = await db.items.find!({ }, { select: { uname: { $upper: ["name"] }, count: { $countAll: [] } }, orderBy: { uname: -1 }});
|
|
559
558
|
assert.deepStrictEqual(res, [{ uname: 'B', count: '1'}, { uname: 'A', count: '2'} ])
|
|
560
559
|
});
|
|
561
|
-
|
|
560
|
+
await test("Filter by aliased func", async () => {
|
|
561
|
+
const res = await db.items.find!({ uname: 'B' }, { select: { uname: { $upper: ["name"] }, count: { $countAll: [] } } });
|
|
562
|
+
assert.deepStrictEqual(res, [{ uname: 'B', count: '1'}])
|
|
563
|
+
});
|
|
564
|
+
await test("Count with Filter by aliased func ", async () => {
|
|
565
|
+
const res = await db.items.count!({ uname: 'A' }, { select: { uname: { $upper: ["name"] } } });
|
|
566
|
+
assert.deepStrictEqual(res, 2)
|
|
567
|
+
});
|
|
568
|
+
await test("Count with Aggregate and Filter by aliased func ", async () => {
|
|
569
|
+
const res = await db.items.count!({ uname: 'A' }, { select: { uname: { $upper: ["name"] }, count: { $countAll: [] } } });
|
|
570
|
+
assert.deepStrictEqual(res, 1)
|
|
571
|
+
});
|
|
562
572
|
await test("Order by aggregation", async () => {
|
|
563
573
|
const res = await db.items.find!({ }, { select: { name: 1, count: { $countAll: [] } }, orderBy: { count: -1 }});
|
|
564
574
|
assert.deepStrictEqual(res, [ { name: 'a', count: '2'} , { name: 'b', count: '1'} ])
|
|
565
575
|
});
|
|
566
|
-
|
|
567
576
|
await test("Order by colliding alias name", async () => {
|
|
568
577
|
const res = await db.items.find!({ }, { select: { name: { $countAll: [] }, n: { $left: ["name", 1]} }, orderBy: { name: -1 }});
|
|
569
578
|
assert.deepStrictEqual(res, [ { name: '2', n: 'a' } , { name: '1', n: 'b'} ])
|