@uwdata/mosaic-core 0.18.0 → 0.19.1

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.
Files changed (43) hide show
  1. package/dist/src/Coordinator.d.ts +16 -4
  2. package/dist/src/Coordinator.d.ts.map +1 -1
  3. package/dist/src/Coordinator.js +0 -19
  4. package/dist/src/Coordinator.js.map +1 -1
  5. package/dist/src/MosaicClient.d.ts.map +1 -1
  6. package/dist/src/MosaicClient.js +1 -0
  7. package/dist/src/MosaicClient.js.map +1 -1
  8. package/dist/src/QueryConsolidator.js +4 -4
  9. package/dist/src/QueryConsolidator.js.map +1 -1
  10. package/dist/src/Selection.d.ts +9 -9
  11. package/dist/src/Selection.d.ts.map +1 -1
  12. package/dist/src/Selection.js +9 -6
  13. package/dist/src/Selection.js.map +1 -1
  14. package/dist/src/SelectionClause.d.ts +55 -25
  15. package/dist/src/SelectionClause.d.ts.map +1 -1
  16. package/dist/src/SelectionClause.js +52 -10
  17. package/dist/src/SelectionClause.js.map +1 -1
  18. package/dist/src/connectors/wasm.d.ts +3 -0
  19. package/dist/src/connectors/wasm.d.ts.map +1 -1
  20. package/dist/src/connectors/wasm.js +5 -2
  21. package/dist/src/connectors/wasm.js.map +1 -1
  22. package/dist/src/index.d.ts +1 -1
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js +1 -1
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/make-client.d.ts +2 -4
  27. package/dist/src/make-client.d.ts.map +1 -1
  28. package/dist/src/make-client.js +1 -1
  29. package/dist/src/util/decode-ipc.d.ts +1 -1
  30. package/dist/src/util/decode-ipc.d.ts.map +1 -1
  31. package/dist/src/util/decode-ipc.js.map +1 -1
  32. package/dist/src/util/field-info.js.map +1 -1
  33. package/package.json +6 -6
  34. package/src/Coordinator.ts +32 -3
  35. package/src/MosaicClient.ts +1 -0
  36. package/src/QueryConsolidator.ts +4 -4
  37. package/src/Selection.ts +12 -9
  38. package/src/SelectionClause.ts +147 -65
  39. package/src/connectors/wasm.ts +9 -4
  40. package/src/index.ts +3 -1
  41. package/src/make-client.ts +2 -2
  42. package/src/util/decode-ipc.ts +4 -1
  43. package/src/util/field-info.ts +3 -3
@@ -1,5 +1,5 @@
1
1
  import { isMosaicClient } from './MosaicClient.js';
2
- import { and, contains, isBetween, isIn, isNotDistinct, literal, or, prefix, regexp_matches, suffix } from '@uwdata/mosaic-sql';
2
+ import { and, contains, isBetween, isIn, isNotDistinct, literal, or, prefix, regexp_matches, suffix, listHasAny, listHasAll, lower } from '@uwdata/mosaic-sql';
3
3
  /**
4
4
  * Generate a selection clause for a single selected point value.
5
5
  * @param field The table column or expression to select.
@@ -37,7 +37,7 @@ export function clausePoint(field, value, { source, clients = isMosaicClient(sou
37
37
  */
