@hypequery/protocol-conformance 0.16.0 → 0.16.2

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.
@@ -8,5 +8,30 @@
8
8
  "id": "composite-relationship-keys",
9
9
  "canonical": "{\"datasets\":[{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"customers\",\"relationships\":[],\"source\":\"customers\",\"tenant\":{\"kind\":\"not-required\"}},{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"orders\",\"relationships\":[{\"from\":\"customer_id\",\"keys\":[{\"from\":\"customer_id\",\"to\":\"id\"},{\"from\":\"region_code\",\"to\":\"region\"}],\"kind\":\"belongsTo\",\"name\":\"customer\",\"queryable\":true,\"target\":\"customers\",\"to\":\"id\"}],\"source\":\"orders\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
10
10
  "sha256": "3c0b6f845c890832ff88170b473c659892339f0ae74de6271f3232be4b50f841"
11
+ },
12
+ {
13
+ "id": "resolved-rows-replacing",
14
+ "canonical": "{\"datasets\":[{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"users\",\"relationships\":[],\"rowResolution\":{\"deletedColumn\":\"is_deleted\",\"engine\":\"replacing\",\"kind\":\"final\"},\"source\":\"users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
15
+ "sha256": "0c46e71aa427fb41adafb01008f5b747934edfad94308ea8513aff2a7c08a0e5"
16
+ },
17
+ {
18
+ "id": "resolved-rows-final-only",
19
+ "canonical": "{\"datasets\":[{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"users\",\"relationships\":[],\"rowResolution\":{\"kind\":\"final\"},\"source\":\"users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
20
+ "sha256": "6739f29f0931ee983b721213f9e290e9c9a7548195fbe190a4a913296360e23c"
21
+ },
22
+ {
23
+ "id": "resolved-rows-collapsing",
24
+ "canonical": "{\"datasets\":[{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"users\",\"relationships\":[],\"rowResolution\":{\"engine\":\"collapsing\",\"kind\":\"final\",\"signColumn\":\"sign\"},\"source\":\"users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
25
+ "sha256": "22ed69eda4f470ee9063426a1e6387d9af534f51e4053fff7ddfda8263dbb702"
26
+ },
27
+ {
28
+ "id": "resolved-rows-versioned-collapsing",
29
+ "canonical": "{\"datasets\":[{\"dimensions\":[],\"filters\":[],\"measures\":[],\"name\":\"users\",\"relationships\":[],\"rowResolution\":{\"engine\":\"versioned-collapsing\",\"kind\":\"final\",\"signColumn\":\"sign\"},\"source\":\"users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
30
+ "sha256": "d1391f36746a216d6fac7e4350c94bd7dec8dc6298e90033d2f476df1625ac6f"
31
+ },
32
+ {
33
+ "id": "merge-measures",
34
+ "canonical": "{\"datasets\":[{\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"day\",\"source\":{\"column\":\"day\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"filters\":[],\"measures\":[{\"aggregation\":\"merge\",\"field\":\"users\",\"filters\":[],\"name\":\"active_users\",\"stateFunction\":\"uniq\"},{\"aggregation\":\"merge\",\"field\":\"events\",\"filters\":[],\"name\":\"events\",\"stateFunction\":\"sum\"}],\"name\":\"daily_active_users\",\"relationships\":[],\"source\":\"daily_active_users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":2}",
35
+ "sha256": "525e0df757d4056b1f370ae3666b56fc7ac9e18346506ade77a63b8968ba16da"
11
36
  }
12
37
  ]
@@ -1311,5 +1311,359 @@
1311
1311
  ]
1312
1312
  },
1313
1313
  "error": "HQ_DEPLOYMENT_TYPE"
