Hi, Nikita!

On Mon, Mar 16, 2026 at 6:30 PM Nikita Malakhov <[email protected]> wrote:
> I've rebased patch set onto current master and have corrected
> output according to recent changes in JSON array processing.
> Awaiting review.

Thank you for your efforts in this direction. I've reviewed the v22 of
the patch, and I have the following notes.
1. IsA(planstate, JsonTableSiblingJoin) is wrong.  planstate is not a
node, thus IsA() can't be applied to it.  You should instead do
IsA(planstate->plan, JsonTableSiblingJoin).  It wasn't catched,
because regression tests don't exercise this branch.  So, you also
need to improve the coverage.
2. get_json_table() with patch uses JSON_BEHAVIOR_EMPTY as the default
value for deparsing, while parsing still uses
JSON_BEHAVIOR_EMPTY_ARRAY.  Looks plain wrong.  I'm not sure what is
intention here.
3. PLAN clause is always emitted during deparsing even if user didn't
specify anything.  I would prefer to skip PLAN clause in this case
unless there is strong reason to do the opposite (this reason must be
pointed if any).
4. Unused typedefs in src/tools/pgindent/typedefs.list:
JsonTableScanState, JsonPathSpec, JsonTablePlanStateType,
JsonTableJoinState.
5. Empty comment in JsonTablePlanState definition.  Pointed by Amit,
but not fixed.
6. Rename passingArgs to passing_Args for no reason in parse_jsontable.c.
7. Patch lacks documentation (also pointed by Amit)
8. Patch could use pgindent run.

------
Regards,
Alexander Korotkov
Supabase


Reply via email to