Implement json_agg - #3201
Conversation
|
|
@fulghum DOLT
|
|
SummaryCoverage spans normal and edge-case database behavior for JSON aggregation, including ordering, filtering, duplicate removal, null handling, nested and typed values, numeric boundaries, grouped results, and windowed calculations across partitions and empty frames. Existing aggregate behavior also remained intact, while one broader compatibility limitation affects filtered aggregate syntax. Safe to merge — the only observed failure is a medium-severity, pre-existing SQL compatibility limitation unrelated to this PR, with no regressions or new PR-attributable failures. It is a flag for later rather than a merge blocker. Tests run by ItoAdditional Findings DetailsThese findings are unrelated to the current changes but were observed during testing. 🟡 Filtered JSON aggregation is rejected
Evidence PackageTip Reply with @itoqa to send us feedback on this test run. |
14645bc to
f0bc8d7
Compare
Commit: SummaryCoverage spans JSON aggregation happy paths, ordering, null handling, duplicate removal, windowed results, nested and specialized data types, numeric and temporal conversion, error recovery, and compatibility with existing aggregate behavior. Overall, the exercised database behavior is broadly healthy, with a correctness gap in a windowed duplicate-handling edge case and a separate limitation around filtered or sorted aggregate syntax. Merge with caution — the PR introduces a medium-severity correctness defect where windowed JSON aggregation can retain duplicates, producing incorrect query results. The filtered and sorted aggregate limitation is unrelated to this PR and is a flag for later rather than a merge blocker. Tests run by ItoAdditional Findings DetailsThese findings are unrelated to the current changes but were observed during testing. 🟡 Aggregate queries cannot sort and filter JSON values
Evidence PackageTip Reply with @itoqa to send us feedback on this test run. |


Adds PostgreSQL-compatible
json_agg(anyelement)support for scalar, array, composite, JSON, and JSONB values, including window aggregation andDISTINCTwith SQL NULLs.Part of #3099
Depends on: dolthub/go-mysql-server#3728