1314
+ },
1315
+ {
1316
+ "id": "resolved-aggregating-unsupported",
1317
+ "value": {
1318
+ "kind": "hypequery-deployment",
1319
+ "version": 2,
1320
+ "datasets": [
1321
+ {
1322
+ "name": "users",
1323
+ "source": "users",
1324
+ "tenant": {
1325
+ "kind": "not-required"
1326
+ },
1327
+ "dimensions": [],
1328
+ "measures": [],
1329
+ "filters": [],
1330
+ "relationships": [],
1331
+ "rowResolution": {
1332
+ "kind": "final",
1333
+ "engine": "aggregating"
1334
+ }
1335
+ }
1336
+ ]
1337
+ },
1338
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1339
+ },
1340
+ {
1341
+ "id": "resolved-final-only-column",
1342
+ "value": {
1343
+ "kind": "hypequery-deployment",
1344
+ "version": 2,
1345
+ "datasets": [
1346
+ {
1347
+ "name": "users",
1348
+ "source": "users",
1349
+ "tenant": {
1350
+ "kind": "not-required"
1351
+ },
1352
+ "dimensions": [],
1353
+ "measures": [],
1354
+ "filters": [],
1355
+ "relationships": [],
1356
+ "rowResolution": {
1357
+ "kind": "final",
1358
+ "deletedColumn": "is_deleted"
1359
+ }
1360
+ }
1361
+ ]
1362
+ },
1363
+ "error": "HQ_DEPLOYMENT_UNKNOWN_FIELD"
1364
+ },
1365
+ {
1366
+ "id": "resolved-collapsing-missing-sign",
1367
+ "value": {
1368
+ "kind": "hypequery-deployment",
1369
+ "version": 2,
1370
+ "datasets": [
1371
+ {
1372
+ "name": "users",
1373
+ "source": "users",
1374
+ "tenant": {
1375
+ "kind": "not-required"
1376
+ },
1377
+ "dimensions": [],
1378
+ "measures": [],
1379
+ "filters": [],
1380
+ "relationships": [],
1381
+ "rowResolution": {
1382
+ "kind": "final",
1383
+ "engine": "collapsing"
1384
+ }
1385
+ }
1386
+ ]
1387
+ },
1388
+ "error": "HQ_DEPLOYMENT_TYPE"
1389
+ },
1390
+ {
1391
+ "id": "resolved-column-injection",
1392
+ "value": {
1393
+ "kind": "hypequery-deployment",
1394
+ "version": 2,
1395
+ "datasets": [
1396
+ {
1397
+ "name": "users",
1398
+ "source": "users",
1399
+ "tenant": {
1400
+ "kind": "not-required"
1401
+ },
1402
+ "dimensions": [],
1403
+ "measures": [],
1404
+ "filters": [],
1405
+ "relationships": [],
1406
+ "rowResolution": {
1407
+ "kind": "final",
1408
+ "engine": "replacing",
1409
+ "deletedColumn": "x OR 1"
1410
+ }
1411
+ }
1412
+ ]
1413
+ },
1414
+ "error": "HQ_DEPLOYMENT_INVALID_IDENTIFIER"
1415
+ },
1416
+ {
1417
+ "id": "merge-missing-state-function",
1418
+ "value": {
1419
+ "kind": "hypequery-deployment",
1420
+ "version": 2,
1421
+ "datasets": [
1422
+ {
1423
+ "name": "daily_active_users",
1424
+ "source": "daily_active_users",
1425
+ "tenant": {
1426
+ "kind": "not-required"
1427
+ },
1428
+ "dimensions": [
1429
+ {
1430
+ "name": "day",
1431
+ "type": "timestamp",
1432
+ "source": {
1433
+ "kind": "column",
1434
+ "column": "day"
1435
+ },
1436
+ "filterable": true,
1437
+ "groupable": true
1438
+ }
1439
+ ],
1440
+ "measures": [
1441
+ {
1442
+ "name": "active_users",
1443
+ "aggregation": "merge",
1444
+ "field": "users",
1445
+ "filters": []
1446
+ }
1447
+ ],
1448
+ "filters": [],
1449
+ "relationships": []
1450
+ }
1451
+ ]
1452
+ },
1453
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1454
+ },
1455
+ {
1456
+ "id": "merge-unlisted-state-function",
1457
+ "value": {
1458
+ "kind": "hypequery-deployment",
1459
+ "version": 2,
1460
+ "datasets": [
1461
+ {
1462
+ "name": "daily_active_users",
1463
+ "source": "daily_active_users",
1464
+ "tenant": {
1465
+ "kind": "not-required"
1466
+ },
1467
+ "dimensions": [
1468
+ {
1469
+ "name": "day",
1470
+ "type": "timestamp",
1471
+ "source": {
1472
+ "kind": "column",
1473
+ "column": "day"
1474
+ },
1475
+ "filterable": true,
1476
+ "groupable": true
1477
+ }
1478
+ ],
1479
+ "measures": [
1480
+ {
1481
+ "name": "active_users",
1482
+ "aggregation": "merge",
1483
+ "field": "users",
1484
+ "filters": [],
1485
+ "stateFunction": "quantile"
1486
+ }
1487
+ ],
1488
+ "filters": [],
1489
+ "relationships": []
1490
+ }
1491
+ ]
1492
+ },
1493
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1494
+ },
1495
+ {
1496
+ "id": "merge-state-function-injection",
1497
+ "value": {
1498
+ "kind": "hypequery-deployment",
1499
+ "version": 2,
1500
+ "datasets": [
1501
+ {
1502
+ "name": "daily_active_users",
1503
+ "source": "daily_active_users",
1504
+ "tenant": {
1505
+ "kind": "not-required"
1506
+ },
1507
+ "dimensions": [
1508
+ {
1509
+ "name": "day",
1510
+ "type": "timestamp",
1511
+ "source": {
1512
+ "kind": "column",
1513
+ "column": "day"
1514
+ },
1515
+ "filterable": true,
1516
+ "groupable": true
1517
+ }
1518
+ ],
1519
+ "measures": [
1520
+ {
1521
+ "name": "active_users",
1522
+ "aggregation": "merge",
1523
+ "field": "users",
1524
+ "filters": [],
1525
+ "stateFunction": "uniq(users)) OR 1=1 --"
1526
+ }
1527
+ ],
1528
+ "filters": [],
1529
+ "relationships": []
1530
+ }
1531
+ ]
1532
+ },
1533
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1534
+ },
1535
+ {
1536
+ "id": "state-function-without-merge",
1537
+ "value": {
1538
+ "kind": "hypequery-deployment",
1539
+ "version": 2,
1540
+ "datasets": [
1541
+ {
1542
+ "name": "daily_active_users",
1543
+ "source": "daily_active_users",
1544
+ "tenant": {
1545
+ "kind": "not-required"
1546
+ },
1547
+ "dimensions": [
1548
+ {
1549
+ "name": "day",
1550
+ "type": "timestamp",
1551
+ "source": {
1552
+ "kind": "column",
1553
+ "column": "day"
1554
+ },
1555
+ "filterable": true,
1556
+ "groupable": true
1557
+ }
1558
+ ],
1559
+ "measures": [
1560
+ {
1561
+ "name": "total",
1562
+ "aggregation": "sum",
1563
+ "field": "users",
1564
+ "stateFunction": "sum",
1565
+ "filters": []
1566
+ }
1567
+ ],
1568
+ "filters": [],
1569
+ "relationships": []
1570
+ }
1571
+ ]
1572
+ },
1573
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1574
+ },
1575
+ {
1576
+ "id": "merge-with-filters",
1577
+ "value": {
1578
+ "kind": "hypequery-deployment",
1579
+ "version": 2,
1580
+ "datasets": [
1581
+ {
1582
+ "name": "daily_active_users",
1583
+ "source": "daily_active_users",
1584
+ "tenant": {
1585
+ "kind": "not-required"
1586
+ },
1587
+ "dimensions": [
1588
+ {
1589
+ "name": "day",
1590
+ "type": "timestamp",
1591
+ "source": {
1592
+ "kind": "column",
1593
+ "column": "day"
1594
+ },
1595
+ "filterable": true,
1596
+ "groupable": true
1597
+ }
1598
+ ],
1599
+ "measures": [
1600
+ {
1601
+ "name": "active_users",
1602
+ "aggregation": "merge",
1603
+ "field": "users",
1604
+ "filters": [
1605
+ {
1606
+ "kind": "comparison",
1607
+ "operator": "eq",
1608
+ "left": {
1609
+ "kind": "reference",
1610
+ "name": "day"
1611
+ },
1612
+ "right": {
1613
+ "kind": "literal",
1614
+ "value": "2026-10-01"
1615
+ }
1616
+ }
1617
+ ],
1618
+ "stateFunction": "uniq"
1619
+ }
1620
+ ],
1621
+ "filters": [],
1622
+ "relationships": []
1623
+ }
1624
+ ]
1625
+ },
1626
+ "error": "HQ_DEPLOYMENT_INVALID_VALUE"
1627
+ },
1628
+ {
1629
+ "id": "merge-approximate-marker-in-v2",
1630
+ "value": {
1631
+ "kind": "hypequery-deployment",
1632
+ "version": 2,
1633
+ "datasets": [
1634
+ {
1635
+ "name": "daily_active_users",
1636
+ "source": "daily_active_users",
1637
+ "tenant": {
1638
+ "kind": "not-required"
1639
+ },
1640
+ "dimensions": [
1641
+ {
1642
+ "name": "day",
1643
+ "type": "timestamp",
1644
+ "source": {
1645
+ "kind": "column",
1646
+ "column": "day"
1647
+ },
1648
+ "filterable": true,
1649
+ "groupable": true
1650
+ }
1651
+ ],
1652
+ "measures": [
1653
+ {
1654
+ "name": "active_users",
1655
+ "aggregation": "merge",
1656
+ "field": "users",
1657
+ "filters": [],
1658
+ "stateFunction": "uniq",
1659
+ "approximate": true
1660
+ }
1661
+ ],
1662
+ "filters": [],
1663
+ "relationships": []
1664
+ }
1665
+ ]
1666
+ },
1667
+ "error": "HQ_DEPLOYMENT_UNKNOWN_FIELD"
1314
1668
  }
