@gscdump/cloudflare 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.
|
@@ -183,6 +183,7 @@ function buildTopNBreakdown(q, pruned, mode) {
|
|
|
183
183
|
const w = partitionWhere(q, pruned, mode);
|
|
184
184
|
if (!q.orderBy || !q.orderBy.metric || !q.orderBy.dir) throw new Error(`[archetype-sql] top-n-breakdown requires orderBy.{metric,dir}, got: ${JSON.stringify(q.orderBy)}`);
|
|
185
185
|
const order = `${metricAlias(q.orderBy.metric)} ${q.orderBy.dir.toUpperCase()}`;
|
|
186
|
+
const compareOrder = `COALESCE(c.${metricAlias(q.orderBy.metric)}, 0) ${q.orderBy.dir.toUpperCase()}`;
|
|
186
187
|
const limit = `LIMIT ${Math.max(0, Math.floor(q.limit))}`;
|
|
187
188
|
const offset = q.offset && q.offset > 0 ? ` OFFSET ${Math.floor(q.offset)}` : "";
|
|
188
189
|
const metricList = q.metrics.includes(q.orderBy.metric) ? q.metrics : [...q.metrics, q.orderBy.metric];
|
|
@@ -200,7 +201,7 @@ function buildTopNBreakdown(q, pruned, mode) {
|
|
|
200
201
|
}).join(" UNION ALL ");
|
|
201
202
|
const curCols = metricList.map((m) => coalesceMetric(m, "c", m)).join(", ");
|
|
202
203
|
const prevCols = STD_METRICS.map((m) => coalesceMetric(m, "p", prevAlias(m))).join(", ");
|
|
203
|
-
const sql = `WITH cur AS (${deviceSelects(w.clause, metricList)}), prev AS (${deviceSelects(wPrev.clause, STD_METRICS)}) 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 ${
|
|
204
|
+
const sql = `WITH cur AS (${deviceSelects(w.clause, metricList)}), prev AS (${deviceSelects(wPrev.clause, STD_METRICS)}) 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}${offset}`;
|
|
204
205
|
return {
|
|
205
206
|
table,
|
|
206
207
|
params: [...DEVICE_SUFFIXES.flatMap(() => w.params), ...DEVICE_SUFFIXES.flatMap(() => wPrev.params)],
|
|
@@ -233,7 +234,7 @@ function buildTopNBreakdown(q, pruned, mode) {
|
|
|
233
234
|
const variantOut = q.dimension === "queryCanonical" ? ", c.variantCount AS variantCount" : "";
|
|
234
235
|
const mover = q.movers ? moverClause(q.movers) : null;
|
|
235
236
|
const moverWhere = mover ? `WHERE ${mover.where} ` : "";
|
|
236
|
-
const orderSql = mover ? `ORDER BY ${mover.order}` : `ORDER BY ${
|
|
237
|
+
const orderSql = mover ? `ORDER BY ${mover.order}` : `ORDER BY ${compareOrder}`;
|
|
237
238
|
const sql = `WITH cur AS (SELECT ${col} AS k, ${curMetrics}${variantSel} FROM ${TABLE_PLACEHOLDER} WHERE ${w.clause}${facet.sql} GROUP BY ${col}), prev AS (SELECT ${col} AS k, ${prevMetrics} FROM ${TABLE_PLACEHOLDER} WHERE ${wPrev.clause}${facet.sql} GROUP BY ${col}) SELECT COALESCE(c.k, p.k) AS ${q.dimension}, ${curCols}, ${prevCols}${variantOut}${totalCol} FROM cur c FULL OUTER JOIN prev p ON c.k = p.k ${moverWhere}${orderSql} ${limit}${offset}`;
|
|
238
239
|
return {
|
|
239
240
|
table,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gscdump/cloudflare",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.35.
|
|
4
|
+
"version": "0.35.11",
|
|
5
5
|
"description": "Cloudflare-Workers-flavored helpers for the gscdump analytics stack: AnalyticsEnv binding contract, R2 SigV4 presigner, size-hint HMAC, DuckDB Workers shims, engine factory.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@uwdata/flechette": "^2.5.0",
|
|
48
48
|
"aws4fetch": "^1.0.20",
|
|
49
|
-
"@gscdump/engine": "0.35.
|
|
50
|
-
"@gscdump/
|
|
51
|
-
"@gscdump/
|
|
52
|
-
"gscdump": "0.35.
|
|
49
|
+
"@gscdump/engine": "0.35.11",
|
|
50
|
+
"@gscdump/engine-sqlite": "0.35.11",
|
|
51
|
+
"@gscdump/contracts": "0.35.11",
|
|
52
|
+
"gscdump": "0.35.11"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@cloudflare/vitest-pool-workers": "^0.18.0",
|