On Wed, Sep 23, 2026 at 9:21 PM Robert Haas <[email protected]> wrote: > > On Sat, Sep 19, 2026 at 10:37 AM Alexander Korotkov > <[email protected]> wrote: > > JSON_TABLE: propagate table-level ON ERROR to columns per SQL standard > > This commit has introduced a dump/restore problem. Consider the > following test case: > > CREATE VIEW v AS SELECT * FROM JSON_TABLE(jsonb '"err"', '$' COLUMNS > (a int PATH '$' NULL ON ERROR) ERROR ON ERROR) jt; > SELECT * FROM v; > > This returns a single-row, single-column result, containing null. > > But if you use pg_get_viewdef(), you see that the NULL ON ERROR has vanished: > > rhaas=# select * from pg_get_viewdef('v'); > pg_get_viewdef > ------------------------------------------------------ > SELECT a + > FROM JSON_TABLE( + > '"err"'::jsonb, '$' AS json_table_path_0+ > COLUMNS ( + > a integer PATH '$' + > ) ERROR ON ERROR + > ); > (1 row) > > And the result of that omission is that if you dump and restore such a > database, the behavior of the view changes as compared to the > original: > > $ createdb restore > $ pg_dump | psql restore > $ psql restore > restore=# select * from v; > ERROR: invalid input syntax for type integer: "err"
Thank you for your report. Yep, this requires more detailed consideration. Reverted for now. ------ Regards, Alexander Korotkov Supabase