1315
1669
  ]
@@ -113,5 +113,149 @@
113
113
  }
114
114
  ]
115
115
  }
116
+ },
117
+ {
118
+ "id": "resolved-rows-replacing",
119
+ "value": {
120
+ "kind": "hypequery-deployment",
121
+ "version": 2,
122
+ "datasets": [
123
+ {
124
+ "name": "users",
125
+ "source": "users",
126
+ "tenant": {
127
+ "kind": "not-required"
128
+ },
129
+ "dimensions": [],
130
+ "measures": [],
131
+ "filters": [],
132
+ "relationships": [],
133
+ "rowResolution": {
134
+ "kind": "final",
135
+ "engine": "replacing",
136
+ "deletedColumn": "is_deleted"
137
+ }
138
+ }
139
+ ]
140
+ }
141
+ },
142
+ {
143
+ "id": "resolved-rows-final-only",
144
+ "value": {
145
+ "kind": "hypequery-deployment",
146
+ "version": 2,
147
+ "datasets": [
148
+ {
149
+ "name": "users",
150
+ "source": "users",
151
+ "tenant": {
152
+ "kind": "not-required"
153
+ },
154
+ "dimensions": [],
155
+ "measures": [],
156
+ "filters": [],
157
+ "relationships": [],
158
+ "rowResolution": {
159
+ "kind": "final"
160
+ }
161
+ }
162
+ ]
163
+ }
164
+ },
165
+ {
166
+ "id": "resolved-rows-collapsing",
167
+ "value": {
168
+ "kind": "hypequery-deployment",
169
+ "version": 2,
170
+ "datasets": [
171
+ {
172
+ "name": "users",
173
+ "source": "users",
174
+ "tenant": {
175
+ "kind": "not-required"
176
+ },
177
+ "dimensions": [],
178
+ "measures": [],
179
+ "filters": [],
180
+ "relationships": [],
181
+ "rowResolution": {
182
+ "kind": "final",
183
+ "engine": "collapsing",
184
+ "signColumn": "sign"
185
+ }
186
+ }
187
+ ]
188
+ }
189
+ },
190
+ {
191
+ "id": "resolved-rows-versioned-collapsing",
192
+ "value": {
193
+ "kind": "hypequery-deployment",
194
+ "version": 2,
195
+ "datasets": [
196
+ {
197
+ "name": "users",
198
+ "source": "users",
199
+ "tenant": {
200
+ "kind": "not-required"
201
+ },
202
+ "dimensions": [],
203
+ "measures": [],
204
+ "filters": [],
205
+ "relationships": [],
206
+ "rowResolution": {
207
+ "kind": "final",
208
+ "engine": "versioned-collapsing",
209
+ "signColumn": "sign"
210
+ }
211
+ }
212
+ ]
213
+ }
214
+ },
215
+ {
216
+ "id": "merge-measures",
217
+ "value": {
218
+ "kind": "hypequery-deployment",
219
+ "version": 2,
220
+ "datasets": [
221
+ {
222
+ "name": "daily_active_users",
223
+ "source": "daily_active_users",
224
+ "tenant": {
225
+ "kind": "not-required"
226
+ },
227
+ "dimensions": [
228
+ {
229
+ "name": "day",
230
+ "type": "timestamp",
231
+ "source": {
232
+ "kind": "column",
233
+ "column": "day"
234
+ },
235
+ "filterable": true,
236
+ "groupable": true
237
+ }
238
+ ],
239
+ "measures": [
240
+ {
241
+ "name": "active_users",
242
+ "aggregation": "merge",
243
+ "field": "users",
244
+ "filters": [],
245
+ "stateFunction": "uniq"
246
+ },
247
+ {
248
+ "name": "events",
249
+ "aggregation": "merge",
250
+ "stateFunction": "sum",
251
+ "field": "events",
252
+ "filters": []
253
+ }
254
+ ],
255
+ "filters": [],
256
+ "relationships": []
257
+ }
258
+ ]
259
+ }
116
260
  }
