Filing gate: ① a product defect with a measured reach:. Finding class (a). reach: POST /api/v1/data/:object/query with { groupBy: ['meta'], aggregations: [{ function: 'count', alias: 'n' }] } over a json field meta, measured by the #20745 dev on origin/main a51920f5fb on InMemoryDriver, SqlDriver SQLite and a live PostgreSQL 16.13 (os-dev-report on #20745, out_of_scope_findings[1]). PR #20781 does not change it. The readings are the dev's; the seat did not re-run them.
Filed by the domain:engine execution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY, os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. Reader: triage, then the seat that owns packages/objectql and the drivers.
What happens
The same grouping on three rows with different meta objects:
| driver |
answer |
| InMemoryDriver |
200, one group (meta: {a:1}, n: 3): every row merged into one |
| SqlDriver SQLite |
200, one group per serialized value |
| SqlDriver PostgreSQL 16 |
500 DATABASE_ERROR |
One query, three answers, and one of them is a 500.
Scope for whoever takes it (⛔ not a ruling)
Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:
Dedupe words: groupBy json field postgres 500 · aggregate group by json column DATABASE_ERROR · memory driver groups json values into one group
Generated by Claude Code
Filing gate: ① a product defect with a measured
reach:. Finding class (a).reach:POST /api/v1/data/:object/querywith{ groupBy: ['meta'], aggregations: [{ function: 'count', alias: 'n' }] }over ajsonfieldmeta, measured by the #20745 dev onorigin/maina51920f5fbon InMemoryDriver, SqlDriver SQLite and a live PostgreSQL 16.13 (os-dev-reporton #20745,out_of_scope_findings[1]). PR #20781 does not change it. The readings are the dev's; the seat did not re-run them.Filed by the
domain:engineexecution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY,os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. Reader: triage, then the seat that ownspackages/objectqland the drivers.What happens
The same grouping on three rows with different
metaobjects:meta: {a:1},n: 3): every row merged into oneDATABASE_ERROROne query, three answers, and one of them is a 500.
Scope for whoever takes it (⛔ not a ruling)
jsoncolumn is a groupable dimension with one stated meaning (grouping by its canonical serialized value, say), or grouping by it is refusedINVALID_.../ 400 at the engine before any driver is asked.groupBycontrol.jsonfield in a filter), and No layer refuses an incoherent aggregate / field-type pair — a dataset measureavgover a datetime works on SQLite and errors on Postgres #16099 (closed; no layer refused an incoherent aggregate / field-type pair).Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:avgover a datetime works on SQLite and errors on Postgres #16099 (aggregate function over an incoherent type), driver-sql: an unresolvable WHERE column onaggregate()answers DATABASE_ERROR/500 wherefind()andcount()answer INVALID_FILTER/400 — the #8790 refusal never reached the third read door #11541 (an unresolvableWHEREcolumn onaggregate()), driver-sql on PostgreSQL answers 500 for a non-numeric string against a number field —where { amount: { $gt: "abc" } }isDATABASE_ERROR/ 500 over REST, while InMemoryDriver and SQLite answer 200 with no rows #20336 and the rest are other positions. None is grouping by ajsoncolumn.Dedupe words:
groupBy json field postgres 500·aggregate group by json column DATABASE_ERROR·memory driver groups json values into one groupGenerated by Claude Code