@milaboratories/pl-middle-layer 1.36.1 → 1.36.3
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 +792 -793
- 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 +14 -14
- package/src/middle_layer/driver_kit.ts +5 -1
- package/src/middle_layer/ops.ts +6 -1
- package/src/pool/driver.ts +30 -28
|
@@ -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.3",
|
|
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.29",
|
|
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/computable": "^2.4.6",
|
|
36
37
|
"@milaboratories/resolve-helper": "^1.1.0",
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@milaboratories/pl-client": "^2.8.1",
|
|
40
|
-
"@milaboratories/pl-drivers": "^1.5.48",
|
|
41
|
-
"@milaboratories/pl-model-middle-layer": "^1.7.26",
|
|
38
|
+
"@platforma-sdk/block-tools": "^2.5.41",
|
|
39
|
+
"@milaboratories/pl-client": "^2.8.2",
|
|
42
40
|
"@milaboratories/pl-model-common": "^1.13.8",
|
|
41
|
+
"@milaboratories/pl-drivers": "^1.5.49",
|
|
43
42
|
"@milaboratories/pl-model-backend": "^1.1.0",
|
|
44
|
-
"@milaboratories/pl-tree": "^1.5.
|
|
43
|
+
"@milaboratories/pl-tree": "^1.5.8",
|
|
44
|
+
"@milaboratories/pl-model-middle-layer": "^1.7.26",
|
|
45
45
|
"@platforma-sdk/model": "^1.29.22",
|
|
46
|
-
"@milaboratories/ts-helpers": "^1.1.6",
|
|
47
46
|
"@platforma-sdk/workflow-tengo": "4.1.3",
|
|
48
|
-
"@milaboratories/pl-
|
|
49
|
-
"@milaboratories/pl-
|
|
50
|
-
"@milaboratories/
|
|
47
|
+
"@milaboratories/pl-errors": "^1.0.8",
|
|
48
|
+
"@milaboratories/pl-config": "^1.4.8",
|
|
49
|
+
"@milaboratories/ts-helpers": "^1.1.7",
|
|
50
|
+
"@milaboratories/pl-deployments": "^2.1.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"semver": "^7.6.3",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"jest": "^29.7.0",
|
|
61
61
|
"@jest/globals": "^29.7.0",
|
|
62
62
|
"ts-jest": "^29.2.6",
|
|
63
|
-
"@milaboratories/
|
|
64
|
-
"@milaboratories/
|
|
63
|
+
"@milaboratories/platforma-build-configs": "1.0.3",
|
|
64
|
+
"@milaboratories/eslint-config": "^1.0.4"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
67
|
"type-check": "tsc --noEmit --composite false",
|
|
@@ -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, emptyDir } 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,20 +94,11 @@ 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
|
) {
|
|
99
|
-
const logFunc: PFrameInternal.Logger = (level
|
|
100
|
-
switch (level) {
|
|
101
|
-
default:
|
|
102
|
-
case 'info':
|
|
103
|
-
return this.logger.info(message);
|
|
104
|
-
case 'warn':
|
|
105
|
-
return this.logger.warn(message);
|
|
106
|
-
case 'error':
|
|
107
|
-
return this.logger.error(message);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
101
|
+
const logFunc: PFrameInternal.Logger = (level, message) => this.logger[level](message);
|
|
110
102
|
|
|
111
103
|
for (const column of columns) {
|
|
112
104
|
for (const blob of allBlobs(column.data)) {
|
|
@@ -123,13 +115,13 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
|
123
115
|
];
|
|
124
116
|
|
|
125
117
|
try {
|
|
126
|
-
const pFrame = new
|
|
118
|
+
const pFrame = new PFrame(this.spillPath, getDebugFlags().logPFrameRequests ? logFunc : undefined);
|
|
127
119
|
pFrame.setDataSource(this);
|
|
128
120
|
for (const column of distinctСolumns) {
|
|
129
121
|
pFrame.addColumnSpec(column.id, column.spec);
|
|
130
122
|
pFrame.setColumnData(column.id, column.data);
|
|
131
123
|
}
|
|
132
|
-
this.
|
|
124
|
+
this.pFrame = pFrame;
|
|
133
125
|
} catch (err: unknown) {
|
|
134
126
|
throw new Error(
|
|
135
127
|
`Rust PFrame creation failed, columns: ${JSON.stringify(distinctСolumns)}, error: ${err as Error}`,
|
|
@@ -176,7 +168,7 @@ class PFrameHolder implements PFrameInternal.PFrameDataSource, Disposable {
|
|
|
176
168
|
|
|
177
169
|
[Symbol.dispose](): void {
|
|
178
170
|
for (const computable of this.blobHandleComputables.values()) computable.resetState();
|
|
179
|
-
this.
|
|
171
|
+
this.pFrame.dispose();
|
|
180
172
|
}
|
|
181
173
|
}
|
|
182
174
|
|
|
@@ -232,23 +224,33 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
|
|
|
232
224
|
export class PFrameDriver implements InternalPFrameDriver {
|
|
233
225
|
private readonly pFrames: RefCountResourcePool<InternalPFrameData, PFrameHolder>;
|
|
234
226
|
private readonly pTables: RefCountResourcePool<FullPTableDef, PTableHolder>;
|
|
235
|
-
private readonly blobContentCache: LRUCache<string, Uint8Array>;
|
|
236
227
|
|
|
237
|
-
|
|
228
|
+
public static async init(
|
|
229
|
+
blobDriver: DownloadDriver,
|
|
230
|
+
logger: MiLogger,
|
|
231
|
+
spillPath: string,
|
|
232
|
+
): Promise<PFrameDriver> {
|
|
233
|
+
const resolvedSpillPath = path.resolve(spillPath);
|
|
234
|
+
await emptyDir(resolvedSpillPath);
|
|
235
|
+
return new PFrameDriver(blobDriver, logger, resolvedSpillPath);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
private constructor(
|
|
238
239
|
private readonly blobDriver: DownloadDriver,
|
|
239
240
|
private readonly logger: MiLogger,
|
|
241
|
+
private readonly spillPath: string,
|
|
240
242
|
) {
|
|
241
243
|
const blobContentCache = new LRUCache<string, Uint8Array>({
|
|
242
244
|
maxSize: 1_000_000_000, // 1Gb
|
|
243
245
|
fetchMethod: async (key) => await fsp.readFile(key),
|
|
244
246
|
sizeCalculation: (v) => v.length,
|
|
245
247
|
});
|
|
246
|
-
this.blobContentCache = blobContentCache;
|
|
247
248
|
|
|
248
249
|
this.pFrames = new (class extends RefCountResourcePool<InternalPFrameData, PFrameHolder> {
|
|
249
250
|
constructor(
|
|
250
251
|
private readonly blobDriver: DownloadDriver,
|
|
251
252
|
private readonly logger: MiLogger,
|
|
253
|
+
private readonly spillPath: string,
|
|
252
254
|
) {
|
|
253
255
|
super();
|
|
254
256
|
}
|
|
@@ -258,13 +260,13 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
258
260
|
logger.info(
|
|
259
261
|
`PFrame creation (pFrameHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
|
|
260
262
|
);
|
|
261
|
-
return new PFrameHolder(this.blobDriver, this.logger, blobContentCache, params);
|
|
263
|
+
return new PFrameHolder(this.blobDriver, this.logger, this.spillPath, blobContentCache, params);
|
|
262
264
|
}
|
|
263
265
|
|
|
264
266
|
protected calculateParamsKey(params: InternalPFrameData): string {
|
|
265
267
|
return stableKeyFromPFrameData(params);
|
|
266
268
|
}
|
|
267
|
-
})(this.blobDriver, this.logger);
|
|
269
|
+
})(this.blobDriver, this.logger, this.spillPath);
|
|
268
270
|
|
|
269
271
|
this.pTables = new (class extends RefCountResourcePool<
|
|
270
272
|
FullPTableDef,
|
|
@@ -283,7 +285,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
283
285
|
`PTable creation (pTableHandle = ${this.calculateParamsKey(params)}): ${JSON.stringify(params, bigintReplacer)}`,
|
|
284
286
|
);
|
|
285
287
|
}
|
|
286
|
-
const tablePromise = this.pFrames.getByKey(handle).
|
|
288
|
+
const tablePromise = this.pFrames.getByKey(handle).pFrame.createTable({
|
|
287
289
|
src: joinEntryToInternal(params.def.src),
|
|
288
290
|
filters: migrateFilters(params.def.filters),
|
|
289
291
|
}, params.signal).then(async (table) => {
|
|
@@ -368,7 +370,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
368
370
|
}]
|
|
369
371
|
: [],
|
|
370
372
|
};
|
|
371
|
-
const responce = await this.pFrames.getByKey(handle).
|
|
373
|
+
const responce = await this.pFrames.getByKey(handle).pFrame.findColumns(iRequest);
|
|
372
374
|
return {
|
|
373
375
|
hits: responce.hits
|
|
374
376
|
.filter((h) => // only exactly matching columns
|
|
@@ -381,11 +383,11 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
381
383
|
}
|
|
382
384
|
|
|
383
385
|
public async getColumnSpec(handle: PFrameHandle, columnId: PObjectId): Promise<PColumnSpec> {
|
|
384
|
-
return await this.pFrames.getByKey(handle).
|
|
386
|
+
return await this.pFrames.getByKey(handle).pFrame.getColumnSpec(columnId);
|
|
385
387
|
}
|
|
386
388
|
|
|
387
389
|
public async listColumns(handle: PFrameHandle): Promise<PColumnIdAndSpec[]> {
|
|
388
|
-
return await this.pFrames.getByKey(handle).
|
|
390
|
+
return await this.pFrames.getByKey(handle).pFrame.listColumns();
|
|
389
391
|
}
|
|
390
392
|
|
|
391
393
|
public async calculateTableData(
|
|
@@ -398,7 +400,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
398
400
|
`Call calculateTableData, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
|
|
399
401
|
);
|
|
400
402
|
}
|
|
401
|
-
return await this.pFrames.getByKey(handle).
|
|
403
|
+
return await this.pFrames.getByKey(handle).pFrame.createTable({
|
|
402
404
|
src: joinEntryToInternal(request.src),
|
|
403
405
|
filters: migrateFilters(request.filters),
|
|
404
406
|
}, signal).then(async (table) => {
|
|
@@ -432,7 +434,7 @@ export class PFrameDriver implements InternalPFrameDriver {
|
|
|
432
434
|
`Call getUniqueValues, handle = ${handle}, request = ${JSON.stringify(request, bigintReplacer)}`,
|
|
433
435
|
);
|
|
434
436
|
}
|
|
435
|
-
return await this.pFrames.getByKey(handle).
|
|
437
|
+
return await this.pFrames.getByKey(handle).pFrame.getUniqueValues({
|
|
436
438
|
...request,
|
|
437
439
|
filters: migrateFilters(request.filters),
|
|
438
440
|
}, signal);
|