38
38
  export function clausePoints(fields, value, { source, clients = isMosaicClient(source) ? new Set([source]) : undefined }) {
39
39
  let predicate = null;
40
- if (value) {
40
+ if (value?.length) {
41
41
  const clauses = value.length && fields.length === 1
42
42
  ? [isIn(fields[0], value.map(v => literal(v[0])))]
43
43
  : value.map(v => and(v.map((_, i) => isNotDistinct(fields[i], literal(_)))));
@@ -104,23 +104,65 @@ export function clauseIntervals(fields, value, { source, clients = isMosaicClien
104
104
  };
105
105
  return { meta, source, clients, value, predicate };
106
106
  }
107
+ const identity = (x) => x;
107
108
  const MATCH_METHODS = { contains, prefix, suffix, regexp: regexp_matches };
108
109
  /**
109
- * Generate a selection clause for text search matching.
110
- * @param field The table column or expression to select.
110
+ * Generate a selection clause for text search matching over a single column.
111
+ * @param field The table column or expression to match.
111
112
  * @param value The selected text search query string.
112
113
  * @param options Additional clause properties.
113
114
  * @param options.source The source component generating this clause.
114
- * @param options.clients The Mosaic clients associated
115
- * with this clause. These clients are not filtered by this clause in
116
- * cross-filtering contexts.
117
- * @param options.method The text matching method to use. Defaults to `'contains'`.
115
+ * @param options.clients Mosaic clients associated with this clause.
116
+ * These clients are not filtered by this clause in cross-filtering contexts.
117
+ * @param options.method The text matching method to use, default `'contains'`.
118
+ * @param options.caseSensitive Flag for case sensitive matching, default `false`.
118
119
  * @returns The generated selection clause.
119
120
  */
120
- export function clauseMatch(field, value, { source, clients = undefined, method = 'contains' }) {
121
+ export function clauseMatch(field, value, { source, clients = undefined, method = 'contains', caseSensitive = false }) {
121
122
  const fn = MATCH_METHODS[method];
122
- const predicate = value ? fn(field, literal(value)) : null;
123
+ const transform = caseSensitive ? identity : lower;
124
+ const predicate = value ? fn(transform(field), transform(literal(value))) : null;
123
125
  const meta = { type: 'match', method };
124
126
  return { meta, source, clients, value, predicate };
125
127
  }
128
+ /**
129
+ * Generate a selection clause for text search matching over multiple columns.
130
+ * A match will succeed if any field successfully matches.
131
+ * @param fields The table columns or expressions to match.
132
+ * @param value The selected text search query string.
133
+ * @param options Additional clause properties.
134
+ * @param options.source The source component generating this clause.
135
+ * @param options.clients Mosaic clients associated with this clause.
136
+ * These clients are not filtered by this clause in cross-filtering contexts.
137
+ * @param options.method The text matching method to use, default `'contains'`.
138
+ * @param options.caseSensitive Flag for case sensitive matching, default `false`.
139
+ * @returns The generated selection clause.
140
+ */
141
+ export function clauseMatchAny(fields, value, { source, clients = undefined, method = 'contains', caseSensitive = false }) {
142
+ value = value || null;
143
+ const fn = MATCH_METHODS[method];
144
+ const transform = caseSensitive ? identity : lower;
145
+ const query = transform(literal(value));
146
+ const predicate = value
147
+ ? or(fields.flatMap(field => value ? fn(transform(field), query) : []))
148
+ : null;
149
+ const meta = { type: 'match', method };
150
+ return { meta, source, clients, value, predicate };
151
+ }
152
+ /**
153
+ * Generate a selection clause for a single selected point value in a list.
154
+ * @param field The table column or expression to select, which must be a list.
155
+ * @param value The selected value.
156
+ * @param options Additional clause properties.
157
+ * @param options.source The source component generating this clause.
158
+ * @param options.clients The Mosaic clients associated
159
+ * with this clause. These clients are not filtered by this clause in
160
+ * cross-filtering contexts.
161
+ * @returns The generated selection clause.
162
+ */
163
+ export function clauseList(field, value, { source, clients = isMosaicClient(source) ? new Set([source]) : undefined, listMatch = 'any' }) {
164
+ const listFn = listMatch === 'all' ? listHasAll : listHasAny;
165
+ const predicate = value !== undefined ? listFn(field, literal(value)) : null;
166
+ return { source, clients, value, predicate };
167
+ }
126
168
  //# sourceMappingURL=SelectionClause.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionClause.js","sourceRoot":"","sources":["../../src/SelectionClause.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectionClause.js","sourceRoot":"","sources":["../../src/SelectionClause.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ interface DuckDBWASMConnectorOptions extends DuckDBWASMOptions {
12
12
  duckdb?: duckdb.AsyncDuckDB;
13
13
  /** Optional pre-existing DuckDB-WASM connection. */
14
14
  connection?: duckdb.AsyncDuckDBConnection;
15
+ /** Optional database config. */
16
+ config?: duckdb.DuckDBConfig;
15
17
  }
16
18
  /**
17
19
  * Connect to a DuckDB-WASM instance.
@@ -27,6 +29,7 @@ export declare class DuckDBWASMConnector implements Connector {
27
29
  _options: DuckDBWASMOptions;
28
30
  _db?: duckdb.AsyncDuckDB;
29
31
  _con?: duckdb.AsyncDuckDBConnection;
32
+ _config?: duckdb.DuckDBConfig;
30
33
  _loadPromise?: Promise<unknown>;
31
34
  /**
32
35
  * Create a new DuckDB-WASM connector instance.
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAC9H,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,UAAU,iBAAiB;IACzB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC5D,oCAAoC;IACpC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,0BAA+B,GAAG,mBAAmB,CAE3F;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,IAAI,CAAC,CAAoB;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;OAGG;gBACS,OAAO,GAAE,0BAA+B;IAQpD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAK9C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAKtD,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CASzE"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAC9H,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,UAAU,iBAAiB;IACzB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC5D,oCAAoC;IACpC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAC1C,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,0BAA+B,GAAG,mBAAmB,CAE3F;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,IAAI,CAAC,CAAoB;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;OAGG;gBACS,OAAO,GAAE,0BAA+B;IASpD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAK9C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAKtD,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CASzE"}
@@ -16,17 +16,19 @@ export class DuckDBWASMConnector {
16
16
  _options;
17
17
  _db;
18
18
  _con;
19
+ _config;
19
20
  _loadPromise;
20
21
  /**
21
22
  * Create a new DuckDB-WASM connector instance.
22
23
  * @param options Connector options.
23
24
  */
24
25
  constructor(options = {}) {
25
- const { ipc, duckdb, connection, ...opts } = options;
26
+ const { ipc, duckdb, connection, config, ...opts } = options;
26
27
  this._ipc = ipc;
27
28
  this._options = opts;
28
29
  this._db = duckdb;
29
30
  this._con = connection;
31
+ this._config = config;
30
32
  }
31
33
  /**
32
34
  * Get the backing DuckDB-WASM instance.
@@ -88,6 +90,7 @@ function connect(c) {
88
90
  c._loadPromise = (c._db
89
91
  ? Promise.resolve(c._db)
90
92
  : initDatabase(c._options).then(result => c._db = result))
93
+ .then(db => c._config != undefined ? db.open(c._config).then(() => db) : db)
91
94
  .then(db => db.connect())
92
95
  .then(result => c._con = result);
93
96
  }
@@ -102,7 +105,7 @@ async function initDatabase({ log = false } = {}) {
102
105
  // Select a bundle based on browser checks
103
106
  const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES);
104
107
  const worker_url = URL.createObjectURL(new Blob([`importScripts("${bundle.mainWorker}");`], { type: 'text/javascript' }));
105
- // Instantiate the asynchronus version of DuckDB-wasm
108
+ // Instantiate the asynchronous version of DuckDB-wasm
106
109
  const worker = new Worker(worker_url);
107
110
  const logger = log ? new duckdb.ConsoleLogger() : new duckdb.VoidLogger();
108
111
  const db = new duckdb.AsyncDuckDB(logger, worker);
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export { wasmConnector } from './connectors/wasm.js';
10
10
  export { RestConnector } from './connectors/rest.js';
11
11
  export { SocketConnector } from './connectors/socket.js';
12
12
  export { DuckDBWASMConnector } from './connectors/wasm.js';
13
- export { clauseInterval, clauseIntervals, clausePoint, clausePoints, clauseMatch } from './SelectionClause.js';
13
+ export { clauseInterval, clauseIntervals, clauseList, clausePoint, clausePoints, clauseMatch, clauseMatchAny } from './SelectionClause.js';
14
14
  export { decodeIPC } from './util/decode-ipc.js';
15
15
  export { distinct } from './util/distinct.js';
16
16
  export { isArrowTable } from './util/is-arrow-table.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,cAAc,YAAY,CAAC;AAE3B,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,cAAc,YAAY,CAAC;AAE3B,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,sBAAsB,CAAC"}
package/dist/src/index.js CHANGED
@@ -11,7 +11,7 @@ export { wasmConnector } from './connectors/wasm.js';
11
11
  export { RestConnector } from './connectors/rest.js';
12
12
  export { SocketConnector } from './connectors/socket.js';
13
13
  export { DuckDBWASMConnector } from './connectors/wasm.js';
14
- export { clauseInterval, clauseIntervals, clausePoint, clausePoints, clauseMatch } from './SelectionClause.js';
14
+ export { clauseInterval, clauseIntervals, clauseList, clausePoint, clausePoints, clauseMatch, clauseMatchAny } from './SelectionClause.js';
15
15
  export { decodeIPC } from './util/decode-ipc.js';
16
16
  export { distinct } from './util/distinct.js';
17
17
  export { isArrowTable } from './util/is-arrow-table.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,cAAc,YAAY,CAAC"}
@@ -27,9 +27,7 @@ export interface MakeClientOptions {
27
27
  * Make a new client with the given options, and connect the client to the
28
28
  * provided coordinator.
29
29
  * @param options The options for making the client.
30
- * @returns The resulting client, along with a method to destroy the client when no longer needed.
30
+ * @returns The resulting client.
31
31
  */
32
- export declare function makeClient(options: MakeClientOptions): MosaicClient & {
33
- destroy: () => void;
34
- };
32
+ export declare function makeClient(options: MakeClientOptions): MosaicClient;
35
33
  //# sourceMappingURL=make-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-client.d.ts","sourceRoot":"","sources":["../../src/make-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;wFACoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,WAAW,CAAC;IAC5C,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAQ7F"}
1
+ {"version":3,"file":"make-client.d.ts","sourceRoot":"","sources":["../../src/make-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;wFACoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,WAAW,CAAC;IAC5C,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAQnE"}
@@ -4,7 +4,7 @@ import { coordinator as defaultCoordinator } from './Coordinator.js';
4
4
  * Make a new client with the given options, and connect the client to the
5
5
  * provided coordinator.
6
6
  * @param options The options for making the client.
7
- * @returns The resulting client, along with a method to destroy the client when no longer needed.
7
+ * @returns The resulting client.
8
8
  */
9
9
  export function makeClient(options) {
10
10
  const { coordinator = defaultCoordinator(), ...clientOptions } = options;
@@ -8,5 +8,5 @@ import type { ExtractionOptions, Table } from '@uwdata/flechette';
8
8
  * values to JS Date objects.
9
9
  * @returns A table instance.
10
10
  */
11
- export declare function decodeIPC(data: ArrayBuffer | Uint8Array, options?: ExtractionOptions): Table;
11
+ export declare function decodeIPC(data: ArrayBufferLike | Uint8Array, options?: ExtractionOptions): Table;
12
12
  //# sourceMappingURL=decode-ipc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode-ipc.d.ts","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGlE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,OAAO,GAAE,iBAAqC,GAAG,KAAK,CAE/G"}
1
+ {"version":3,"file":"decode-ipc.d.ts","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGlE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,eAAe,GAAG,UAAU,EAClC,OAAO,GAAE,iBAAqC,GAC7C,KAAK,CAEP"}
@@ -1 +1 @@
1
- {"version":3,"file":"decode-ipc.js","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,IAA8B,EAAE,UAA6B,EAAE,OAAO,EAAE,IAAI,EAAE;IACtG,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"decode-ipc.js","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,IAAkC,EAClC,UAA6B,EAAE,OAAO,EAAE,IAAI,EAAE;IAE9C,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAE1D,MAAM,OAAO,GAAsD;IACjE,CAAC,KAAK,CAAC,EAAE,KAAK;IACd,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC9C,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IAC3D,OAAO,KAAK;SACT,IAAI,CAAC,KAAK,CAAC;SACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAe,EAAE,MAA0B;IAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,OAAO;aAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,EAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IACrF,qDAAqD;IACrD,6DAA6D;IAC7D,MAAM,CAAC,GAAG,KAAK;SACZ,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CACvB,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACX,CAAC;IACzB,MAAM,IAAI,GAAc;QACtB,KAAK;QACL,MAAM,EAAE,GAAG,MAAM,EAAE;QACnB,OAAO,EAAE,IAAI,CAAC,WAAW;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;KAC9B,CAAC;IAEF,iCAAiC;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAEhC,0BAA0B;IAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAC7B,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EACnC,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;IAEF,wDAAwD;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,EAAe,EAAE,KAAa;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CACzB,CAAC;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,WAAW;QACxB,OAAO,EAAE,IAAI,CAAC,WAAW;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uwdata/mosaic-core",
3
- "version": "0.18.0",
3
+ "version": "0.19.1",
4
4
  "description": "Scalable and extensible linked data views.",
5
5
  "keywords": [
6
6
  "mosaic",
@@ -32,12 +32,12 @@
32
32
  "prepublishOnly": "npm run test && npm run lint && tsc --build"
33
33
  },
34
34
  "dependencies": {
35
- "@duckdb/duckdb-wasm": "^1.29.0",
36
- "@uwdata/flechette": "^2.0.1",
37
- "@uwdata/mosaic-sql": "^0.18.0"
35
+ "@duckdb/duckdb-wasm": "1.30.0",
36
+ "@uwdata/flechette": "^2.2.3",
37
+ "@uwdata/mosaic-sql": "^0.19.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@uwdata/mosaic-duckdb": "^0.18.0"
40
+ "@uwdata/mosaic-duckdb": "^0.19.0"
41
41
  },
42
- "gitHead": "dfb9ded0b0307754e3185ca34cc49a1384fe8455"
42
+ "gitHead": "64ac2aaeefe9ff469edfeed417414a0a7866863f"
43
43
  }
@@ -9,6 +9,7 @@ import { type QueryResult } from './util/query-result.js';
9
9
  import { type MosaicClient } from './MosaicClient.js';
10
10
  import { type SelectionClause } from './SelectionClause.js';
11
11
  import { MaybeArray } from '@uwdata/mosaic-sql';
12
+ import { Table } from '@uwdata/flechette';
12
13
 
13
14
  interface FilterGroupEntry {
14
15
  selection: Selection;
@@ -166,6 +167,26 @@ export class Coordinator {
166
167
  * @param options.priority The query priority, defaults to `Priority.Normal`.
167
168
  * @returns A query result promise.
168
169
  */
170
+ query(
171
+ query: QueryType,
172
+ options?: {
173
+ type?: 'arrow';
174
+ cache?: boolean;
175
+ persist?: boolean;
176
+ priority?: number;
177
+ [key: string]: unknown;
178
+ }
179
+ ): QueryResult<Table>;
180
+ query(
181
+ query: QueryType,
182
+ options?: {
183
+ type?: 'json';
184
+ cache?: boolean;
185
+ persist?: boolean;
186
+ priority?: number;
187
+ [key: string]: unknown;
188
+ }
189
+ ): QueryResult<unknown>;
169
190
  query(
170
191
  query: QueryType,
171
192
  options: {
@@ -175,7 +196,7 @@ export class Coordinator {
175
196
  priority?: number;
176
197
  [key: string]: unknown;
177
198
  } = {}
178
- ): QueryResult {
199
+ ): QueryResult<any> {
179
200
  const {
180
201
  type = 'arrow',
181
202
  cache = true,
@@ -195,8 +216,16 @@ export class Coordinator {
195
216
  */
196
217
  prefetch(
197
218
  query: QueryType,
198
- options: { type?: 'arrow' | 'json'; [key: string]: unknown } = {}
199
- ): QueryResult {
219
+ options?: { type?: 'arrow'; [key: string]: unknown }
220
+ ): QueryResult<Table>
221
+ prefetch(
222
+ query: QueryType,
223
+ options?: { type?: 'json'; [key: string]: unknown }
224
+ ): QueryResult<unknown>
225
+ prefetch(
226
+ query: QueryType,
227
+ options: any = {}
228
+ ): QueryResult<any> {
200
229
  return this.query(query, { ...options, cache: true, priority: Priority.Low });
201
230
  }
202
231
 
@@ -220,6 +220,7 @@ export class MosaicClient {
220
220
  * disconnect from the coordinator.
221
221
  */
222
222
  destroy(): void {
223
+ this._enabled = false;
223
224
  this.coordinator?.disconnect(this);
224
225
  }
225
226
 
@@ -103,11 +103,11 @@ function consolidationKey(query: QueryType, cache: Cache): string {
103
103
  const sql = `${query}`;
104
104
  if (isSelectQuery(query) && !cache.get(sql)) {
105
105
  if (
106
- query._orderby.length || query._where.length ||
107
- query._qualify.length || query._having.length
106
+ query._where.length || query._qualify.length || query._having.length ||
107
+ query._orderby.length || query._distinct
108
108
  ) {
109
- // do not try to analyze if query includes clauses
110
- // that may refer to *derived* columns we can't resolve
109
+ // bail if query includes clauses that may refer to *derived* columns
110
+ // that we can't resolve. also do not consolidate distinct queries
111
111
  return sql;
112
112
  }
113
113
 
package/src/Selection.ts CHANGED
@@ -257,24 +257,24 @@ export class Selection extends Param<SelectionClauseArray> {
257
257
  /**
258
258
  * Indicates if a selection clause should not be applied to a given client.
259
259
  * The return value depends on the selection resolution strategy.
260
- * @param client The client to test.
260
+ * @param client The client to test. If null or undefined, return false.
261
261
  * @param clause The selection clause.
262
262
  * @returns True if the client should be skipped, false otherwise.
263
263
  */
264
- skip(client: MosaicClient, clause: SelectionClause): boolean {
264
+ skip(client: MosaicClient | null | undefined, clause: SelectionClause): boolean {
265
265
  return this._resolver.skip(client, clause);
266
266
  }
267
267
 
268
268
  /**
269
269
  * Return a selection query predicate for the given client.
270
- * @param client The client whose data may be filtered.
270
+ * @param client The client whose data may be filtered. If null or undefined, return a predicate with all clauses.
271
271
  * @param noSkip Disable skipping of active
272
272
  * cross-filtered sources. If set true, the source of the active
273
273
  * clause in a cross-filtered selection will not be skipped.
274
274
  * @returns The query predicate for filtering client data,
275
275
  * based on the current state of this selection.
276
276
  */
277
- predicate(client: MosaicClient, noSkip: boolean = false): ResolvedPredicate {
277
+ predicate(client: MosaicClient | null | undefined = undefined, noSkip: boolean = false): ResolvedPredicate {
278
278
  const { clauses } = this;
279
279
  const active = noSkip ? null : clauses.active;
280
280
  return this._resolver.predicate(clauses, active!, client);
@@ -330,11 +330,14 @@ export class SelectionResolver {
330
330
  /**
331
331
  * Indicates if a selection clause should not be applied to a given client.
332
332
  * The return value depends on the resolution strategy.
333
- * @param client The selection clause.
334
- * @param clause The client to test.
333
+ * @param client The client to test. If null or undefined, return false.
334
+ * @param clause The selection clause.
335
335
  * @returns True if the client should be skipped, false otherwise.
336
336
  */
337
- skip(client: MosaicClient, clause: SelectionClause): boolean {
337
+ skip(client: MosaicClient | null | undefined, clause: SelectionClause): boolean {
338
+ if (client == null) {
339
+ return false;
340
+ }
338
341
  return Boolean(this.cross && clause?.clients?.has(client));
339
342
  }
340
343
 
@@ -342,14 +345,14 @@ export class SelectionResolver {
342
345
  * Return a selection query predicate for the given client.
343
346
  * @param clauseList An array of selection clauses.
344
347
  * @param active The current active selection clause.
345
- * @param client The client whose data may be filtered.
348
+ * @param client The client whose data may be filtered. If null or undefined, return all clauses.
346
349
  * @returns The query predicate for filtering client data,
347
350
  * based on the current state of this selection.
348
351
  */
349
352
  predicate(
350
353
  clauseList: SelectionClause[],
351
354
  active: SelectionClause,
352
- client: MosaicClient
355
+ client: MosaicClient | null | undefined
353
356
  ): ResolvedPredicate {
354
357
  const { empty, union } = this;
355
358