117
261
  ]
@@ -8,5 +8,6 @@
8
8
  {"id": "tenant-dataset-segment", "canonical": "{\"datasets\":[{\"allowedFilters\":[{\"field\":\"status\",\"name\":\"status\",\"operators\":[\"eq\",\"in\"]}],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"tier\",\"source\":{\"column\":\"tier\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"tenantId\",\"source\":{\"column\":\"tenant_id\",\"kind\":\"column\"},\"type\":\"string\"}],\"measures\":[{\"aggregation\":\"sum\",\"field\":\"amount\",\"filters\":[],\"name\":\"revenue\"}],\"name\":\"orders\",\"relationships\":[],\"segments\":[{\"description\":\"Enterprise-tier customers\",\"name\":\"enterprise\",\"predicate\":{\"kind\":\"comparison\",\"left\":{\"kind\":\"reference\",\"name\":\"tier\"},\"operator\":\"eq\",\"right\":{\"kind\":\"literal\",\"value\":\"enterprise\"}}}],\"source\":\"orders\",\"tenant\":{\"field\":\"tenant_id\",\"kind\":\"required\"}}],\"kind\":\"hypequery-deployment\",\"version\":3}", "sha256": "931bc22705679ac4d9ab38d7b805e82cded1a8bce02c22ef6814382e09a3df66"},
9
9
  {"id":"window-and-shift-measures","canonical":"{\"datasets\":[{\"allowedFilters\":[{\"field\":\"status\",\"name\":\"status\",\"operators\":[\"eq\",\"in\"]}],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"tier\",\"source\":{\"column\":\"tier\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"status\",\"source\":{\"column\":\"status\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"amount\",\"source\":{\"column\":\"amount\",\"kind\":\"column\"},\"type\":\"number\"},{\"filterable\":true,\"groupable\":true,\"name\":\"createdAt\",\"source\":{\"column\":\"created_at\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"measures\":[{\"aggregation\":\"sum\",\"field\":\"amount\",\"filters\":[],\"name\":\"revenue\"},{\"kind\":\"window\",\"measure\":\"revenue\",\"name\":\"revenue7d\",\"requiresTimeRange\":true,\"trailing\":{\"amount\":7,\"unit\":\"day\"}},{\"kind\":\"window\",\"measure\":\"revenue\",\"name\":\"revenueMtd\",\"requiresTimeRange\":true,\"toDate\":\"month\"},{\"cumulative\":true,\"kind\":\"window\",\"measure\":\"revenue\",\"name\":\"revenueRunning\",\"requiresTimeRange\":true},{\"interval\":{\"amount\":1,\"unit\":\"year\"},\"kind\":\"shift\",\"measure\":\"revenue\",\"name\":\"revenuePriorYear\",\"requiresTimeRange\":true},{\"expression\":{\"kind\":\"binary\",\"left\":{\"kind\":\"binary\",\"left\":{\"kind\":\"reference\",\"name\":\"now\"},\"operator\":\"subtract\",\"right\":{\"kind\":\"reference\",\"name\":\"before\"}},\"operator\":\"divide\",\"right\":{\"args\":[{\"kind\":\"reference\",\"name\":\"before\"}],\"function\":\"nullIfZero\",\"kind\":\"call\"}},\"kind\":\"derived\",\"name\":\"revenueGrowth\",\"uses\":[{\"alias\":\"now\",\"measure\":\"revenue\"},{\"alias\":\"before\",\"measure\":\"revenuePriorYear\"}]}],\"name\":\"orders\",\"relationships\":[],\"segments\":[],\"source\":\"orders\",\"tenant\":{\"kind\":\"not-required\"},\"timeField\":\"created_at\"}],\"kind\":\"hypequery-deployment\",\"version\":3}","sha256":"0fa473a785d5699f086b3512f7206ec1280dc8aefdbadacf2e3fbb903327a9b7"},
