pg_query 4.2.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Symbols referenced in this file:
|
|
3
3
|
* - exprLocation
|
|
4
4
|
* - leftmostLoc
|
|
5
|
-
* -
|
|
5
|
+
* - raw_expression_tree_walker_impl
|
|
6
6
|
*--------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* nodeFuncs.c
|
|
12
12
|
* Various general-purpose manipulations of Node trees
|
|
13
13
|
*
|
|
14
|
-
* Portions Copyright (c) 1996-
|
|
14
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
16
|
*
|
|
17
17
|
*
|
|
@@ -35,10 +35,12 @@
|
|
|
35
35
|
static bool expression_returns_set_walker(Node *node, void *context);
|
|
36
36
|
static int leftmostLoc(int loc1, int loc2);
|
|
37
37
|
static bool fix_opfuncids_walker(Node *node, void *context);
|
|
38
|
-
static bool planstate_walk_subplans(List *plans,
|
|
38
|
+
static bool planstate_walk_subplans(List *plans,
|
|
39
|
+
planstate_tree_walker_callback walker,
|
|
39
40
|
void *context);
|
|
40
41
|
static bool planstate_walk_members(PlanState **planstates, int nplans,
|
|
41
|
-
|
|
42
|
+
planstate_tree_walker_callback walker,
|
|
43
|
+
void *context);
|
|
42
44
|
|
|
43
45
|
|
|
44
46
|
/*
|
|
@@ -372,6 +374,18 @@ exprLocation(const Node *expr)
|
|
|
372
374
|
exprLocation((Node *) xexpr->args));
|
|
373
375
|
}
|
|
374
376
|
break;
|
|
377
|
+
case T_JsonFormat:
|
|
378
|
+
loc = ((const JsonFormat *) expr)->location;
|
|
379
|
+
break;
|
|
380
|
+
case T_JsonValueExpr:
|
|
381
|
+
loc = exprLocation((Node *) ((const JsonValueExpr *) expr)->raw_expr);
|
|
382
|
+
break;
|
|
383
|
+
case T_JsonConstructorExpr:
|
|
384
|
+
loc = ((const JsonConstructorExpr *) expr)->location;
|
|
385
|
+
break;
|
|
386
|
+
case T_JsonIsPredicate:
|
|
387
|
+
loc = ((const JsonIsPredicate *) expr)->location;
|
|
388
|
+
break;
|
|
375
389
|
case T_NullTest:
|
|
376
390
|
{
|
|
377
391
|
const NullTest *nexpr = (const NullTest *) expr;
|
|
@@ -532,6 +546,28 @@ exprLocation(const Node *expr)
|
|
|
532
546
|
case T_CommonTableExpr:
|
|
533
547
|
loc = ((const CommonTableExpr *) expr)->location;
|
|
534
548
|
break;
|
|
549
|
+
case T_JsonKeyValue:
|
|
550
|
+
/* just use the key's location */
|
|
551
|
+
loc = exprLocation((Node *) ((const JsonKeyValue *) expr)->key);
|
|
552
|
+
break;
|
|
553
|
+
case T_JsonObjectConstructor:
|
|
554
|
+
loc = ((const JsonObjectConstructor *) expr)->location;
|
|
555
|
+
break;
|
|
556
|
+
case T_JsonArrayConstructor:
|
|
557
|
+
loc = ((const JsonArrayConstructor *) expr)->location;
|
|
558
|
+
break;
|
|
559
|
+
case T_JsonArrayQueryConstructor:
|
|
560
|
+
loc = ((const JsonArrayQueryConstructor *) expr)->location;
|
|
561
|
+
break;
|
|
562
|
+
case T_JsonAggConstructor:
|
|
563
|
+
loc = ((const JsonAggConstructor *) expr)->location;
|
|
564
|
+
break;
|
|
565
|
+
case T_JsonObjectAgg:
|
|
566
|
+
loc = exprLocation((Node *) ((const JsonObjectAgg *) expr)->constructor);
|
|
567
|
+
break;
|
|
568
|
+
case T_JsonArrayAgg:
|
|
569
|
+
loc = exprLocation((Node *) ((const JsonArrayAgg *) expr)->constructor);
|
|
570
|
+
break;
|
|
535
571
|
case T_PlaceHolderVar:
|
|
536
572
|
/* just use argument's location */
|
|
537
573
|
loc = exprLocation((Node *) ((const PlaceHolderVar *) expr)->phexpr);
|
|
@@ -721,7 +757,9 @@ leftmostLoc(int loc1, int loc2)
|
|
|
721
757
|
* uses, but may need to be revisited in future.
|
|
722
758
|
*/
|
|
723
759
|
|
|
724
|
-
|
|
760
|
+
#define WALK(n) walker((Node *) (n), context)
|
|
761
|
+
#define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
|
|
762
|
+
#undef LIST_WALK
|
|
725
763
|
|
|
726
764
|
/*
|
|
727
765
|
* query_tree_walker --- initiate a walk of a Query's expressions
|
|
@@ -887,9 +925,9 @@ leftmostLoc(int loc1, int loc2)
|
|
|
887
925
|
* statements can appear in CTEs.
|
|
888
926
|
*/
|
|
889
927
|
bool
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
928
|
+
raw_expression_tree_walker_impl(Node *node,
|
|
929
|
+
tree_walker_callback walker,
|
|
930
|
+
void *context)
|
|
893
931
|
{
|
|
894
932
|
ListCell *temp;
|
|
895
933
|
|
|
@@ -905,6 +943,7 @@ raw_expression_tree_walker(Node *node,
|
|
|
905
943
|
|
|
906
944
|
switch (nodeTag(node))
|
|
907
945
|
{
|
|
946
|
+
case T_JsonFormat:
|
|
908
947
|
case T_SetToDefault:
|
|
909
948
|
case T_CurrentOfExpr:
|
|
910
949
|
case T_SQLValueFunction:
|
|
@@ -922,17 +961,17 @@ raw_expression_tree_walker(Node *node,
|
|
|
922
961
|
/* we assume the colnames list isn't interesting */
|
|
923
962
|
break;
|
|
924
963
|
case T_RangeVar:
|
|
925
|
-
return
|
|
964
|
+
return WALK(((RangeVar *) node)->alias);
|
|
926
965
|
case T_GroupingFunc:
|
|
927
|
-
return
|
|
966
|
+
return WALK(((GroupingFunc *) node)->args);
|
|
928
967
|
case T_SubLink:
|
|
929
968
|
{
|
|
930
969
|
SubLink *sublink = (SubLink *) node;
|
|
931
970
|
|
|
932
|
-
if (
|
|
971
|
+
if (WALK(sublink->testexpr))
|
|
933
972
|
return true;
|
|
934
973
|
/* we assume the operName is not interesting */
|
|
935
|
-
if (
|
|
974
|
+
if (WALK(sublink->subselect))
|
|
936
975
|
return true;
|
|
937
976
|
}
|
|
938
977
|
break;
|
|
@@ -940,55 +979,85 @@ raw_expression_tree_walker(Node *node,
|
|
|
940
979
|
{
|
|
941
980
|
CaseExpr *caseexpr = (CaseExpr *) node;
|
|
942
981
|
|
|
943
|
-
if (
|
|
982
|
+
if (WALK(caseexpr->arg))
|
|
944
983
|
return true;
|
|
945
984
|
/* we assume walker doesn't care about CaseWhens, either */
|
|
946
985
|
foreach(temp, caseexpr->args)
|
|
947
986
|
{
|
|
948
987
|
CaseWhen *when = lfirst_node(CaseWhen, temp);
|
|
949
988
|
|
|
950
|
-
if (
|
|
989
|
+
if (WALK(when->expr))
|
|
951
990
|
return true;
|
|
952
|
-
if (
|
|
991
|
+
if (WALK(when->result))
|
|
953
992
|
return true;
|
|
954
993
|
}
|
|
955
|
-
if (
|
|
994
|
+
if (WALK(caseexpr->defresult))
|
|
956
995
|
return true;
|
|
957
996
|
}
|
|
958
997
|
break;
|
|
959
998
|
case T_RowExpr:
|
|
960
999
|
/* Assume colnames isn't interesting */
|
|
961
|
-
return
|
|
1000
|
+
return WALK(((RowExpr *) node)->args);
|
|
962
1001
|
case T_CoalesceExpr:
|
|
963
|
-
return
|
|
1002
|
+
return WALK(((CoalesceExpr *) node)->args);
|
|
964
1003
|
case T_MinMaxExpr:
|
|
965
|
-
return
|
|
1004
|
+
return WALK(((MinMaxExpr *) node)->args);
|
|
966
1005
|
case T_XmlExpr:
|
|
967
1006
|
{
|
|
968
1007
|
XmlExpr *xexpr = (XmlExpr *) node;
|
|
969
1008
|
|
|
970
|
-
if (
|
|
1009
|
+
if (WALK(xexpr->named_args))
|
|
971
1010
|
return true;
|
|
972
1011
|
/* we assume walker doesn't care about arg_names */
|
|
973
|
-
if (
|
|
1012
|
+
if (WALK(xexpr->args))
|
|
1013
|
+
return true;
|
|
1014
|
+
}
|
|
1015
|
+
break;
|
|
1016
|
+
case T_JsonReturning:
|
|
1017
|
+
return WALK(((JsonReturning *) node)->format);
|
|
1018
|
+
case T_JsonValueExpr:
|
|
1019
|
+
{
|
|
1020
|
+
JsonValueExpr *jve = (JsonValueExpr *) node;
|
|
1021
|
+
|
|
1022
|
+
if (WALK(jve->raw_expr))
|
|
1023
|
+
return true;
|
|
1024
|
+
if (WALK(jve->formatted_expr))
|
|
1025
|
+
return true;
|
|
1026
|
+
if (WALK(jve->format))
|
|
1027
|
+
return true;
|
|
1028
|
+
}
|
|
1029
|
+
break;
|
|
1030
|
+
case T_JsonConstructorExpr:
|
|
1031
|
+
{
|
|
1032
|
+
JsonConstructorExpr *ctor = (JsonConstructorExpr *) node;
|
|
1033
|
+
|
|
1034
|
+
if (WALK(ctor->args))
|
|
1035
|
+
return true;
|
|
1036
|
+
if (WALK(ctor->func))
|
|
1037
|
+
return true;
|
|
1038
|
+
if (WALK(ctor->coercion))
|
|
1039
|
+
return true;
|
|
1040
|
+
if (WALK(ctor->returning))
|
|
974
1041
|
return true;
|
|
975
1042
|
}
|
|
976
1043
|
break;
|
|
1044
|
+
case T_JsonIsPredicate:
|
|
1045
|
+
return WALK(((JsonIsPredicate *) node)->expr);
|
|
977
1046
|
case T_NullTest:
|
|
978
|
-
return
|
|
1047
|
+
return WALK(((NullTest *) node)->arg);
|
|
979
1048
|
case T_BooleanTest:
|
|
980
|
-
return
|
|
1049
|
+
return WALK(((BooleanTest *) node)->arg);
|
|
981
1050
|
case T_JoinExpr:
|
|
982
1051
|
{
|
|
983
1052
|
JoinExpr *join = (JoinExpr *) node;
|
|
984
1053
|
|
|
985
|
-
if (
|
|
1054
|
+
if (WALK(join->larg))
|
|
986
1055
|
return true;
|
|
987
|
-
if (
|
|
1056
|
+
if (WALK(join->rarg))
|
|
988
1057
|
return true;
|
|
989
|
-
if (
|
|
1058
|
+
if (WALK(join->quals))
|
|
990
1059
|
return true;
|
|
991
|
-
if (
|
|
1060
|
+
if (WALK(join->alias))
|
|
992
1061
|
return true;
|
|
993
1062
|
/* using list is deemed uninteresting */
|
|
994
1063
|
}
|
|
@@ -997,18 +1066,18 @@ raw_expression_tree_walker(Node *node,
|
|
|
997
1066
|
{
|
|
998
1067
|
IntoClause *into = (IntoClause *) node;
|
|
999
1068
|
|
|
1000
|
-
if (
|
|
1069
|
+
if (WALK(into->rel))
|
|
1001
1070
|
return true;
|
|
1002
1071
|
/* colNames, options are deemed uninteresting */
|
|
1003
1072
|
/* viewQuery should be null in raw parsetree, but check it */
|
|
1004
|
-
if (
|
|
1073
|
+
if (WALK(into->viewQuery))
|
|
1005
1074
|
return true;
|
|
1006
1075
|
}
|
|
1007
1076
|
break;
|
|
1008
1077
|
case T_List:
|
|
1009
1078
|
foreach(temp, (List *) node)
|
|
1010
1079
|
{
|
|
1011
|
-
if (
|
|
1080
|
+
if (WALK((Node *) lfirst(temp)))
|
|
1012
1081
|
return true;
|
|
1013
1082
|
}
|
|
1014
1083
|
break;
|
|
@@ -1016,17 +1085,17 @@ raw_expression_tree_walker(Node *node,
|
|
|
1016
1085
|
{
|
|
1017
1086
|
InsertStmt *stmt = (InsertStmt *) node;
|
|
1018
1087
|
|
|
1019
|
-
if (
|
|
1088
|
+
if (WALK(stmt->relation))
|
|
1020
1089
|
return true;
|
|
1021
|
-
if (
|
|
1090
|
+
if (WALK(stmt->cols))
|
|
1022
1091
|
return true;
|
|
1023
|
-
if (
|
|
1092
|
+
if (WALK(stmt->selectStmt))
|
|
1024
1093
|
return true;
|
|
1025
|
-
if (
|
|
1094
|
+
if (WALK(stmt->onConflictClause))
|
|
1026
1095
|
return true;
|
|
1027
|
-
if (
|
|
1096
|
+
if (WALK(stmt->returningList))
|
|
1028
1097
|
return true;
|
|
1029
|
-
if (
|
|
1098
|
+
if (WALK(stmt->withClause))
|
|
1030
1099
|
return true;
|
|
1031
1100
|
}
|
|
1032
1101
|
break;
|
|
@@ -1034,15 +1103,15 @@ raw_expression_tree_walker(Node *node,
|
|
|
1034
1103
|
{
|
|
1035
1104
|
DeleteStmt *stmt = (DeleteStmt *) node;
|
|
1036
1105
|
|
|
1037
|
-
if (
|
|
1106
|
+
if (WALK(stmt->relation))
|
|
1038
1107
|
return true;
|
|
1039
|
-
if (
|
|
1108
|
+
if (WALK(stmt->usingClause))
|
|
1040
1109
|
return true;
|
|
1041
|
-
if (
|
|
1110
|
+
if (WALK(stmt->whereClause))
|
|
1042
1111
|
return true;
|
|
1043
|
-
if (
|
|
1112
|
+
if (WALK(stmt->returningList))
|
|
1044
1113
|
return true;
|
|
1045
|
-
if (
|
|
1114
|
+
if (WALK(stmt->withClause))
|
|
1046
1115
|
return true;
|
|
1047
1116
|
}
|
|
1048
1117
|
break;
|
|
@@ -1050,17 +1119,17 @@ raw_expression_tree_walker(Node *node,
|
|
|
1050
1119
|
{
|
|
1051
1120
|
UpdateStmt *stmt = (UpdateStmt *) node;
|
|
1052
1121
|
|
|
1053
|
-
if (
|
|
1122
|
+
if (WALK(stmt->relation))
|
|
1054
1123
|
return true;
|
|
1055
|
-
if (
|
|
1124
|
+
if (WALK(stmt->targetList))
|
|
1056
1125
|
return true;
|
|
1057
|
-
if (
|
|
1126
|
+
if (WALK(stmt->whereClause))
|
|
1058
1127
|
return true;
|
|
1059
|
-
if (
|
|
1128
|
+
if (WALK(stmt->fromClause))
|
|
1060
1129
|
return true;
|
|
1061
|
-
if (
|
|
1130
|
+
if (WALK(stmt->returningList))
|
|
1062
1131
|
return true;
|
|
1063
|
-
if (
|
|
1132
|
+
if (WALK(stmt->withClause))
|
|
1064
1133
|
return true;
|
|
1065
1134
|
}
|
|
1066
1135
|
break;
|
|
@@ -1068,15 +1137,15 @@ raw_expression_tree_walker(Node *node,
|
|
|
1068
1137
|
{
|
|
1069
1138
|
MergeStmt *stmt = (MergeStmt *) node;
|
|
1070
1139
|
|
|
1071
|
-
if (
|
|
1140
|
+
if (WALK(stmt->relation))
|
|
1072
1141
|
return true;
|
|
1073
|
-
if (
|
|
1142
|
+
if (WALK(stmt->sourceRelation))
|
|
1074
1143
|
return true;
|
|
1075
|
-
if (
|
|
1144
|
+
if (WALK(stmt->joinCondition))
|
|
1076
1145
|
return true;
|
|
1077
|
-
if (
|
|
1146
|
+
if (WALK(stmt->mergeWhenClauses))
|
|
1078
1147
|
return true;
|
|
1079
|
-
if (
|
|
1148
|
+
if (WALK(stmt->withClause))
|
|
1080
1149
|
return true;
|
|
1081
1150
|
}
|
|
1082
1151
|
break;
|
|
@@ -1084,11 +1153,11 @@ raw_expression_tree_walker(Node *node,
|
|
|
1084
1153
|
{
|
|
1085
1154
|
MergeWhenClause *mergeWhenClause = (MergeWhenClause *) node;
|
|
1086
1155
|
|
|
1087
|
-
if (
|
|
1156
|
+
if (WALK(mergeWhenClause->condition))
|
|
1088
1157
|
return true;
|
|
1089
|
-
if (
|
|
1158
|
+
if (WALK(mergeWhenClause->targetList))
|
|
1090
1159
|
return true;
|
|
1091
|
-
if (
|
|
1160
|
+
if (WALK(mergeWhenClause->values))
|
|
1092
1161
|
return true;
|
|
1093
1162
|
}
|
|
1094
1163
|
break;
|
|
@@ -1096,37 +1165,37 @@ raw_expression_tree_walker(Node *node,
|
|
|
1096
1165
|
{
|
|
1097
1166
|
SelectStmt *stmt = (SelectStmt *) node;
|
|
1098
1167
|
|
|
1099
|
-
if (
|
|
1168
|
+
if (WALK(stmt->distinctClause))
|
|
1100
1169
|
return true;
|
|
1101
|
-
if (
|
|
1170
|
+
if (WALK(stmt->intoClause))
|
|
1102
1171
|
return true;
|
|
1103
|
-
if (
|
|
1172
|
+
if (WALK(stmt->targetList))
|
|
1104
1173
|
return true;
|
|
1105
|
-
if (
|
|
1174
|
+
if (WALK(stmt->fromClause))
|
|
1106
1175
|
return true;
|
|
1107
|
-
if (
|
|
1176
|
+
if (WALK(stmt->whereClause))
|
|
1108
1177
|
return true;
|
|
1109
|
-
if (
|
|
1178
|
+
if (WALK(stmt->groupClause))
|
|
1110
1179
|
return true;
|
|
1111
|
-
if (
|
|
1180
|
+
if (WALK(stmt->havingClause))
|
|
1112
1181
|
return true;
|
|
1113
|
-
if (
|
|
1182
|
+
if (WALK(stmt->windowClause))
|
|
1114
1183
|
return true;
|
|
1115
|
-
if (
|
|
1184
|
+
if (WALK(stmt->valuesLists))
|
|
1116
1185
|
return true;
|
|
1117
|
-
if (
|
|
1186
|
+
if (WALK(stmt->sortClause))
|
|
1118
1187
|
return true;
|
|
1119
|
-
if (
|
|
1188
|
+
if (WALK(stmt->limitOffset))
|
|
1120
1189
|
return true;
|
|
1121
|
-
if (
|
|
1190
|
+
if (WALK(stmt->limitCount))
|
|
1122
1191
|
return true;
|
|
1123
|
-
if (
|
|
1192
|
+
if (WALK(stmt->lockingClause))
|
|
1124
1193
|
return true;
|
|
1125
|
-
if (
|
|
1194
|
+
if (WALK(stmt->withClause))
|
|
1126
1195
|
return true;
|
|
1127
|
-
if (
|
|
1196
|
+
if (WALK(stmt->larg))
|
|
1128
1197
|
return true;
|
|
1129
|
-
if (
|
|
1198
|
+
if (WALK(stmt->rarg))
|
|
1130
1199
|
return true;
|
|
1131
1200
|
}
|
|
1132
1201
|
break;
|
|
@@ -1134,9 +1203,9 @@ raw_expression_tree_walker(Node *node,
|
|
|
1134
1203
|
{
|
|
1135
1204
|
PLAssignStmt *stmt = (PLAssignStmt *) node;
|
|
1136
1205
|
|
|
1137
|
-
if (
|
|
1206
|
+
if (WALK(stmt->indirection))
|
|
1138
1207
|
return true;
|
|
1139
|
-
if (
|
|
1208
|
+
if (WALK(stmt->val))
|
|
1140
1209
|
return true;
|
|
1141
1210
|
}
|
|
1142
1211
|
break;
|
|
@@ -1144,9 +1213,9 @@ raw_expression_tree_walker(Node *node,
|
|
|
1144
1213
|
{
|
|
1145
1214
|
A_Expr *expr = (A_Expr *) node;
|
|
1146
1215
|
|
|
1147
|
-
if (
|
|
1216
|
+
if (WALK(expr->lexpr))
|
|
1148
1217
|
return true;
|
|
1149
|
-
if (
|
|
1218
|
+
if (WALK(expr->rexpr))
|
|
1150
1219
|
return true;
|
|
1151
1220
|
/* operator name is deemed uninteresting */
|
|
1152
1221
|
}
|
|
@@ -1155,7 +1224,7 @@ raw_expression_tree_walker(Node *node,
|
|
|
1155
1224
|
{
|
|
1156
1225
|
BoolExpr *expr = (BoolExpr *) node;
|
|
1157
1226
|
|
|
1158
|
-
if (
|
|
1227
|
+
if (WALK(expr->args))
|
|
1159
1228
|
return true;
|
|
1160
1229
|
}
|
|
1161
1230
|
break;
|
|
@@ -1166,26 +1235,26 @@ raw_expression_tree_walker(Node *node,
|
|
|
1166
1235
|
{
|
|
1167
1236
|
FuncCall *fcall = (FuncCall *) node;
|
|
1168
1237
|
|
|
1169
|
-
if (
|
|
1238
|
+
if (WALK(fcall->args))
|
|
1170
1239
|
return true;
|
|
1171
|
-
if (
|
|
1240
|
+
if (WALK(fcall->agg_order))
|
|
1172
1241
|
return true;
|
|
1173
|
-
if (
|
|
1242
|
+
if (WALK(fcall->agg_filter))
|
|
1174
1243
|
return true;
|
|
1175
|
-
if (
|
|
1244
|
+
if (WALK(fcall->over))
|
|
1176
1245
|
return true;
|
|
1177
1246
|
/* function name is deemed uninteresting */
|
|
1178
1247
|
}
|
|
1179
1248
|
break;
|
|
1180
1249
|
case T_NamedArgExpr:
|
|
1181
|
-
return
|
|
1250
|
+
return WALK(((NamedArgExpr *) node)->arg);
|
|
1182
1251
|
case T_A_Indices:
|
|
1183
1252
|
{
|
|
1184
1253
|
A_Indices *indices = (A_Indices *) node;
|
|
1185
1254
|
|
|
1186
|
-
if (
|
|
1255
|
+
if (WALK(indices->lidx))
|
|
1187
1256
|
return true;
|
|
1188
|
-
if (
|
|
1257
|
+
if (WALK(indices->uidx))
|
|
1189
1258
|
return true;
|
|
1190
1259
|
}
|
|
1191
1260
|
break;
|
|
@@ -1193,51 +1262,51 @@ raw_expression_tree_walker(Node *node,
|
|
|
1193
1262
|
{
|
|
1194
1263
|
A_Indirection *indir = (A_Indirection *) node;
|
|
1195
1264
|
|
|
1196
|
-
if (
|
|
1265
|
+
if (WALK(indir->arg))
|
|
1197
1266
|
return true;
|
|
1198
|
-
if (
|
|
1267
|
+
if (WALK(indir->indirection))
|
|
1199
1268
|
return true;
|
|
1200
1269
|
}
|
|
1201
1270
|
break;
|
|
1202
1271
|
case T_A_ArrayExpr:
|
|
1203
|
-
return
|
|
1272
|
+
return WALK(((A_ArrayExpr *) node)->elements);
|
|
1204
1273
|
case T_ResTarget:
|
|
1205
1274
|
{
|
|
1206
1275
|
ResTarget *rt = (ResTarget *) node;
|
|
1207
1276
|
|
|
1208
|
-
if (
|
|
1277
|
+
if (WALK(rt->indirection))
|
|
1209
1278
|
return true;
|
|
1210
|
-
if (
|
|
1279
|
+
if (WALK(rt->val))
|
|
1211
1280
|
return true;
|
|
1212
1281
|
}
|
|
1213
1282
|
break;
|
|
1214
1283
|
case T_MultiAssignRef:
|
|
1215
|
-
return
|
|
1284
|
+
return WALK(((MultiAssignRef *) node)->source);
|
|
1216
1285
|
case T_TypeCast:
|
|
1217
1286
|
{
|
|
1218
1287
|
TypeCast *tc = (TypeCast *) node;
|
|
1219
1288
|
|
|
1220
|
-
if (
|
|
1289
|
+
if (WALK(tc->arg))
|
|
1221
1290
|
return true;
|
|
1222
|
-
if (
|
|
1291
|
+
if (WALK(tc->typeName))
|
|
1223
1292
|
return true;
|
|
1224
1293
|
}
|
|
1225
1294
|
break;
|
|
1226
1295
|
case T_CollateClause:
|
|
1227
|
-
return
|
|
1296
|
+
return WALK(((CollateClause *) node)->arg);
|
|
1228
1297
|
case T_SortBy:
|
|
1229
|
-
return
|
|
1298
|
+
return WALK(((SortBy *) node)->node);
|
|
1230
1299
|
case T_WindowDef:
|
|
1231
1300
|
{
|
|
1232
1301
|
WindowDef *wd = (WindowDef *) node;
|
|
1233
1302
|
|
|
1234
|
-
if (
|
|
1303
|
+
if (WALK(wd->partitionClause))
|
|
1235
1304
|
return true;
|
|
1236
|
-
if (
|
|
1305
|
+
if (WALK(wd->orderClause))
|
|
1237
1306
|
return true;
|
|
1238
|
-
if (
|
|
1307
|
+
if (WALK(wd->startOffset))
|
|
1239
1308
|
return true;
|
|
1240
|
-
if (
|
|
1309
|
+
if (WALK(wd->endOffset))
|
|
1241
1310
|
return true;
|
|
1242
1311
|
}
|
|
1243
1312
|
break;
|
|
@@ -1245,9 +1314,9 @@ raw_expression_tree_walker(Node *node,
|
|
|
1245
1314
|
{
|
|
1246
1315
|
RangeSubselect *rs = (RangeSubselect *) node;
|
|
1247
1316
|
|
|
1248
|
-
if (
|
|
1317
|
+
if (WALK(rs->subquery))
|
|
1249
1318
|
return true;
|
|
1250
|
-
if (
|
|
1319
|
+
if (WALK(rs->alias))
|
|
1251
1320
|
return true;
|
|
1252
1321
|
}
|
|
1253
1322
|
break;
|
|
@@ -1255,11 +1324,11 @@ raw_expression_tree_walker(Node *node,
|
|
|
1255
1324
|
{
|
|
1256
1325
|
RangeFunction *rf = (RangeFunction *) node;
|
|
1257
1326
|
|
|
1258
|
-
if (
|
|
1327
|
+
if (WALK(rf->functions))
|
|
1259
1328
|
return true;
|
|
1260
|
-
if (
|
|
1329
|
+
if (WALK(rf->alias))
|
|
1261
1330
|
return true;
|
|
1262
|
-
if (
|
|
1331
|
+
if (WALK(rf->coldeflist))
|
|
1263
1332
|
return true;
|
|
1264
1333
|
}
|
|
1265
1334
|
break;
|
|
@@ -1267,12 +1336,12 @@ raw_expression_tree_walker(Node *node,
|
|
|
1267
1336
|
{
|
|
1268
1337
|
RangeTableSample *rts = (RangeTableSample *) node;
|
|
1269
1338
|
|
|
1270
|
-
if (
|
|
1339
|
+
if (WALK(rts->relation))
|
|
1271
1340
|
return true;
|
|
1272
1341
|
/* method name is deemed uninteresting */
|
|
1273
|
-
if (
|
|
1342
|
+
if (WALK(rts->args))
|
|
1274
1343
|
return true;
|
|
1275
|
-
if (
|
|
1344
|
+
if (WALK(rts->repeatable))
|
|
1276
1345
|
return true;
|
|
1277
1346
|
}
|
|
1278
1347
|
break;
|
|
@@ -1280,15 +1349,15 @@ raw_expression_tree_walker(Node *node,
|
|
|
1280
1349
|
{
|
|
1281
1350
|
RangeTableFunc *rtf = (RangeTableFunc *) node;
|
|
1282
1351
|
|
|
1283
|
-
if (
|
|
1352
|
+
if (WALK(rtf->docexpr))
|
|
1284
1353
|
return true;
|
|
1285
|
-
if (
|
|
1354
|
+
if (WALK(rtf->rowexpr))
|
|
1286
1355
|
return true;
|
|
1287
|
-
if (
|
|
1356
|
+
if (WALK(rtf->namespaces))
|
|
1288
1357
|
return true;
|
|
1289
|
-
if (
|
|
1358
|
+
if (WALK(rtf->columns))
|
|
1290
1359
|
return true;
|
|
1291
|
-
if (
|
|
1360
|
+
if (WALK(rtf->alias))
|
|
1292
1361
|
return true;
|
|
1293
1362
|
}
|
|
1294
1363
|
break;
|
|
@@ -1296,9 +1365,9 @@ raw_expression_tree_walker(Node *node,
|
|
|
1296
1365
|
{
|
|
1297
1366
|
RangeTableFuncCol *rtfc = (RangeTableFuncCol *) node;
|
|
1298
1367
|
|
|
1299
|
-
if (
|
|
1368
|
+
if (WALK(rtfc->colexpr))
|
|
1300
1369
|
return true;
|
|
1301
|
-
if (
|
|
1370
|
+
if (WALK(rtfc->coldefexpr))
|
|
1302
1371
|
return true;
|
|
1303
1372
|
}
|
|
1304
1373
|
break;
|
|
@@ -1306,9 +1375,9 @@ raw_expression_tree_walker(Node *node,
|
|
|
1306
1375
|
{
|
|
1307
1376
|
TypeName *tn = (TypeName *) node;
|
|
1308
1377
|
|
|
1309
|
-
if (
|
|
1378
|
+
if (WALK(tn->typmods))
|
|
1310
1379
|
return true;
|
|
1311
|
-
if (
|
|
1380
|
+
if (WALK(tn->arrayBounds))
|
|
1312
1381
|
return true;
|
|
1313
1382
|
/* type name itself is deemed uninteresting */
|
|
1314
1383
|
}
|
|
@@ -1317,13 +1386,11 @@ raw_expression_tree_walker(Node *node,
|
|
|
1317
1386
|
{
|
|
1318
1387
|
ColumnDef *coldef = (ColumnDef *) node;
|
|
1319
1388
|
|
|
1320
|
-
if (
|
|
1321
|
-
return true;
|
|
1322
|
-
if (walker(coldef->compression, context))
|
|
1389
|
+
if (WALK(coldef->typeName))
|
|
1323
1390
|
return true;
|
|
1324
|
-
if (
|
|
1391
|
+
if (WALK(coldef->raw_default))
|
|
1325
1392
|
return true;
|
|
1326
|
-
if (
|
|
1393
|
+
if (WALK(coldef->collClause))
|
|
1327
1394
|
return true;
|
|
1328
1395
|
/* for now, constraints are ignored */
|
|
1329
1396
|
}
|
|
@@ -1332,34 +1399,34 @@ raw_expression_tree_walker(Node *node,
|
|
|
1332
1399
|
{
|
|
1333
1400
|
IndexElem *indelem = (IndexElem *) node;
|
|
1334
1401
|
|
|
1335
|
-
if (
|
|
1402
|
+
if (WALK(indelem->expr))
|
|
1336
1403
|
return true;
|
|
1337
1404
|
/* collation and opclass names are deemed uninteresting */
|
|
1338
1405
|
}
|
|
1339
1406
|
break;
|
|
1340
1407
|
case T_GroupingSet:
|
|
1341
|
-
return
|
|
1408
|
+
return WALK(((GroupingSet *) node)->content);
|
|
1342
1409
|
case T_LockingClause:
|
|
1343
|
-
return
|
|
1410
|
+
return WALK(((LockingClause *) node)->lockedRels);
|
|
1344
1411
|
case T_XmlSerialize:
|
|
1345
1412
|
{
|
|
1346
1413
|
XmlSerialize *xs = (XmlSerialize *) node;
|
|
1347
1414
|
|
|
1348
|
-
if (
|
|
1415
|
+
if (WALK(xs->expr))
|
|
1349
1416
|
return true;
|
|
1350
|
-
if (
|
|
1417
|
+
if (WALK(xs->typeName))
|
|
1351
1418
|
return true;
|
|
1352
1419
|
}
|
|
1353
1420
|
break;
|
|
1354
1421
|
case T_WithClause:
|
|
1355
|
-
return
|
|
1422
|
+
return WALK(((WithClause *) node)->ctes);
|
|
1356
1423
|
case T_InferClause:
|
|
1357
1424
|
{
|
|
1358
1425
|
InferClause *stmt = (InferClause *) node;
|
|
1359
1426
|
|
|
1360
|
-
if (
|
|
1427
|
+
if (WALK(stmt->indexElems))
|
|
1361
1428
|
return true;
|
|
1362
|
-
if (
|
|
1429
|
+
if (WALK(stmt->whereClause))
|
|
1363
1430
|
return true;
|
|
1364
1431
|
}
|
|
1365
1432
|
break;
|
|
@@ -1367,17 +1434,101 @@ raw_expression_tree_walker(Node *node,
|
|
|
1367
1434
|
{
|
|
1368
1435
|
OnConflictClause *stmt = (OnConflictClause *) node;
|
|
1369
1436
|
|
|
1370
|
-
if (
|
|
1437
|
+
if (WALK(stmt->infer))
|
|
1371
1438
|
return true;
|
|
1372
|
-
if (
|
|
1439
|
+
if (WALK(stmt->targetList))
|
|
1373
1440
|
return true;
|
|
1374
|
-
if (
|
|
1441
|
+
if (WALK(stmt->whereClause))
|
|
1375
1442
|
return true;
|
|
1376
1443
|
}
|
|
1377
1444
|
break;
|
|
1378
1445
|
case T_CommonTableExpr:
|
|
1379
1446
|
/* search_clause and cycle_clause are not interesting here */
|
|
1380
|
-
return
|
|
1447
|
+
return WALK(((CommonTableExpr *) node)->ctequery);
|
|
1448
|
+
case T_JsonOutput:
|
|
1449
|
+
{
|
|
1450
|
+
JsonOutput *out = (JsonOutput *) node;
|
|
1451
|
+
|
|
1452
|
+
if (WALK(out->typeName))
|
|
1453
|
+
return true;
|
|
1454
|
+
if (WALK(out->returning))
|
|
1455
|
+
return true;
|
|
1456
|
+
}
|
|
1457
|
+
break;
|
|
1458
|
+
case T_JsonKeyValue:
|
|
1459
|
+
{
|
|
1460
|
+
JsonKeyValue *jkv = (JsonKeyValue *) node;
|
|
1461
|
+
|
|
1462
|
+
if (WALK(jkv->key))
|
|
1463
|
+
return true;
|
|
1464
|
+
if (WALK(jkv->value))
|
|
1465
|
+
return true;
|
|
1466
|
+
}
|
|
1467
|
+
break;
|
|
1468
|
+
case T_JsonObjectConstructor:
|
|
1469
|
+
{
|
|
1470
|
+
JsonObjectConstructor *joc = (JsonObjectConstructor *) node;
|
|
1471
|
+
|
|
1472
|
+
if (WALK(joc->output))
|
|
1473
|
+
return true;
|
|
1474
|
+
if (WALK(joc->exprs))
|
|
1475
|
+
return true;
|
|
1476
|
+
}
|
|
1477
|
+
break;
|
|
1478
|
+
case T_JsonArrayConstructor:
|
|
1479
|
+
{
|
|
1480
|
+
JsonArrayConstructor *jac = (JsonArrayConstructor *) node;
|
|
1481
|
+
|
|
1482
|
+
if (WALK(jac->output))
|
|
1483
|
+
return true;
|
|
1484
|
+
if (WALK(jac->exprs))
|
|
1485
|
+
return true;
|
|
1486
|
+
}
|
|
1487
|
+
break;
|
|
1488
|
+
case T_JsonAggConstructor:
|
|
1489
|
+
{
|
|
1490
|
+
JsonAggConstructor *ctor = (JsonAggConstructor *) node;
|
|
1491
|
+
|
|
1492
|
+
if (WALK(ctor->output))
|
|
1493
|
+
return true;
|
|
1494
|
+
if (WALK(ctor->agg_order))
|
|
1495
|
+
return true;
|
|
1496
|
+
if (WALK(ctor->agg_filter))
|
|
1497
|
+
return true;
|
|
1498
|
+
if (WALK(ctor->over))
|
|
1499
|
+
return true;
|
|
1500
|
+
}
|
|
1501
|
+
break;
|
|
1502
|
+
case T_JsonObjectAgg:
|
|
1503
|
+
{
|
|
1504
|
+
JsonObjectAgg *joa = (JsonObjectAgg *) node;
|
|
1505
|
+
|
|
1506
|
+
if (WALK(joa->constructor))
|
|
1507
|
+
return true;
|
|
1508
|
+
if (WALK(joa->arg))
|
|
1509
|
+
return true;
|
|
1510
|
+
}
|
|
1511
|
+
break;
|
|
1512
|
+
case T_JsonArrayAgg:
|
|
1513
|
+
{
|
|
1514
|
+
JsonArrayAgg *jaa = (JsonArrayAgg *) node;
|
|
1515
|
+
|
|
1516
|
+
if (WALK(jaa->constructor))
|
|
1517
|
+
return true;
|
|
1518
|
+
if (WALK(jaa->arg))
|
|
1519
|
+
return true;
|
|
1520
|
+
}
|
|
1521
|
+
break;
|
|
1522
|
+
case T_JsonArrayQueryConstructor:
|
|
1523
|
+
{
|
|
1524
|
+
JsonArrayQueryConstructor *jaqc = (JsonArrayQueryConstructor *) node;
|
|
1525
|
+
|
|
1526
|
+
if (WALK(jaqc->output))
|
|
1527
|
+
return true;
|
|
1528
|
+
if (WALK(jaqc->query))
|
|
1529
|
+
return true;
|
|
1530
|
+
}
|
|
1531
|
+
break;
|
|
1381
1532
|
default:
|
|
1382
1533
|
elog(ERROR, "unrecognized node type: %d",
|
|
1383
1534
|
(int) nodeTag(node));
|
|
@@ -1392,7 +1543,7 @@ raw_expression_tree_walker(Node *node,
|
|
|
1392
1543
|
* The walker has already visited the current node, and so we need only
|
|
1393
1544
|
* recurse into any sub-nodes it has.
|
|
1394
1545
|
*/
|
|
1395
|
-
|
|
1546
|
+
#define PSWALK(n) walker(n, context)
|
|
1396
1547
|
|
|
1397
1548
|
/*
|
|
1398
1549
|
* Walk a list of SubPlans (or initPlans, which also use SubPlan nodes).
|