I have tested a nested case but why is the negative number allowed in subscript(NESTED '$.phones[-1]'COLUMNS), it should error out if the number is negative.
‘postgres[170683]=#’SELECT * FROM JSON_TABLE(jsonb '{ ‘...>’ "id" : "0.234567897890", ‘...>’ "name" : { "first":"Johnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "last":"Doe" }, ‘...>’ "phones" : [{"type":"home", "number":"555-3762"}, ‘...>’ {"type":"work", "number":"555-7252", "test":123}]}', ‘...>’ '$' ‘...>’ COLUMNS( ‘...>’ id numeric(2,2) PATH 'lax $.id', ‘...>’ last_name varCHAR(10) PATH 'lax $.name.last', first_name VARCHAR(10) PATH 'lax $.name.first', ‘...>’ NESTED '$.phones[-1]'COLUMNS ( ‘...>’ "type" VARCHAR(10), ‘...>’ "number" VARCHAR(10) ‘...>’ ) ‘...>’ ) ‘...>’ ) as t; id | last_name | first_name | type | number ------+-----------+------------+------+-------- 0.23 | Doe | Johnnnnnnn | | (1 row) Thanks, Himanshu