10
10
  {"id":"approximate-window","canonical":"{\"datasets\":[{\"allowedFilters\":[{\"field\":\"status\",\"name\":\"status\",\"operators\":[\"eq\",\"in\"]}],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"tier\",\"source\":{\"column\":\"tier\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"status\",\"source\":{\"column\":\"status\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"amount\",\"source\":{\"column\":\"amount\",\"kind\":\"column\"},\"type\":\"number\"},{\"filterable\":true,\"groupable\":true,\"name\":\"createdAt\",\"source\":{\"column\":\"created_at\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"measures\":[{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[],\"name\":\"activeUsers\"},{\"approximate\":true,\"kind\":\"window\",\"measure\":\"activeUsers\",\"name\":\"activeUsers7d\",\"requiresTimeRange\":true,\"trailing\":{\"amount\":7,\"unit\":\"day\"}},{\"approximate\":true,\"interval\":{\"amount\":1,\"unit\":\"week\"},\"kind\":\"shift\",\"measure\":\"activeUsers\",\"name\":\"activeUsersLastWeek\",\"requiresTimeRange\":true}],\"name\":\"orders\",\"relationships\":[],\"segments\":[],\"source\":\"orders\",\"tenant\":{\"kind\":\"not-required\"},\"timeField\":\"created_at\"}],\"kind\":\"hypequery-deployment\",\"version\":3}","sha256":"38248c985f7157ec7cf8fbbb1fe8257272e8930033401c18775f4ad8f7a2eb35"},
11
- {"id":"approx-count-distinct-without-segments","canonical":"{\"datasets\":[{\"allowedFilters\":[{\"field\":\"status\",\"name\":\"status\",\"operators\":[\"eq\",\"in\"]}],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"tier\",\"source\":{\"column\":\"tier\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"status\",\"source\":{\"column\":\"status\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"amount\",\"source\":{\"column\":\"amount\",\"kind\":\"column\"},\"type\":\"number\"},{\"filterable\":true,\"groupable\":true,\"name\":\"createdAt\",\"source\":{\"column\":\"created_at\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"measures\":[{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[],\"name\":\"activeUsers\"},{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[{\"kind\":\"comparison\",\"left\":{\"kind\":\"reference\",\"name\":\"status\"},\"operator\":\"eq\",\"right\":{\"kind\":\"literal\",\"value\":\"paid\"}}],\"name\":\"approxActiveFiltered\"}],\"name\":\"orders\",\"relationships\":[],\"source\":\"orders\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":3}","sha256":"6759733b17f8901ffe4a0421246406cdfff8c04bad71e989d1d8af1239515ab2"}
11
+ {"id":"approx-count-distinct-without-segments","canonical":"{\"datasets\":[{\"allowedFilters\":[{\"field\":\"status\",\"name\":\"status\",\"operators\":[\"eq\",\"in\"]}],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"tier\",\"source\":{\"column\":\"tier\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"status\",\"source\":{\"column\":\"status\",\"kind\":\"column\"},\"type\":\"string\"},{\"filterable\":true,\"groupable\":true,\"name\":\"amount\",\"source\":{\"column\":\"amount\",\"kind\":\"column\"},\"type\":\"number\"},{\"filterable\":true,\"groupable\":true,\"name\":\"createdAt\",\"source\":{\"column\":\"created_at\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"measures\":[{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[],\"name\":\"activeUsers\"},{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[{\"kind\":\"comparison\",\"left\":{\"kind\":\"reference\",\"name\":\"status\"},\"operator\":\"eq\",\"right\":{\"kind\":\"literal\",\"value\":\"paid\"}}],\"name\":\"approxActiveFiltered\"}],\"name\":\"orders\",\"relationships\":[],\"source\":\"orders\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":3}","sha256":"6759733b17f8901ffe4a0421246406cdfff8c04bad71e989d1d8af1239515ab2"},
12
+ {"id":"merge-measures","canonical":"{\"datasets\":[{\"allowedFilters\":[],\"dimensions\":[{\"filterable\":true,\"groupable\":true,\"name\":\"day\",\"source\":{\"column\":\"day\",\"kind\":\"column\"},\"type\":\"timestamp\"}],\"measures\":[{\"aggregation\":\"merge\",\"approximate\":true,\"field\":\"users\",\"filters\":[],\"name\":\"active_users\",\"stateFunction\":\"uniq\"},{\"aggregation\":\"merge\",\"field\":\"users\",\"filters\":[],\"name\":\"exact_users\",\"stateFunction\":\"uniqExact\"},{\"aggregation\":\"approxCountDistinct\",\"approximate\":true,\"field\":\"user_id\",\"filters\":[],\"name\":\"approx_users\"}],\"name\":\"daily_active_users\",\"relationships\":[],\"source\":\"daily_active_users\",\"tenant\":{\"kind\":\"not-required\"}}],\"kind\":\"hypequery-deployment\",\"version\":3}","sha256":"43c972e9913d33e6acff3c612f57e2c65fb9eba25c5c2179b7fe885a13955d8d"}
12
13
  ]
@@ -32,5 +32,7 @@
32
32
  {"id": "shift-with-window-frame", "value": {"kind": "hypequery-deployment", "version": 3, "datasets": [{"name": "orders", "source": "orders", "tenant": {"kind": "not-required"}, "dimensions": [{"name": "tier", "type": "string", "source": {"kind": "column", "column": "tier"}, "filterable": true, "groupable": true}, {"name": "status", "type": "string", "source": {"kind": "column", "column": "status"}, "filterable": true, "groupable": true}, {"name": "amount", "type": "number", "source": {"kind": "column", "column": "amount"}, "filterable": true, "groupable": true}, {"name": "createdAt", "type": "timestamp", "source": {"kind": "column", "column": "created_at"}, "filterable": true, "groupable": true}], "measures": [{"name": "revenue", "aggregation": "sum", "field": "amount", "filters": []}, {"kind": "shift", "requiresTimeRange": true, "name": "s", "measure": "revenue", "interval": {"amount": 1, "unit": "year"}, "cumulative": true}], "allowedFilters": [{"name": "status", "field": "status", "operators": ["eq", "in"]}], "segments": [], "relationships": [], "timeField": "created_at"}]}, "error": "HQ_DEPLOYMENT_UNKNOWN_FIELD"},
