@milaboratories/pl-middle-layer 1.36.0 → 1.36.2
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/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +796 -787
- package/dist/index.mjs.map +1 -1
- package/dist/middle_layer/driver_kit.d.ts.map +1 -1
- package/dist/middle_layer/ops.d.ts +3 -1
- package/dist/middle_layer/ops.d.ts.map +1 -1
- package/dist/pool/driver.d.ts +3 -2
- package/dist/pool/driver.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/middle_layer/driver_kit.ts +5 -1
- package/src/middle_layer/ops.ts +6 -1
- package/src/pool/driver.ts +29 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAMf;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS;IAEzD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"driver_kit.d.ts","sourceRoot":"","sources":["../../src/middle_layer/driver_kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAKL,cAAc,EACd,uBAAuB,EACvB,UAAU,EAGV,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAEV,uBAAuB,EACxB,MAAM,OAAO,CAAC;AAMf;;;;;;KAMK;AACL,MAAM,WAAW,oBAAqB,SAAQ,GAAG,CAAC,SAAS;IAEzD,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAEpC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE5C;;;SAGK;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;SAGK;IACL,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAgE/B"}
|
|
@@ -25,6 +25,8 @@ export type DriverKitOpsPaths = {
|
|
|
25
25
|
* If undefined, default list will be created.
|
|
26
26
|
* */
|
|
27
27
|
readonly virtualLocalStoragesOverride?: VirtualLocalStorageSpec[];
|
|
28
|
+
/** Path to the directory where pframes will spill temporary files and store materialized views */
|
|
29
|
+
readonly pframesSpillPath: string;
|
|
28
30
|
};
|
|
29
31
|
/** Options required to initialize full set of middle layer driver kit */
|
|
30
32
|
export type DriverKitOpsSettings = {
|
|
@@ -59,7 +61,7 @@ export type DriverKitOpsSettings = {
|
|
|
59
61
|
export type DriverKitOps = DriverKitOpsPaths & DriverKitOpsSettings;
|
|
60
62
|
/** Some defaults fot MiddleLayerOps. */
|
|
61
63
|
export declare const DefaultDriverKitOpsSettings: Pick<DriverKitOpsSettings, 'logger' | 'blobDriverOps' | 'downloadBlobToURLDriverOps' | 'uploadDriverOps' | 'logStreamDriverOps'>;
|
|
62
|
-
export declare function DefaultDriverKitOpsPaths(workDir: string): Pick<DriverKitOpsPaths, 'blobDownloadPath' | 'downloadBlobToURLPath'>;
|
|
64
|
+
export declare function DefaultDriverKitOpsPaths(workDir: string): Pick<DriverKitOpsPaths, 'blobDownloadPath' | 'downloadBlobToURLPath' | 'pframesSpillPath'>;
|
|
63
65
|
/** Fields with default values are marked as optional here. */
|
|
64
66
|
export type DriverKitOpsConstructor = Omit<DriverKitOpsSettings, keyof typeof DefaultDriverKitOpsSettings> & Partial<typeof DefaultDriverKitOpsSettings> & Omit<DriverKitOpsPaths, keyof ReturnType<typeof DefaultDriverKitOpsPaths>> & Partial<ReturnType<typeof DefaultDriverKitOpsPaths>>;
|
|
65
67
|
export type MiddleLayerOpsPaths = DriverKitOpsPaths & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/middle_layer/ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,qDAAqD;IACrD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC;;;;;;;;;;;SAWK;IACL,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAEpD;;;SAGK;IACL,QAAQ,CAAC,4BAA4B,CAAC,EAAE,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/middle_layer/ops.ts"],"names":[],"mappings":"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"}
|
package/dist/pool/driver.d.ts
CHANGED
|
@@ -20,10 +20,11 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
|
|
|
20
20
|
export declare class PFrameDriver implements InternalPFrameDriver {
|
|
21
21
|
private readonly blobDriver;
|
|
22
22
|
private readonly logger;
|
|
23
|
+
private readonly spillPath;
|
|
23
24
|
private readonly pFrames;
|
|
24
25
|
private readonly pTables;
|
|
25
|
-
|
|
26
|
-
constructor(
|
|
26
|
+
static init(blobDriver: DownloadDriver, logger: MiLogger, spillPath: string): Promise<PFrameDriver>;
|
|
27
|
+
private constructor();
|
|
27
28
|
createPFrame(def: PFrameDef<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>, ctx: ComputableCtx): PFrameHandle;
|
|
28
29
|
createPTable(def: PTableDef<PColumn<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>>, ctx: ComputableCtx, signal?: AbortSignal): PTableHandle;
|
|
29
30
|
findColumns(handle: PFrameHandle, request: FindColumnsRequest): Promise<FindColumnsResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EAEnB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,IAAI,eAAe,EAC/B,OAAO,EACP,SAAS,EAET,SAAS,EAIT,aAAa,EACb,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-middle-layer",
|
|
3
|
-
"version": "1.36.
|
|
3
|
+
"version": "1.36.2",
|
|
4
4
|
"description": "Pl Middle Layer",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.16.0"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"keywords": [],
|
|
23
23
|
"license": "UNLICENSED",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@milaboratories/pframes-rs-node": "1.0.
|
|
25
|
+
"@milaboratories/pframes-rs-node": "1.0.28",
|
|
26
26
|
"canonicalize": "~2.1.0",
|
|
27
27
|
"denque": "^2.1.0",
|
|
28
28
|
"lru-cache": "^11.1.0",
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
"zod": "~3.23.8",
|
|
34
34
|
"remeda": "^2.21.2",
|
|
35
35
|
"@milaboratories/pl-http": "^1.1.2",
|
|
36
|
+
"@milaboratories/pl-client": "^2.8.1",
|
|
36
37
|
"@milaboratories/computable": "^2.4.5",
|
|
37
38
|
"@milaboratories/pl-drivers": "^1.5.48",
|
|
38
39
|
"@milaboratories/resolve-helper": "^1.1.0",
|
|
39
|
-
"@milaboratories/pl-client": "^2.8.1",
|
|
40
40
|
"@platforma-sdk/block-tools": "^2.5.40",
|
|
41
|
-
"@milaboratories/pl-model-common": "^1.13.8",
|
|
42
41
|
"@milaboratories/pl-model-middle-layer": "^1.7.26",
|
|
43
|
-
"@milaboratories/pl-
|
|
44
|
-
"@platforma-sdk/model": "^1.29.22",
|
|
42
|
+
"@milaboratories/pl-model-common": "^1.13.8",
|
|
45
43
|
"@milaboratories/pl-model-backend": "^1.1.0",
|
|
44
|
+
"@platforma-sdk/model": "^1.29.22",
|
|
46
45
|
"@milaboratories/ts-helpers": "^1.1.6",
|
|
46
|
+
"@milaboratories/pl-tree": "^1.5.7",
|
|
47
|
+
"@platforma-sdk/workflow-tengo": "4.1.3",
|
|
47
48
|
"@milaboratories/pl-config": "^1.4.7",
|
|
48
|
-
"@
|
|
49
|
-
"@milaboratories/pl-deployments": "^2.1.0"
|
|
50
|
-
"@milaboratories/pl-errors": "^1.0.7"
|
|
49
|
+
"@milaboratories/pl-errors": "^1.0.7",
|
|
50
|
+
"@milaboratories/pl-deployments": "^2.1.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"semver": "^7.6.3",
|
|
@@ -112,7 +112,11 @@ export async function initDriverKit(
|
|
|
112
112
|
ops.virtualLocalStoragesOverride,
|
|
113
113
|
);
|
|
114
114
|
|
|
115
|
-
const pFrameDriver =
|
|
115
|
+
const pFrameDriver = await PFrameDriver.init(
|
|
116
|
+
blobDriver,
|
|
117
|
+
ops.logger,
|
|
118
|
+
ops.pframesSpillPath,
|
|
119
|
+
);
|
|
116
120
|
|
|
117
121
|
return {
|
|
118
122
|
blobDriver,
|
package/src/middle_layer/ops.ts
CHANGED
|
@@ -39,6 +39,9 @@ export type DriverKitOpsPaths = {
|
|
|
39
39
|
* If undefined, default list will be created.
|
|
40
40
|
* */
|
|
41
41
|
readonly virtualLocalStoragesOverride?: VirtualLocalStorageSpec[];
|
|
42
|
+
|
|
43
|
+
/** Path to the directory where pframes will spill temporary files and store materialized views */
|
|
44
|
+
readonly pframesSpillPath: string;
|
|
42
45
|
};
|
|
43
46
|
|
|
44
47
|
/** Options required to initialize full set of middle layer driver kit */
|
|
@@ -144,10 +147,12 @@ export function DefaultDriverKitOpsPaths(
|
|
|
144
147
|
workDir: string,
|
|
145
148
|
): Pick<DriverKitOpsPaths,
|
|
146
149
|
| 'blobDownloadPath'
|
|
147
|
-
| 'downloadBlobToURLPath'
|
|
150
|
+
| 'downloadBlobToURLPath'
|
|
151
|
+
| 'pframesSpillPath'> {
|
|
148
152
|
return {
|
|
149
153
|
blobDownloadPath: path.join(workDir, 'download'),
|
|
150
154
|
downloadBlobToURLPath: path.join(workDir, 'downloadToURL'),
|
|
155
|
+
pframesSpillPath: path.join(workDir, 'pframes'),
|
|
151
156
|
};
|
|
152
157
|
}
|
|
153
158
|
|
package/src/pool/driver.ts
CHANGED
|
@@ -42,10 +42,11 @@ import { RefCountResourcePool } from './ref_count_pool';
|
|
|
42
42
|
import { allBlobs, makeDataInfoFromPColumnValues, mapBlobs, parseDataInfoResource } from './data';
|
|
43
43
|
import { createHash } from 'node:crypto';
|
|
44
44
|
import type { MiLogger } from '@milaboratories/ts-helpers';
|
|
45
|
-
import { assertNever } from '@milaboratories/ts-helpers';
|
|
45
|
+
import { assertNever, ensureDirExists } from '@milaboratories/ts-helpers';
|
|
46
46
|
import canonicalize from 'canonicalize';
|
|
47
|
-
import { PFrame
|
|
47
|
+
import { PFrame } from '@milaboratories/pframes-rs-node';
|
|
48
48
|
import * as fsp from 'node:fs/promises';
|
|
49
|
+
import * as path from 'node:path';
|
|
49
50
|
import { LRUCache } from 'lru-cache';
|
|
50
51
|
import { getDebugFlags } from '../debug';
|
|
51
52
|
|
|
@@ -83,7 +84,7 @@ function migrateFilters(filters: PTableRecordFilter[]): PTableRecordFilter[] {
|
|
|
83
84
|
const bigintReplacer = (_: string, v: unknown) => (typeof v === 'bigint' ? v.toString() : v);
|
|
84
85
|
|
|
85
86
|
class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
86
|
-
public readonly
|
|
87
|
+
public readonly pFrame: PFrameInternal.PFrameV4;
|
|
87
88
|
private readonly blobIdToResource = new Map<string, ResourceInfo>();
|
|
88
89
|
private readonly blobHandleComputables = new Map<
|
|
89
90
|
string,
|
|
@@ -93,6 +94,7 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
|
93
94
|
constructor(
|
|
94
95
|
private readonly blobDriver: DownloadDriver,
|
|
95
96
|
private readonly logger: MiLogger,
|
|
97
|
+
private readonly spillPath: string,
|
|
96
98
|
private readonly blobContentCache: LRUCache<string, Uint8Array>,
|
|
97
99
|
columns: InternalPFrameData,
|
|
98
100
|
) {
|
|
@@ -123,13 +125,13 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
|
123
125
|
];
|
|
124
126
|
|
|
125
127
|
try {
|
|
126
|
-
const pFrame = new
|
|
128
|
+
const pFrame = new PFrame(this.spillPath, getDebugFlags().logPFrameRequests ? logFunc : undefined);
|
|
127
129
|
pFrame.setDataSource(this);
|
|
128
130
|
for (const column of distinctСolumns) {
|
|
129
131
|
pFrame.addColumnSpec(column.id, column.spec);
|
|
130
132
|
pFrame.setColumnData(column.id, column.data);
|
|
131
133
|
}
|
|
132
|
-
this.
|
|
134
|
+
this.pFrame = pFrame;
|
|
133
135
|
} catch (err: unknown) {
|
|
134
136
|
throw new Error(
|
|
135
137
|
`Rust PFrame creation failed, columns: ${JSON.stringify(distinctСolumns)}, error: ${err as Error}`,
|
|
@@ -176,7 +178,7 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
|
176
178
|
|
|
177
179
|
[Symbol.dispose](): void {
|
|
178
180
|
for (const computable of this.blobHandleComputables.values()) computable.resetState();
|
|
179
|
-
this.
|
|
181
|
+
this.pFrame.dispose();
|
|
180
182
|
}
|
|
181
183
|
}
|
|
182
184
|
|
|
@@ -232,23 +234,33 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
|
|
|
232
234
|
export class PFrameDriver implements InternalPFrameDriver {
|
|
233
235
|
private readonly pFrames: RefCountResourcePool<InternalPFrameData, PFrameHolder>;
|
|
234
236
|
private readonly pTables: RefCountResourcePool<FullPTableDef, PTableHolder>;
|
|
235
|
-
private readonly blobContentCache: LRUCache<string, Uint8Array>;
|
|
236
237
|
|
|
237
|
-
|
|
238
|
+
public static async init(
|
|
239
|
+
blobDriver: DownloadDriver,
|
|
240
|
+
logger: MiLogger,
|
|
241
|
+
spillPath: string,
|
|
242
|
+
): Promise<PFrameDriver> {
|
|
243
|
+
const resolvedSpillPath = path.resolve(spillPath);
|
|
244
|
+
await ensureDirExists(resolvedSpillPath);
|
|
245
|
+
return new PFrameDriver(blobDriver, logger, resolvedSpillPath);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
private constructor(
|
|
238
249
|
private readonly blobDriver: DownloadDriver,
|
|
239
250
|
private readonly logger: MiLogger,
|
|
251
|
+
private readonly spillPath: string,
|
|
240
252
|
) {
|
|
241
253
|
const blobContentCache = new LRUCache<string, Uint8Array>({
|
|
242
254
|
maxSize: 1_000_000_000, // 1Gb
|
|
243
255
|
fetchMethod: async (key) => await fsp.readFile(key),
|
|
244
256
|
sizeCalculation: (v) => v.length,
|
|
245
257
|
});
|
|
246
|
-
this.blobContentCache = blobContentCache;
|
|
247
258
|
|
|
248
259
|
this.pFrames = new (class extends RefCountResourcePool<InternalPFrameData, PFrameHolder> {
|
|
249
260
|
constructor(
|
|
250
261
|
private readonly blobDriver: DownloadDriver,
|
|
251
262
|
private readonly logger: MiLogger,
|
|
263
|
+
private readonly spillPath: string,
|
|
252
264
|
) {
|
|
253
265
|
super();
|
|
254
266
|
}
|
|
@@ -258,13 +270,13 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
258
270
|
logger.info(
|
|
259
271
|
`PFrame creation (pFrameHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
|
|
260
272
|
);
|
|
261
|
-
return new PFrameHolder(this.blobDriver, this.logger, blobContentCache, params);
|
|
273
|
+
return new PFrameHolder(this.blobDriver, this.logger, this.spillPath, blobContentCache, params);
|
|
262
274
|
}
|
|
263
275
|
|
|
264
276
|
protected calculateParamsKey(params: InternalPFrameData): string {
|
|
265
277
|
return stableKeyFromPFrameData(params);
|
|
266
278
|
}
|
|
267
|
-
})(this.blobDriver, this.logger);
|
|
279
|
+
})(this.blobDriver, this.logger, this.spillPath);
|
|
268
280
|
|
|
269
281
|
this.pTables = new (class extends RefCountResourcePool<
|
|
270
282
|
FullPTableDef,
|
|
@@ -283,7 +295,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
283
295
|
`PTable creation (pTableHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
|
|
284
296
|
);
|
|
285
297
|
}
|
|
286
|
-
const tablePromise = this.pFrames.getByKey(handle).
|
|
298
|
+
const tablePromise = this.pFrames.getByKey(handle).pFrame.createTable({
|
|
287
299
|
src: joinEntryToInternal(params.def.src),
|
|
288
300
|
filters: migrateFilters(params.def.filters),
|
|
289
301
|
}, params.signal).then(async (table) => {
|
|
@@ -368,7 +380,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
368
380
|
}]
|
|
369
381
|
: [],
|
|
370
382
|
};
|
|
371
|
-
const responce = await this.pFrames.getByKey(handle).
|
|
383
|
+
const responce = await this.pFrames.getByKey(handle).pFrame.findColumns(iRequest);
|
|
372
384
|
return {
|
|
373
385
|
hits: responce.hits
|
|
374
386
|
.filter((h) => // only exactly matching columns
|
|
@@ -381,11 +393,11 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
381
393
|
}
|
|
382
394
|
|
|
383
395
|
public async getColumnSpec(handle: PFrameHandle, columnId: PObjectId): Promise<PColumnSpec> {
|
|
384
|
-
return await this.pFrames.getByKey(handle).
|
|
396
|
+
return await this.pFrames.getByKey(handle).pFrame.getColumnSpec(columnId);
|
|
385
397
|
}
|
|
386
398
|
|
|
387
399
|
public async listColumns(handle: PFrameHandle): Promise<PColumnIdAndSpec[]> {
|
|
388
|
-
return await this.pFrames.getByKey(handle).
|
|
400
|
+
return await this.pFrames.getByKey(handle).pFrame.listColumns();
|
|
389
401
|
}
|
|
390
402
|
|
|
391
403
|
public async calculateTableData(
|
|
@@ -398,7 +410,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
398
410
|
`Call calculateTableData, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
|
|
399
411
|
);
|
|
400
412
|
}
|
|
401
|
-
return await this.pFrames.getByKey(handle).
|
|
413
|
+
return await this.pFrames.getByKey(handle).pFrame.createTable({
|
|
402
414
|
src: joinEntryToInternal(request.src),
|
|
403
415
|
filters: migrateFilters(request.filters),
|
|
404
416
|
}, signal).then(async (table) => {
|
|
@@ -432,7 +444,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
432
444
|
`Call getUniqueValues, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
|
|
433
445
|
);
|
|
434
446
|
}
|
|
435
|
-
return await this.pFrames.getByKey(handle).
|
|
447
|
+
return await this.pFrames.getByKey(handle).pFrame.getUniqueValues({
|
|
436
448
|
...request,
|
|
437
449
|
filters: migrateFilters(request.filters),
|
|
438
450
|
}, signal);
|