@gscdump/engine-duckdb-wasm 0.35.9 → 0.35.11

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 (2) hide show
  1. package/dist/index.mjs +3 -2
  2. package/package.json +4 -4
package/dist/index.mjs CHANGED
@@ -193,13 +193,14 @@ function compileArchetypeSql(query) {
193
193
  const where = rangePredicate(query);
194
194
  const cmp = compareRangePredicate(query);
195
195
  const dir = query.orderBy.dir === "asc" ? "ASC" : "DESC";
196
+ const compareOrder = `COALESCE(c.${query.orderBy.metric}, 0) ${dir}`;
196
197
  const metricList = query.metrics.includes(query.orderBy.metric) ? query.metrics : [...query.metrics, query.orderBy.metric];
197
198
  const variantSel = query.dimension === "queryCanonical" ? ", COUNT(DISTINCT query) AS variantCount" : "";
198
199
  if (query.dimension === "device") {
199
200
  if (cmp) {
200
201
  const curCols = metricList.map((m) => coalesceMetric(m, "c", m)).join(", ");
201
202
  const prevCols = STD_METRICS.map((m) => coalesceMetric(m, "p", prevAlias(m))).join(", ");
202
- 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 ${query.orderBy.metric} ${dir} LIMIT ?`;
203
+ 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 ?`;
203
204
  const params = [
204
205
  ...where.params,
205
206
  ...where.params,
@@ -245,7 +246,7 @@ function compileArchetypeSql(query) {
245
246
  const variantOut = query.dimension === "queryCanonical" ? ", c.variantCount AS variantCount" : "";
246
247
  const mover = query.movers ? moverClause(query.movers) : null;
247
248
  const moverWhere = mover ? `WHERE ${mover.where} ` : "";
248
- const orderSql = mover ? mover.order : `${query.orderBy.metric} ${dir}`;
249
+ const orderSql = mover ? mover.order : compareOrder;
249
250
  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 ?`;
250
251
  const params = [
251
252
  ...where.params,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine-duckdb-wasm",
3
3
  "type": "module",
4
- "version": "0.35.9",
4
+ "version": "0.35.11",
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",
@@ -45,9 +45,9 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "drizzle-orm": "1.0.0-rc.3",
48
- "@gscdump/contracts": "0.35.9",
49
- "@gscdump/engine": "0.35.9",
50
- "gscdump": "0.35.9"
48
+ "@gscdump/contracts": "0.35.11",
49
+ "@gscdump/engine": "0.35.11",
50
+ "gscdump": "0.35.11"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@duckdb/duckdb-wasm": "^1.32.0",