33
33
  {"id": "default-grain-still-closed", "value": {"kind": "hypequery-deployment", "version": 3, "datasets": [{"name": "orders", "source": "orders", "tenant": {"kind": "not-required"}, "dimensions": [{"name": "tier", "type": "string", "source": {"kind": "column", "column": "tier"}, "filterable": true, "groupable": true}, {"name": "status", "type": "string", "source": {"kind": "column", "column": "status"}, "filterable": true, "groupable": true}, {"name": "amount", "type": "number", "source": {"kind": "column", "column": "amount"}, "filterable": true, "groupable": true}, {"name": "createdAt", "type": "timestamp", "source": {"kind": "column", "column": "created_at"}, "filterable": true, "groupable": true}], "measures": [{"name": "revenue", "aggregation": "sum", "field": "amount", "filters": []}], "allowedFilters": [{"name": "status", "field": "status", "operators": ["eq", "in"]}], "segments": [{"name": "enterprise", "predicate": {"kind": "comparison", "operator": "eq", "left": {"kind": "reference", "name": "tier"}, "right": {"kind": "literal", "value": "enterprise"}}, "description": "Enterprise-tier customers"}], "relationships": [], "timeField": "created_at", "defaults": {"timeGrain": "second"}}]}, "error": "HQ_DEPLOYMENT_INVALID_VALUE"},
