@gscdump/engine-duckdb-wasm 5.9.0 → 5.9.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.
@@ -224,13 +224,14 @@ function compileArchetypeSql(query) {
224
224
  const cmp = compareRangePredicate(query);
225
225
  const dir = query.orderBy.dir === "asc" ? "ASC" : "DESC";
226
226
  const compareOrder = `COALESCE(c.${query.orderBy.metric}, 0) ${dir}`;
227
+ const order = `${query.orderBy.metric} ${dir}, ${query.dimension} ASC`;
227
228
  const metricList = query.metrics.includes(query.orderBy.metric) ? query.metrics : [...query.metrics, query.orderBy.metric];
228
229
  const variantSel = query.dimension === "queryCanonical" ? ", COUNT(DISTINCT query) AS variantCount" : "";
229
230
  if (query.dimension === "device") {
230
231
  if (cmp) {
231
232
  const curCols = metricList.map((m) => coalesceMetric(m, "c", m)).join(", ");
232
233
  const prevCols = STD_METRICS.map((m) => coalesceMetric(m, "p", prevAlias(m))).join(", ");
233
- let sql = `WITH cur AS (${deviceUnpivotSql(metricList, where.sql, false)}), prev AS (${deviceUnpivotSql(STD_METRICS, cmp.sql, false)}) SELECT COALESCE(c.device, p.device) AS device, ${curCols}, ${prevCols} FROM cur c FULL OUTER JOIN prev p ON c.device = p.device ORDER BY ${compareOrder} LIMIT ?`;
234
+ let sql = `WITH cur AS (${deviceUnpivotSql(metricList, where.sql, false)}), prev AS (${deviceUnpivotSql(STD_METRICS, cmp.sql, false)}) SELECT COALESCE(c.device, p.device) AS device, ${curCols}, ${prevCols} FROM cur c FULL OUTER JOIN prev p ON c.device = p.device ORDER BY ${compareOrder}, COALESCE(c.device, p.device) ASC LIMIT ?`;
234
235
  const params = [
235
236
  ...where.params,
236
237
  ...where.params,
@@ -250,7 +251,7 @@ function compileArchetypeSql(query) {
250
251
  params
251
252
  };
252
253
  }
253
- let sql = `SELECT device, ${metricList.join(", ")} FROM (${deviceUnpivotSql(metricList, where.sql, false)}) ORDER BY ${query.orderBy.metric} ${dir} LIMIT ?`;
254
+ let sql = `SELECT device, ${metricList.join(", ")} FROM (${deviceUnpivotSql(metricList, where.sql, false)}) ORDER BY ${order} LIMIT ?`;
254
255
  const params = [
255
256
  ...where.params,
256
257
  ...where.params,
@@ -277,7 +278,7 @@ function compileArchetypeSql(query) {
277
278
  const mover = query.movers ? moverClause(query.movers) : null;
278
279
  const moverWhere = mover ? `WHERE ${mover.where} ` : "";
279
280
  const orderSql = mover ? mover.order : compareOrder;
280
- let sql = `WITH cur AS (SELECT ${col} AS k, ${metricSelectList(metricList)}${variantSel} FROM ${table} WHERE ${where.sql}${facet.sql} GROUP BY ${col}), prev AS (SELECT ${col} AS k, ${metricSelectList(STD_METRICS)} FROM ${table} WHERE ${cmp.sql}${facet.sql} GROUP BY ${col}) SELECT COALESCE(c.k, p.k) AS ${query.dimension}, ${curCols}, ${prevCols}${variantOut}${totalCol} FROM cur c FULL OUTER JOIN prev p ON c.k = p.k ${moverWhere}ORDER BY ${orderSql} LIMIT ?`;
281
+ let sql = `WITH cur AS (SELECT ${col} AS k, ${metricSelectList(metricList)}${variantSel} FROM ${table} WHERE ${where.sql}${facet.sql} GROUP BY ${col}), prev AS (SELECT ${col} AS k, ${metricSelectList(STD_METRICS)} FROM ${table} WHERE ${cmp.sql}${facet.sql} GROUP BY ${col}) SELECT COALESCE(c.k, p.k) AS ${query.dimension}, ${curCols}, ${prevCols}${variantOut}${totalCol} FROM cur c FULL OUTER JOIN prev p ON c.k = p.k ${moverWhere}ORDER BY ${orderSql}, COALESCE(c.k, p.k) ASC LIMIT ?`;
281
282
  const params = [
282
283
  ...where.params,
283
284
  ...facet.params,
@@ -295,7 +296,7 @@ function compileArchetypeSql(query) {
295
296
  params
296
297
  };
297
298
  }
298
- let sql = `SELECT ${col} AS ${query.dimension}, ${metricSelectList(query.metrics)}${variantSel}${totalCol} FROM ${table} WHERE ${where.sql}${facet.sql} GROUP BY ${col} ORDER BY ${query.orderBy.metric} ${dir} LIMIT ?`;
299
+ let sql = `SELECT ${col} AS ${query.dimension}, ${metricSelectList(query.metrics)}${variantSel}${totalCol} FROM ${table} WHERE ${where.sql}${facet.sql} GROUP BY ${col} ORDER BY ${order} LIMIT ?`;
299
300
  const params = [
300
301
  ...where.params,
301
302
  ...facet.params,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine-duckdb-wasm",
3
3
  "type": "module",
4
- "version": "5.9.0",
4
+ "version": "5.9.1",
5
5
  "description": "DuckDB-WASM engine adapter for @gscdump/analysis — typed browser analytics against parquet via R2.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -44,10 +44,10 @@
44
44
  }
45
45
  },
46
46
  "dependencies": {
47
- "@gscdump/contracts": "^5.9.0",
48
- "@gscdump/engine": "^5.9.0",
47
+ "@gscdump/contracts": "^5.9.1",
48
+ "@gscdump/engine": "^5.9.1",
49
49
  "drizzle-orm": "1.0.0-rc.4",
50
- "gscdump": "^5.9.0"
50
+ "gscdump": "^5.9.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@duckdb/duckdb-wasm": "1.33.1-dev57.0",