Re: remaining sql/json patches
amit <amitlangote09@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
SQL/JSON: Various improvements to SQL/JSON query function docs
- ce416fadb4b6 17.0 landed
- 42de72fa7b80 18.0 landed
-
SQL/JSON: Fix some obsolete comments.
- 290a6d800d90 17.0 landed
- 7768b6569de9 16.4 landed
- 3a8a1f3254b2 18.0 landed
-
SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY
- c0fc0751862d 17.0 landed
-
JSON_TABLE: Add support for NESTED paths and columns
- bb766cde63b4 17.0 landed
-
Fix JsonExpr deparsing to emit QUOTES and WRAPPER correctly
- f6a2529920cf 17.0 landed
-
Fix typo introduced in 6185c9737
- 2f6e78b0619a 17.0 landed
-
Add basic JSON_TABLE() functionality
- de3600452b61 17.0 landed
-
Avoid splitting errmsg string to span multiple lines
- 085e759e9da7 17.0 landed
-
Add SQL/JSON query functions
- 6185c9737cf4 17.0 landed
-
Implement various jsonpath methods
- 66ea94e8e606 17.0 cited
-
Add soft error handling to some expression nodes
- aaaf9449ec6b 17.0 landed
- 7fbc75b26ed8 17.0 landed
-
Adjust populate_record_field() to handle errors softly
- 1edb3b491bee 17.0 landed
-
Refactor code used by jsonpath executor to fetch variables
- faa2b953ba3b 17.0 landed
-
Test EXPLAIN (FORMAT JSON) ... XMLTABLE
- 752533d40fd5 17.0 landed
-
Simplify productions for FORMAT JSON [ ENCODING name ]
- d3fe6e90bab5 17.0 landed
-
Add trailing commas to enum definitions
- 611806cd726f 17.0 cited
-
doc: add missing <returnvalue> and whitespace
- e055b6be7ebb 17.0 landed
-
Add more SQL/JSON constructor functions
- 03734a7fed7d 17.0 landed
-
Rename a nonterminal used in SQL/JSON grammar
- 254ac5a7c31f 17.0 landed
-
Some refactoring to export json(b) conversion functions
- b22391a2ff7b 17.0 landed
-
Don't include CaseTestExpr in JsonValueExpr.formatted_expr
- 66a9003e2e3e 16.0 landed
- b6e1157e7d33 17.0 landed
-
Code review for commit b6e1157e7d
- 7c7412cae3ea 17.0 landed
-
Pass constructName to transformJsonValueExpr()
- 7825a1b01e40 16.0 landed
- 785480c9533d 17.0 landed
-
Unify JSON categorize type API and export for external use
- 3c152a27b063 17.0 landed
-
Make some indentation in gram.y consistent
- 5edf438eeb00 17.0 landed
- 01f1f789df56 16.0 landed
-
Allow most keywords to be used as column labels without requiring AS.
- 06a7c3154f5b 14.0 cited
-
Reduce size of backend scanner's tables.
- 7f380c59f800 13.0 cited
-
Use perfect hashing, instead of binary search, for keyword lookup.
- c64d0cd5ce24 12.0 cited
Attachments
- v17-0001-Support-for-soft-error-handling-during-CoerceVia.patch (application/octet-stream) patch v17-0001
- v17-0002-Add-soft-error-handling-to-populate_record_field.patch (application/octet-stream) patch v17-0002
- v17-0004-JSON_TABLE.patch (application/octet-stream) patch v17-0004
- v17-0003-SQL-JSON-query-functions.patch (application/octet-stream) patch v17-0003
- v17-0005-Claim-SQL-standard-compliance-for-SQL-JSON-featu.patch (application/octet-stream) patch v17-0005
On Tue, Sep 19, 2023 at 9:31 PM Erik Rijkers <er@xs4all.nl> wrote: > Op 9/19/23 om 13:56 schreef Amit Langote: > > On Tue, Sep 19, 2023 at 7:18 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > >> 0001: I wonder why you used Node for the ErrorSaveContext pointer > >> instead of the specific struct you want. I propose the attached, for > >> some extra type-safety. Or did you have a reason to do it that way? > > > > No reason other than that most other headers use Node. I agree that > > making an exception for this patch might be better, so I've > > incorporated your patch into 0001. > > > > I've also updated the query functions patch (0003) to address the > > crashing bug reported by Erik. Essentially, I made the coercion step > > of JSON_QUERY to always use json_populate_type() when WITH WRAPPER is > > used. You might get funny errors with ERROR OR ERROR for many types > > when used in RETURNING, but at least there should no longer be any > > crashes. > > > > Indeed, with v16 those crashes are gone. > > Some lesser evil: gcc 13.2.0 gave some warnings, slightly different in > assert vs non-assert build. > > --- assert build: > > -- [2023.09.19 14:06:35 json_table2/0] make core: make --quiet -j 4 > In file included from ../../../src/include/postgres.h:45, > from parse_expr.c:16: > In function ‘transformJsonFuncExpr’, > inlined from ‘transformExprRecurse’ at parse_expr.c:374:13: > parse_expr.c:4355:22: warning: ‘jsexpr’ may be used uninitialized > [-Wmaybe-uninitialized] > 4355 | Assert(jsexpr->formatted_expr); > ../../../src/include/c.h:864:23: note: in definition of macro ‘Assert’ > 864 | if (!(condition)) \ > | ^~~~~~~~~ > parse_expr.c: In function ‘transformExprRecurse’: > parse_expr.c:4212:21: note: ‘jsexpr’ was declared here > 4212 | JsonExpr *jsexpr; > | ^~~~~~ > > > --- non-assert build: > > -- [2023.09.19 14:11:03 json_table2/1] make core: make --quiet -j 4 > In function ‘transformJsonFuncExpr’, > inlined from ‘transformExprRecurse’ at parse_expr.c:374:13: > parse_expr.c:4356:28: warning: ‘jsexpr’ may be used uninitialized > [-Wmaybe-uninitialized] > 4356 | if (exprType(jsexpr->formatted_expr) != JSONBOID) > | ~~~~~~^~~~~~~~~~~~~~~~ > parse_expr.c: In function ‘transformExprRecurse’: > parse_expr.c:4212:21: note: ‘jsexpr’ was declared here > 4212 | JsonExpr *jsexpr; > | ^~~~~~ Thanks, fixed. -- Thanks, Amit Langote EDB: http://www.enterprisedb.com