34
34
  {"id":"window-missing-time-range-marker","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"orders","source":"orders","tenant":{"kind":"not-required"},"dimensions":[{"name":"tier","type":"string","source":{"kind":"column","column":"tier"},"filterable":true,"groupable":true},{"name":"status","type":"string","source":{"kind":"column","column":"status"},"filterable":true,"groupable":true},{"name":"amount","type":"number","source":{"kind":"column","column":"amount"},"filterable":true,"groupable":true},{"name":"createdAt","type":"timestamp","source":{"kind":"column","column":"created_at"},"filterable":true,"groupable":true}],"measures":[{"name":"revenue","aggregation":"sum","field":"amount","filters":[]},{"kind":"window","name":"revenue7d","measure":"revenue","trailing":{"amount":7,"unit":"day"}},{"kind":"window","requiresTimeRange":true,"name":"revenueMtd","measure":"revenue","toDate":"month"},{"kind":"window","requiresTimeRange":true,"name":"revenueRunning","measure":"revenue","cumulative":true},{"kind":"shift","requiresTimeRange":true,"name":"revenuePriorYear","measure":"revenue","interval":{"amount":1,"unit":"year"}},{"kind":"derived","name":"revenueGrowth","uses":[{"alias":"now","measure":"revenue"},{"alias":"before","measure":"revenuePriorYear"}],"expression":{"kind":"binary","operator":"divide","left":{"kind":"binary","operator":"subtract","left":{"kind":"reference","name":"now"},"right":{"kind":"reference","name":"before"}},"right":{"kind":"call","function":"nullIfZero","args":[{"kind":"reference","name":"before"}]}}}],"allowedFilters":[{"name":"status","field":"status","operators":["eq","in"]}],"segments":[],"relationships":[],"timeField":"created_at"}]},"error":"HQ_DEPLOYMENT_TYPE"},
35
- {"id":"shift-false-time-range-marker","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"orders","source":"orders","tenant":{"kind":"not-required"},"dimensions":[{"name":"tier","type":"string","source":{"kind":"column","column":"tier"},"filterable":true,"groupable":true},{"name":"status","type":"string","source":{"kind":"column","column":"status"},"filterable":true,"groupable":true},{"name":"amount","type":"number","source":{"kind":"column","column":"amount"},"filterable":true,"groupable":true},{"name":"createdAt","type":"timestamp","source":{"kind":"column","column":"created_at"},"filterable":true,"groupable":true}],"measures":[{"name":"revenue","aggregation":"sum","field":"amount","filters":[]},{"kind":"window","requiresTimeRange":true,"name":"revenue7d","measure":"revenue","trailing":{"amount":7,"unit":"day"}},{"kind":"window","requiresTimeRange":true,"name":"revenueMtd","measure":"revenue","toDate":"month"},{"kind":"window","requiresTimeRange":true,"name":"revenueRunning","measure":"revenue","cumulative":true},{"kind":"shift","requiresTimeRange":false,"name":"revenuePriorYear","measure":"revenue","interval":{"amount":1,"unit":"year"}},{"kind":"derived","name":"revenueGrowth","uses":[{"alias":"now","measure":"revenue"},{"alias":"before","measure":"revenuePriorYear"}],"expression":{"kind":"binary","operator":"divide","left":{"kind":"binary","operator":"subtract","left":{"kind":"reference","name":"now"},"right":{"kind":"reference","name":"before"}},"right":{"kind":"call","function":"nullIfZero","args":[{"kind":"reference","name":"before"}]}}}],"allowedFilters":[{"name":"status","field":"status","operators":["eq","in"]}],"segments":[],"relationships":[],"timeField":"created_at"}]},"error":"HQ_DEPLOYMENT_INVALID_VALUE"}
35
+ {"id":"shift-false-time-range-marker","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"orders","source":"orders","tenant":{"kind":"not-required"},"dimensions":[{"name":"tier","type":"string","source":{"kind":"column","column":"tier"},"filterable":true,"groupable":true},{"name":"status","type":"string","source":{"kind":"column","column":"status"},"filterable":true,"groupable":true},{"name":"amount","type":"number","source":{"kind":"column","column":"amount"},"filterable":true,"groupable":true},{"name":"createdAt","type":"timestamp","source":{"kind":"column","column":"created_at"},"filterable":true,"groupable":true}],"measures":[{"name":"revenue","aggregation":"sum","field":"amount","filters":[]},{"kind":"window","requiresTimeRange":true,"name":"revenue7d","measure":"revenue","trailing":{"amount":7,"unit":"day"}},{"kind":"window","requiresTimeRange":true,"name":"revenueMtd","measure":"revenue","toDate":"month"},{"kind":"window","requiresTimeRange":true,"name":"revenueRunning","measure":"revenue","cumulative":true},{"kind":"shift","requiresTimeRange":false,"name":"revenuePriorYear","measure":"revenue","interval":{"amount":1,"unit":"year"}},{"kind":"derived","name":"revenueGrowth","uses":[{"alias":"now","measure":"revenue"},{"alias":"before","measure":"revenuePriorYear"}],"expression":{"kind":"binary","operator":"divide","left":{"kind":"binary","operator":"subtract","left":{"kind":"reference","name":"now"},"right":{"kind":"reference","name":"before"}},"right":{"kind":"call","function":"nullIfZero","args":[{"kind":"reference","name":"before"}]}}}],"allowedFilters":[{"name":"status","field":"status","operators":["eq","in"]}],"segments":[],"relationships":[],"timeField":"created_at"}]},"error":"HQ_DEPLOYMENT_INVALID_VALUE"},
36
+ {"id":"merge-estimate-missing-approximate","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"daily_active_users","source":"daily_active_users","tenant":{"kind":"not-required"},"dimensions":[{"name":"day","type":"timestamp","source":{"kind":"column","column":"day"},"filterable":true,"groupable":true}],"measures":[{"name":"active_users","aggregation":"merge","field":"users","filters":[],"stateFunction":"uniq"},{"name":"approx_users","aggregation":"approxCountDistinct","field":"user_id","filters":[],"approximate":true}],"allowedFilters":[],"relationships":[]}]},"error":"HQ_DEPLOYMENT_INVALID_VALUE"},
37
+ {"id":"merge-exact-with-approximate","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"daily_active_users","source":"daily_active_users","tenant":{"kind":"not-required"},"dimensions":[{"name":"day","type":"timestamp","source":{"kind":"column","column":"day"},"filterable":true,"groupable":true}],"measures":[{"name":"active_users","aggregation":"merge","field":"users","filters":[],"stateFunction":"uniqExact","approximate":true},{"name":"approx_users","aggregation":"approxCountDistinct","field":"user_id","filters":[],"approximate":true}],"allowedFilters":[],"relationships":[]}]},"error":"HQ_DEPLOYMENT_INVALID_VALUE"}
36
38
  ]
@@ -8,5 +8,6 @@
8
8
  {"id": "tenant-dataset-segment", "value": {"kind": "hypequery-deployment", "version": 3, "datasets": [{"name": "orders", "source": "orders", "tenant": {"kind": "required", "field": "tenant_id"}, "dimensions": [{"name": "tier", "type": "string", "source": {"kind": "column", "column": "tier"}, "filterable": true, "groupable": true}, {"name": "tenantId", "type": "string", "source": {"kind": "column", "column": "tenant_id"}, "filterable": true, "groupable": true}], "measures": [{"name": "revenue", "aggregation": "sum", "field": "amount", "filters": []}], "allowedFilters": [{"name": "status", "field": "status", "operators": ["eq", "in"]}], "segments": [{"name": "enterprise", "predicate": {"kind": "comparison", "operator": "eq", "left": {"kind": "reference", "name": "tier"}, "right": {"kind": "literal", "value": "enterprise"}}, "description": "Enterprise-tier customers"}], "relationships": []}]}},
9
9
  {"id": "window-and-shift-measures", "value": {"kind": "hypequery-deployment", "version": 3, "datasets": [{"name": "orders", "source": "orders", "tenant": {"kind": "not-required"}, "dimensions": [{"name": "tier", "type": "string", "source": {"kind": "column", "column": "tier"}, "filterable": true, "groupable": true}, {"name": "status", "type": "string", "source": {"kind": "column", "column": "status"}, "filterable": true, "groupable": true}, {"name": "amount", "type": "number", "source": {"kind": "column", "column": "amount"}, "filterable": true, "groupable": true}, {"name": "createdAt", "type": "timestamp", "source": {"kind": "column", "column": "created_at"}, "filterable": true, "groupable": true}], "measures": [{"name": "revenue", "aggregation": "sum", "field": "amount", "filters": []}, {"kind": "window", "requiresTimeRange": true, "name": "revenue7d", "measure": "revenue", "trailing": {"amount": 7, "unit": "day"}}, {"kind": "window", "requiresTimeRange": true, "name": "revenueMtd", "measure": "revenue", "toDate": "month"}, {"kind": "window", "requiresTimeRange": true, "name": "revenueRunning", "measure": "revenue", "cumulative": true}, {"kind": "shift", "requiresTimeRange": true, "name": "revenuePriorYear", "measure": "revenue", "interval": {"amount": 1, "unit": "year"}}, {"kind": "derived", "name": "revenueGrowth", "uses": [{"alias": "now", "measure": "revenue"}, {"alias": "before", "measure": "revenuePriorYear"}], "expression": {"kind": "binary", "operator": "divide", "left": {"kind": "binary", "operator": "subtract", "left": {"kind": "reference", "name": "now"}, "right": {"kind": "reference", "name": "before"}}, "right": {"kind": "call", "function": "nullIfZero", "args": [{"kind": "reference", "name": "before"}]}}}], "allowedFilters": [{"name": "status", "field": "status", "operators": ["eq", "in"]}], "segments": [], "relationships": [], "timeField": "created_at"}]}},
10
10
  {"id": "approximate-window", "value": {"kind": "hypequery-deployment", "version": 3, "datasets": [{"name": "orders", "source": "orders", "tenant": {"kind": "not-required"}, "dimensions": [{"name": "tier", "type": "string", "source": {"kind": "column", "column": "tier"}, "filterable": true, "groupable": true}, {"name": "status", "type": "string", "source": {"kind": "column", "column": "status"}, "filterable": true, "groupable": true}, {"name": "amount", "type": "number", "source": {"kind": "column", "column": "amount"}, "filterable": true, "groupable": true}, {"name": "createdAt", "type": "timestamp", "source": {"kind": "column", "column": "created_at"}, "filterable": true, "groupable": true}], "measures": [{"name": "activeUsers", "aggregation": "approxCountDistinct", "field": "user_id", "filters": [], "approximate": true}, {"kind": "window", "requiresTimeRange": true, "name": "activeUsers7d", "measure": "activeUsers", "trailing": {"amount": 7, "unit": "day"}, "approximate": true}, {"kind": "shift", "requiresTimeRange": true, "name": "activeUsersLastWeek", "measure": "activeUsers", "interval": {"amount": 1, "unit": "week"}, "approximate": true}], "allowedFilters": [{"name": "status", "field": "status", "operators": ["eq", "in"]}], "segments": [], "relationships": [], "timeField": "created_at"}]}},
11
- {"id":"approx-count-distinct-without-segments","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"orders","source":"orders","tenant":{"kind":"not-required"},"dimensions":[{"name":"tier","type":"string","source":{"kind":"column","column":"tier"},"filterable":true,"groupable":true},{"name":"status","type":"string","source":{"kind":"column","column":"status"},"filterable":true,"groupable":true},{"name":"amount","type":"number","source":{"kind":"column","column":"amount"},"filterable":true,"groupable":true},{"name":"createdAt","type":"timestamp","source":{"kind":"column","column":"created_at"},"filterable":true,"groupable":true}],"measures":[{"name":"activeUsers","aggregation":"approxCountDistinct","field":"user_id","filters":[],"approximate":true},{"name":"approxActiveFiltered","aggregation":"approxCountDistinct","field":"user_id","filters":[{"kind":"comparison","operator":"eq","left":{"kind":"reference","name":"status"},"right":{"kind":"literal","value":"paid"}}],"approximate":true}],"allowedFilters":[{"name":"status","field":"status","operators":["eq","in"]}],"relationships":[]}]}}
11
+ {"id":"approx-count-distinct-without-segments","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"orders","source":"orders","tenant":{"kind":"not-required"},"dimensions":[{"name":"tier","type":"string","source":{"kind":"column","column":"tier"},"filterable":true,"groupable":true},{"name":"status","type":"string","source":{"kind":"column","column":"status"},"filterable":true,"groupable":true},{"name":"amount","type":"number","source":{"kind":"column","column":"amount"},"filterable":true,"groupable":true},{"name":"createdAt","type":"timestamp","source":{"kind":"column","column":"created_at"},"filterable":true,"groupable":true}],"measures":[{"name":"activeUsers","aggregation":"approxCountDistinct","field":"user_id","filters":[],"approximate":true},{"name":"approxActiveFiltered","aggregation":"approxCountDistinct","field":"user_id","filters":[{"kind":"comparison","operator":"eq","left":{"kind":"reference","name":"status"},"right":{"kind":"literal","value":"paid"}}],"approximate":true}],"allowedFilters":[{"name":"status","field":"status","operators":["eq","in"]}],"relationships":[]}]}},
12
+ {"id":"merge-measures","value":{"kind":"hypequery-deployment","version":3,"datasets":[{"name":"daily_active_users","source":"daily_active_users","tenant":{"kind":"not-required"},"dimensions":[{"name":"day","type":"timestamp","source":{"kind":"column","column":"day"},"filterable":true,"groupable":true}],"measures":[{"name":"active_users","aggregation":"merge","field":"users","filters":[],"stateFunction":"uniq","approximate":true},{"name":"exact_users","aggregation":"merge","stateFunction":"uniqExact","field":"users","filters":[]},{"name":"approx_users","aggregation":"approxCountDistinct","field":"user_id","filters":[],"approximate":true}],"allowedFilters":[],"relationships":[]}]}}
12
13
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hypequery/protocol-conformance",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "description": "Cross-language conformance runner for the Hypequery analytics security protocol",
5
5
  "keywords": [
6
6
  "hypequery",
@@ -31,7 +31,7 @@
31
31
  "README.md"
32
32
  ],
33
33
  "dependencies": {
34
- "@hypequery/protocol": "^0.21.0"
34
+ "@hypequery/protocol": "^0.23.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^22.5.0",