Skip to content

Commit 123dcaa

Browse files
Merge pull request #27 from TileDB-Inc/kostas/sc-11031/improve-performance-in-tiledb-cloud-js
Kostas/sc 11031/improve performance in tiledb cloud js
2 parents d4e687b + 76ccb96 commit 123dcaa

77 files changed

Lines changed: 5993 additions & 1033 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
src/fixtures

lib/TileDBQuery/TileDBQuery.d.ts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import { ArraySchema, Attribute, Dimension } from "../v1";
2-
import { AttributeBufferHeader, ConfigurationParameters } from "../v2";
3-
import { Query } from "../v2";
1+
import { ArraySchema } from "../v1";
2+
import { ConfigurationParameters, Query } from "../v2";
3+
import { Options } from "../utils/getResultsFromArrayBuffer";
44
declare type Range = number[] | string[];
5-
export interface QueryData extends Pick<Query, "layout"> {
5+
export interface QueryData extends Pick<Query, "layout">, Options {
66
ranges: Array<Range | Array<Range>>;
7+
/**
8+
* Number of bytes allocated to the server for the query.
9+
*/
710
bufferSize: number;
811
}
912
interface AttributeValue {
@@ -29,7 +32,9 @@ export declare class TileDBQuery {
2932
originalVarLenBufferSizeInBytes: number;
3033
originalValidityLenBufferSizeInBytes: number;
3134
}[];
32-
layout: string;
35+
layout: string; /**
36+
* Number of bytes allocated to the server for the query.
37+
*/
3338
status: string;
3439
type: string;
3540
writer: {
@@ -149,7 +154,9 @@ export declare class TileDBQuery {
149154
bufferSizes: number[];
150155
bufferStartSizes: number[];
151156
}[];
152-
};
157+
}; /**
158+
* Deserialize buffer to a Query object
159+
*/
153160
start: number;
154161
end: number;
155162
splitMultiRange: boolean;
@@ -217,7 +224,10 @@ export declare class TileDBQuery {
217224
clauses: {
218225
fieldName: string;
219226
value: number[];
220-
op: string;
227+
op: string; /**
228+
* Since we set the responseType to "arrayBuffer", in case the
229+
* response error message is a buffer, we deserialize the message before throwing
230+
*/
221231
}[];
222232
clauseCombinationOps: string[];
223233
};
@@ -261,21 +271,13 @@ export declare class TileDBQuery {
261271
}[];
262272
};
263273
}>;
264-
ReadIncompleteQuery(arraySchema: ArraySchema, queryAsArrayBuffer: ArrayBuffer, namespace: string, arrayName: string): Promise<{
274+
ReadIncompleteQuery(arraySchema: ArraySchema, queryAsArrayBuffer: ArrayBuffer, namespace: string, arrayName: string, options: Options): Promise<{
265275
query: Query;
266276
results: Record<string, any>;
267277
queryAsArrayBuffer: ArrayBuffer;
268278
}>;
269-
ReadQuery(namespace: string, arrayName: string, body: QueryData): AsyncGenerator<Record<string, any>, void, unknown>;
279+
ReadQuery(namespace: string, arrayName: string, body: QueryData): AsyncGenerator<{}, void, unknown>;
270280
private getResultsFromArrayBuffer;
271281
private throwError;
272282
}
273283
export default TileDBQuery;
274-
/**
275-
* Convert an ArrayBuffer to a map of attributes with their results
276-
* @param arrayBuffer The slice ArrayBuffer that contains the results
277-
* @param attributes
278-
* @param attributesSchema
279-
* @returns A map of attribute names with the results of every attribute
280-
*/
281-
export declare const getResults: (arrayBuffer: ArrayBuffer, attributes: AttributeBufferHeader[], attributesSchema: Array<Dimension | Attribute>) => {};

lib/TileDBQuery/TileDBQuery.js

Lines changed: 21 additions & 151 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)