pg_query 5.1.0 → 6.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 +30 -0
- data/README.md +1 -1
- data/Rakefile +4 -4
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +20 -6
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
- data/ext/pg_query/include/postgres/access/amapi.h +14 -3
- data/ext/pg_query/include/postgres/access/attmap.h +1 -1
- data/ext/pg_query/include/postgres/access/attnum.h +1 -1
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +2 -3
- data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
- data/ext/pg_query/include/postgres/access/detoast.h +1 -1
- data/ext/pg_query/include/postgres/access/genam.h +17 -4
- data/ext/pg_query/include/postgres/access/gin.h +1 -1
- data/ext/pg_query/include/postgres/access/htup.h +1 -1
- data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
- data/ext/pg_query/include/postgres/access/itup.h +3 -3
- data/ext/pg_query/include/postgres/access/parallel.h +1 -2
- data/ext/pg_query/include/postgres/access/printtup.h +1 -1
- data/ext/pg_query/include/postgres/access/relation.h +1 -1
- data/ext/pg_query/include/postgres/access/relscan.h +1 -1
- data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
- data/ext/pg_query/include/postgres/access/sdir.h +1 -1
- data/ext/pg_query/include/postgres/access/skey.h +1 -1
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
- data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
- data/ext/pg_query/include/postgres/access/table.h +1 -1
- data/ext/pg_query/include/postgres/access/tableam.h +35 -25
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
- data/ext/pg_query/include/postgres/access/transam.h +50 -7
- data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
- data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
- data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
- data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
- data/ext/pg_query/include/postgres/access/twophase.h +2 -2
- data/ext/pg_query/include/postgres/access/xact.h +5 -5
- data/ext/pg_query/include/postgres/access/xlog.h +20 -12
- data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
- data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
- data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
- data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
- data/ext/pg_query/include/postgres/c.h +32 -37
- data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
- data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
- data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
- data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
- data/ext/pg_query/include/postgres/catalog/index.h +22 -18
- data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
- data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +2 -6
- data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
- data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
- data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
- data/ext/pg_query/include/postgres/commands/explain.h +19 -3
- data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
- data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
- data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
- data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
- data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
- data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +79 -4
- data/ext/pg_query/include/postgres/common/keywords.h +1 -1
- data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
- data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
- data/ext/pg_query/include/postgres/common/relpath.h +4 -4
- data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
- data/ext/pg_query/include/postgres/common/sha2.h +1 -1
- data/ext/pg_query/include/postgres/common/string.h +1 -1
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
- data/ext/pg_query/include/postgres/executor/executor.h +6 -5
- data/ext/pg_query/include/postgres/executor/functions.h +2 -1
- data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
- data/ext/pg_query/include/postgres/executor/spi.h +2 -8
- data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
- data/ext/pg_query/include/postgres/fmgr.h +2 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
- data/ext/pg_query/include/postgres/funcapi.h +2 -2
- data/ext/pg_query/include/postgres/gram.h +871 -830
- data/ext/pg_query/include/postgres/gramparse.h +1 -1
- data/ext/pg_query/include/postgres/jit/jit.h +4 -3
- data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
- data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
- data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
- data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
- data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
- data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
- data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
- data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
- data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
- data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
- data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
- data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +72 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
- data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
- data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
- data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
- data/ext/pg_query/include/postgres/nodes/params.h +1 -1
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
- data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
- data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
- data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
- data/ext/pg_query/include/postgres/nodes/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
- data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
- data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
- data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
- data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
- data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
- data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
- data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
- data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
- data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
- data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
- data/ext/pg_query/include/postgres/parser/parser.h +3 -3
- data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
- data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
- data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/postgres/pg_config.h +53 -45
- data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
- data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
- data/ext/pg_query/include/postgres/pg_trace.h +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +13 -11
- data/ext/pg_query/include/postgres/pgtime.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
- data/ext/pg_query/include/postgres/plpgsql.h +15 -13
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
- data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
- data/ext/pg_query/include/postgres/port/atomics.h +93 -6
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
- data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +48 -1
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
- data/ext/pg_query/include/postgres/port.h +39 -4
- data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres/postgres.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
- data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
- data/ext/pg_query/include/postgres/regex/regex.h +92 -9
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
- data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
- data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
- data/ext/pg_query/include/postgres/replication/origin.h +1 -1
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
- data/ext/pg_query/include/postgres/replication/slot.h +45 -5
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
- data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
- data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/postgres/storage/block.h +1 -1
- data/ext/pg_query/include/postgres/storage/buf.h +1 -1
- data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
- data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
- data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
- data/ext/pg_query/include/postgres/storage/fd.h +30 -13
- data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
- data/ext/pg_query/include/postgres/storage/item.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
- data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
- data/ext/pg_query/include/postgres/storage/latch.h +4 -2
- data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
- data/ext/pg_query/include/postgres/storage/lock.h +19 -19
- data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
- data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
- data/ext/pg_query/include/postgres/storage/off.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
- data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
- data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
- data/ext/pg_query/include/postgres/storage/proc.h +48 -26
- data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
- data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
- data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
- data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
- data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
- data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
- data/ext/pg_query/include/postgres/storage/spin.h +1 -1
- data/ext/pg_query/include/postgres/storage/standby.h +13 -3
- data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/postgres/storage/sync.h +4 -4
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
- data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
- data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
- data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
- data/ext/pg_query/include/postgres/utils/acl.h +19 -7
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/postgres/utils/array.h +1 -2
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
- data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
- data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
- data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
- data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
- data/ext/pg_query/include/postgres/utils/date.h +1 -1
- data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
- data/ext/pg_query/include/postgres/utils/datum.h +1 -1
- data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
- data/ext/pg_query/include/postgres/utils/elog.h +3 -8
- data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/postgres/utils/float.h +1 -1
- data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/postgres/utils/guc.h +20 -6
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
- data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
- data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +1 -1
- data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
- data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
- data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
- data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
- data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
- data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
- data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
- data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +10 -10
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
- data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
- data/ext/pg_query/include/postgres/utils/rel.h +14 -15
- data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
- data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
- data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
- data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
- data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
- data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
- data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
- data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
- data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
- data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
- data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
- data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
- data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +4 -4
- data/ext/pg_query/include/postgres/varatt.h +1 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +601 -172
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- 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 +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- 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 +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +92 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- 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 +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +173 -28
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +15 -18
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/fingerprint.rb +3 -5
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +5 -7
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +27 -25
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +38 -15
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +31 -82
- data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
- data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -9,7 +9,7 @@
|
|
9
9
|
* empty set by a NULL pointer.
|
10
10
|
*
|
11
11
|
*
|
12
|
-
* Copyright (c) 2003-
|
12
|
+
* Copyright (c) 2003-2024, PostgreSQL Global Development Group
|
13
13
|
*
|
14
14
|
* src/include/nodes/bitmapset.h
|
15
15
|
*
|
@@ -62,7 +62,7 @@ typedef enum
|
|
62
62
|
BMS_EQUAL, /* sets are equal */
|
63
63
|
BMS_SUBSET1, /* first set is a subset of the second */
|
64
64
|
BMS_SUBSET2, /* second set is a subset of the first */
|
65
|
-
BMS_DIFFERENT /* neither set is a subset of the other */
|
65
|
+
BMS_DIFFERENT, /* neither set is a subset of the other */
|
66
66
|
} BMS_Comparison;
|
67
67
|
|
68
68
|
/* result of bms_membership */
|
@@ -70,9 +70,22 @@ typedef enum
|
|
70
70
|
{
|
71
71
|
BMS_EMPTY_SET, /* 0 members */
|
72
72
|
BMS_SINGLETON, /* 1 member */
|
73
|
-
BMS_MULTIPLE /* >1 member */
|
73
|
+
BMS_MULTIPLE, /* >1 member */
|
74
74
|
} BMS_Membership;
|
75
75
|
|
76
|
+
/* Select appropriate bit-twiddling functions for bitmap word size */
|
77
|
+
#if BITS_PER_BITMAPWORD == 32
|
78
|
+
#define bmw_leftmost_one_pos(w) pg_leftmost_one_pos32(w)
|
79
|
+
#define bmw_rightmost_one_pos(w) pg_rightmost_one_pos32(w)
|
80
|
+
#define bmw_popcount(w) pg_popcount32(w)
|
81
|
+
#elif BITS_PER_BITMAPWORD == 64
|
82
|
+
#define bmw_leftmost_one_pos(w) pg_leftmost_one_pos64(w)
|
83
|
+
#define bmw_rightmost_one_pos(w) pg_rightmost_one_pos64(w)
|
84
|
+
#define bmw_popcount(w) pg_popcount64(w)
|
85
|
+
#else
|
86
|
+
#error "invalid BITS_PER_BITMAPWORD"
|
87
|
+
#endif
|
88
|
+
|
76
89
|
|
77
90
|
/*
|
78
91
|
* function prototypes in nodes/bitmapset.c
|
@@ -109,6 +122,7 @@ extern BMS_Membership bms_membership(const Bitmapset *a);
|
|
109
122
|
extern Bitmapset *bms_add_member(Bitmapset *a, int x);
|
110
123
|
extern Bitmapset *bms_del_member(Bitmapset *a, int x);
|
111
124
|
extern Bitmapset *bms_add_members(Bitmapset *a, const Bitmapset *b);
|
125
|
+
extern Bitmapset *bms_replace_members(Bitmapset *a, const Bitmapset *b);
|
112
126
|
extern Bitmapset *bms_add_range(Bitmapset *a, int lower, int upper);
|
113
127
|
extern Bitmapset *bms_int_members(Bitmapset *a, const Bitmapset *b);
|
114
128
|
extern Bitmapset *bms_del_members(Bitmapset *a, const Bitmapset *b);
|
@@ -19,7 +19,7 @@
|
|
19
19
|
* not provided.
|
20
20
|
*
|
21
21
|
*
|
22
|
-
* Portions Copyright (c) 1996-
|
22
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
23
23
|
* Portions Copyright (c) 1994, Regents of the University of California
|
24
24
|
*
|
25
25
|
* src/include/nodes/execnodes.h
|
@@ -34,6 +34,7 @@
|
|
34
34
|
#include "fmgr.h"
|
35
35
|
#include "lib/ilist.h"
|
36
36
|
#include "lib/pairingheap.h"
|
37
|
+
#include "nodes/miscnodes.h"
|
37
38
|
#include "nodes/params.h"
|
38
39
|
#include "nodes/plannodes.h"
|
39
40
|
#include "nodes/tidbitmap.h"
|
@@ -129,6 +130,14 @@ typedef struct ExprState
|
|
129
130
|
|
130
131
|
Datum *innermost_domainval;
|
131
132
|
bool *innermost_domainnull;
|
133
|
+
|
134
|
+
/*
|
135
|
+
* For expression nodes that support soft errors. Should be set to NULL if
|
136
|
+
* the caller wants errors to be thrown. Callers that do not want errors
|
137
|
+
* thrown should set it to a valid ErrorSaveContext before calling
|
138
|
+
* ExecInitExprRec().
|
139
|
+
*/
|
140
|
+
ErrorSaveContext *escontext;
|
132
141
|
} ExprState;
|
133
142
|
|
134
143
|
|
@@ -187,7 +196,6 @@ typedef struct IndexInfo
|
|
187
196
|
Oid *ii_UniqueOps; /* array with one entry per column */
|
188
197
|
Oid *ii_UniqueProcs; /* array with one entry per column */
|
189
198
|
uint16 *ii_UniqueStrats; /* array with one entry per column */
|
190
|
-
Datum *ii_OpclassOptions; /* array with one entry per column */
|
191
199
|
bool ii_Unique;
|
192
200
|
bool ii_NullsNotDistinct;
|
193
201
|
bool ii_ReadyForInserts;
|
@@ -296,7 +304,7 @@ typedef enum
|
|
296
304
|
{
|
297
305
|
ExprSingleResult, /* expression does not return a set */
|
298
306
|
ExprMultipleResult, /* this result is an element of a set */
|
299
|
-
ExprEndResult /* there are no more elements in the set */
|
307
|
+
ExprEndResult, /* there are no more elements in the set */
|
300
308
|
} ExprDoneCond;
|
301
309
|
|
302
310
|
/*
|
@@ -310,7 +318,7 @@ typedef enum
|
|
310
318
|
SFRM_ValuePerCall = 0x01, /* one value returned per call */
|
311
319
|
SFRM_Materialize = 0x02, /* result set instantiated in Tuplestore */
|
312
320
|
SFRM_Materialize_Random = 0x04, /* Tuplestore needs randomAccess */
|
313
|
-
SFRM_Materialize_Preferred = 0x08 /* caller prefers Tuplestore */
|
321
|
+
SFRM_Materialize_Preferred = 0x08, /* caller prefers Tuplestore */
|
314
322
|
} SetFunctionReturnMode;
|
315
323
|
|
316
324
|
/*
|
@@ -476,6 +484,9 @@ typedef struct ResultRelInfo
|
|
476
484
|
/* Have the projection and the slots above been initialized? */
|
477
485
|
bool ri_projectNewInfoValid;
|
478
486
|
|
487
|
+
/* updates do LockTuple() before oldtup read; see README.tuplock */
|
488
|
+
bool ri_needLockTagTuple;
|
489
|
+
|
479
490
|
/* triggers to be fired, if any */
|
480
491
|
TriggerDesc *ri_TrigDesc;
|
481
492
|
|
@@ -538,9 +549,11 @@ typedef struct ResultRelInfo
|
|
538
549
|
/* ON CONFLICT evaluation state */
|
539
550
|
OnConflictSetState *ri_onConflict;
|
540
551
|
|
541
|
-
/* for MERGE, lists of MergeActionState */
|
542
|
-
List *
|
543
|
-
|
552
|
+
/* for MERGE, lists of MergeActionState (one per MergeMatchKind) */
|
553
|
+
List *ri_MergeActions[NUM_MERGE_MATCH_KINDS];
|
554
|
+
|
555
|
+
/* for MERGE, expr state for checking the join condition */
|
556
|
+
ExprState *ri_MergeJoinCondition;
|
544
557
|
|
545
558
|
/* partition check expression state (NULL if not set up yet) */
|
546
559
|
ExprState *ri_PartitionCheckExpr;
|
@@ -990,7 +1003,7 @@ typedef struct SubPlanState
|
|
990
1003
|
typedef enum DomainConstraintType
|
991
1004
|
{
|
992
1005
|
DOM_CONSTRAINT_NOTNULL,
|
993
|
-
DOM_CONSTRAINT_CHECK
|
1006
|
+
DOM_CONSTRAINT_CHECK,
|
994
1007
|
} DomainConstraintType;
|
995
1008
|
|
996
1009
|
typedef struct DomainConstraintState
|
@@ -1002,6 +1015,77 @@ typedef struct DomainConstraintState
|
|
1002
1015
|
ExprState *check_exprstate; /* check_expr's eval state, or NULL */
|
1003
1016
|
} DomainConstraintState;
|
1004
1017
|
|
1018
|
+
/*
|
1019
|
+
* State for JsonExpr evaluation, too big to inline.
|
1020
|
+
*
|
1021
|
+
* This contains the information going into and coming out of the
|
1022
|
+
* EEOP_JSONEXPR_PATH eval step.
|
1023
|
+
*/
|
1024
|
+
typedef struct JsonExprState
|
1025
|
+
{
|
1026
|
+
/* original expression node */
|
1027
|
+
JsonExpr *jsexpr;
|
1028
|
+
|
1029
|
+
/* value/isnull for formatted_expr */
|
1030
|
+
NullableDatum formatted_expr;
|
1031
|
+
|
1032
|
+
/* value/isnull for pathspec */
|
1033
|
+
NullableDatum pathspec;
|
1034
|
+
|
1035
|
+
/* JsonPathVariable entries for passing_values */
|
1036
|
+
List *args;
|
1037
|
+
|
1038
|
+
/*
|
1039
|
+
* Output variables that drive the EEOP_JUMP_IF_NOT_TRUE steps that are
|
1040
|
+
* added for ON ERROR and ON EMPTY expressions, if any.
|
1041
|
+
*
|
1042
|
+
* Reset for each evaluation of EEOP_JSONEXPR_PATH.
|
1043
|
+
*/
|
1044
|
+
|
1045
|
+
/* Set to true if jsonpath evaluation cause an error. */
|
1046
|
+
NullableDatum error;
|
1047
|
+
|
1048
|
+
/* Set to true if the jsonpath evaluation returned 0 items. */
|
1049
|
+
NullableDatum empty;
|
1050
|
+
|
1051
|
+
/*
|
1052
|
+
* Addresses of steps that implement the non-ERROR variant of ON EMPTY and
|
1053
|
+
* ON ERROR behaviors, respectively.
|
1054
|
+
*/
|
1055
|
+
int jump_empty;
|
1056
|
+
int jump_error;
|
1057
|
+
|
1058
|
+
/*
|
1059
|
+
* Address of the step to coerce the result value of jsonpath evaluation
|
1060
|
+
* to the RETURNING type. -1 if no coercion if JsonExpr.use_io_coercion
|
1061
|
+
* is true.
|
1062
|
+
*/
|
1063
|
+
int jump_eval_coercion;
|
1064
|
+
|
1065
|
+
/*
|
1066
|
+
* Address to jump to when skipping all the steps after performing
|
1067
|
+
* ExecEvalJsonExprPath() so as to return whatever the JsonPath* function
|
1068
|
+
* returned as is, that is, in the cases where there's no error and no
|
1069
|
+
* coercion is necessary.
|
1070
|
+
*/
|
1071
|
+
int jump_end;
|
1072
|
+
|
1073
|
+
/*
|
1074
|
+
* RETURNING type input function invocation info when
|
1075
|
+
* JsonExpr.use_io_coercion is true.
|
1076
|
+
*/
|
1077
|
+
FunctionCallInfo input_fcinfo;
|
1078
|
+
|
1079
|
+
/*
|
1080
|
+
* For error-safe evaluation of coercions. When the ON ERROR behavior is
|
1081
|
+
* not ERROR, a pointer to this is passed to ExecInitExprRec() when
|
1082
|
+
* initializing the coercion expressions or to ExecInitJsonCoercion().
|
1083
|
+
*
|
1084
|
+
* Reset for each evaluation of EEOP_JSONEXPR_PATH.
|
1085
|
+
*/
|
1086
|
+
ErrorSaveContext escontext;
|
1087
|
+
} JsonExprState;
|
1088
|
+
|
1005
1089
|
|
1006
1090
|
/* ----------------------------------------------------------------
|
1007
1091
|
* Executor State Trees
|
@@ -1319,6 +1403,16 @@ typedef struct ModifyTableState
|
|
1319
1403
|
/* Flags showing which subcommands are present INS/UPD/DEL/DO NOTHING */
|
1320
1404
|
int mt_merge_subcommands;
|
1321
1405
|
|
1406
|
+
/* For MERGE, the action currently being executed */
|
1407
|
+
MergeActionState *mt_merge_action;
|
1408
|
+
|
1409
|
+
/*
|
1410
|
+
* For MERGE, if there is a pending NOT MATCHED [BY TARGET] action to be
|
1411
|
+
* performed, this will be the last tuple read from the subplan; otherwise
|
1412
|
+
* it will be NULL --- see the comments in ExecMerge().
|
1413
|
+
*/
|
1414
|
+
TupleTableSlot *mt_merge_pending_not_matched;
|
1415
|
+
|
1322
1416
|
/* tuple counters for MERGE */
|
1323
1417
|
double mt_merge_inserted;
|
1324
1418
|
double mt_merge_updated;
|
@@ -1600,6 +1694,8 @@ typedef struct IndexScanState
|
|
1600
1694
|
* TableSlot slot for holding tuples fetched from the table
|
1601
1695
|
* VMBuffer buffer in use for visibility map testing, if any
|
1602
1696
|
* PscanLen size of parallel index-only scan descriptor
|
1697
|
+
* NameCStringAttNums attnums of name typed columns to pad to NAMEDATALEN
|
1698
|
+
* NameCStringCount number of elements in the NameCStringAttNums array
|
1603
1699
|
* ----------------
|
1604
1700
|
*/
|
1605
1701
|
typedef struct IndexOnlyScanState
|
@@ -1619,6 +1715,8 @@ typedef struct IndexOnlyScanState
|
|
1619
1715
|
TupleTableSlot *ioss_TableSlot;
|
1620
1716
|
Buffer ioss_VMBuffer;
|
1621
1717
|
Size ioss_PscanLen;
|
1718
|
+
AttrNumber *ioss_NameCStringAttNums;
|
1719
|
+
int ioss_NameCStringCount;
|
1622
1720
|
} IndexOnlyScanState;
|
1623
1721
|
|
1624
1722
|
/* ----------------
|
@@ -1670,7 +1768,7 @@ typedef enum
|
|
1670
1768
|
{
|
1671
1769
|
BM_INITIAL,
|
1672
1770
|
BM_INPROGRESS,
|
1673
|
-
BM_FINISHED
|
1771
|
+
BM_FINISHED,
|
1674
1772
|
} SharedBitmapState;
|
1675
1773
|
|
1676
1774
|
/* ----------------
|
@@ -1683,7 +1781,6 @@ typedef enum
|
|
1683
1781
|
* prefetch_target current target prefetch distance
|
1684
1782
|
* state current state of the TIDBitmap
|
1685
1783
|
* cv conditional wait variable
|
1686
|
-
* phs_snapshot_data snapshot data shared to workers
|
1687
1784
|
* ----------------
|
1688
1785
|
*/
|
1689
1786
|
typedef struct ParallelBitmapHeapState
|
@@ -1695,7 +1792,6 @@ typedef struct ParallelBitmapHeapState
|
|
1695
1792
|
int prefetch_target;
|
1696
1793
|
SharedBitmapState state;
|
1697
1794
|
ConditionVariable cv;
|
1698
|
-
char phs_snapshot_data[FLEXIBLE_ARRAY_MEMBER];
|
1699
1795
|
} ParallelBitmapHeapState;
|
1700
1796
|
|
1701
1797
|
/* ----------------
|
@@ -1705,17 +1801,13 @@ typedef struct ParallelBitmapHeapState
|
|
1705
1801
|
* tbm bitmap obtained from child index scan(s)
|
1706
1802
|
* tbmiterator iterator for scanning current pages
|
1707
1803
|
* tbmres current-page data
|
1708
|
-
*
|
1709
|
-
* return_empty_tuples number of empty tuples to return
|
1710
|
-
* vmbuffer buffer for visibility-map lookups
|
1711
|
-
* pvmbuffer ditto, for prefetched pages
|
1804
|
+
* pvmbuffer buffer for visibility-map lookups of prefetched pages
|
1712
1805
|
* exact_pages total number of exact pages retrieved
|
1713
1806
|
* lossy_pages total number of lossy pages retrieved
|
1714
1807
|
* prefetch_iterator iterator for prefetching ahead of current page
|
1715
1808
|
* prefetch_pages # pages prefetch iterator is ahead of current
|
1716
1809
|
* prefetch_target current target prefetch distance
|
1717
1810
|
* prefetch_maximum maximum value for prefetch_target
|
1718
|
-
* pscan_len size of the shared memory for parallel bitmap
|
1719
1811
|
* initialized is node is ready to iterate
|
1720
1812
|
* shared_tbmiterator shared iterator
|
1721
1813
|
* shared_prefetch_iterator shared iterator for prefetching
|
@@ -1729,9 +1821,6 @@ typedef struct BitmapHeapScanState
|
|
1729
1821
|
TIDBitmap *tbm;
|
1730
1822
|
TBMIterator *tbmiterator;
|
1731
1823
|
TBMIterateResult *tbmres;
|
1732
|
-
bool can_skip_fetch;
|
1733
|
-
int return_empty_tuples;
|
1734
|
-
Buffer vmbuffer;
|
1735
1824
|
Buffer pvmbuffer;
|
1736
1825
|
long exact_pages;
|
1737
1826
|
long lossy_pages;
|
@@ -1739,7 +1828,6 @@ typedef struct BitmapHeapScanState
|
|
1739
1828
|
int prefetch_pages;
|
1740
1829
|
int prefetch_target;
|
1741
1830
|
int prefetch_maximum;
|
1742
|
-
Size pscan_len;
|
1743
1831
|
bool initialized;
|
1744
1832
|
TBMSharedIterator *shared_tbmiterator;
|
1745
1833
|
TBMSharedIterator *shared_prefetch_iterator;
|
@@ -1754,7 +1842,6 @@ typedef struct BitmapHeapScanState
|
|
1754
1842
|
* NumTids number of tids in this scan
|
1755
1843
|
* TidPtr index of currently fetched tid
|
1756
1844
|
* TidList evaluated item pointers (array of size NumTids)
|
1757
|
-
* htup currently-fetched tuple, if any
|
1758
1845
|
* ----------------
|
1759
1846
|
*/
|
1760
1847
|
typedef struct TidScanState
|
@@ -1765,7 +1852,6 @@ typedef struct TidScanState
|
|
1765
1852
|
int tss_NumTids;
|
1766
1853
|
int tss_TidPtr;
|
1767
1854
|
ItemPointerData *tss_TidList;
|
1768
|
-
HeapTupleData tss_htup;
|
1769
1855
|
} TidScanState;
|
1770
1856
|
|
1771
1857
|
/* ----------------
|
@@ -1876,6 +1962,8 @@ typedef struct TableFuncScanState
|
|
1876
1962
|
ExprState *rowexpr; /* state for row-generating expression */
|
1877
1963
|
List *colexprs; /* state for column-generating expression */
|
1878
1964
|
List *coldefexprs; /* state for column default expressions */
|
1965
|
+
List *colvalexprs; /* state for column value expressions */
|
1966
|
+
List *passingvalexprs; /* state for PASSING argument expressions */
|
1879
1967
|
List *ns_names; /* same as TableFunc.ns_names */
|
1880
1968
|
List *ns_uris; /* list of states of namespace URI exprs */
|
1881
1969
|
Bitmapset *notnulls; /* nullability flag for each output column */
|
@@ -2447,7 +2535,6 @@ typedef struct AggState
|
|
2447
2535
|
#define FIELDNO_AGGSTATE_ALL_PERGROUPS 53
|
2448
2536
|
AggStatePerGroup *all_pergroups; /* array of first ->pergroups, than
|
2449
2537
|
* ->hash_pergroup */
|
2450
|
-
ProjectionInfo *combinedproj; /* projection machinery */
|
2451
2538
|
SharedAggInfo *shared_info; /* one entry per worker */
|
2452
2539
|
} AggState;
|
2453
2540
|
|
@@ -2467,7 +2554,7 @@ typedef enum WindowAggStatus
|
|
2467
2554
|
WINDOWAGG_DONE, /* No more processing to do */
|
2468
2555
|
WINDOWAGG_RUN, /* Normal processing of window funcs */
|
2469
2556
|
WINDOWAGG_PASSTHROUGH, /* Don't eval window funcs */
|
2470
|
-
WINDOWAGG_PASSTHROUGH_STRICT /* Pass-through plus don't store new
|
2557
|
+
WINDOWAGG_PASSTHROUGH_STRICT, /* Pass-through plus don't store new
|
2471
2558
|
* tuples during spool */
|
2472
2559
|
} WindowAggStatus;
|
2473
2560
|
|
@@ -2745,7 +2832,7 @@ typedef enum
|
|
2745
2832
|
LIMIT_WINDOWEND_TIES, /* have returned a tied row */
|
2746
2833
|
LIMIT_SUBPLANEOF, /* at EOF of subplan (within window) */
|
2747
2834
|
LIMIT_WINDOWEND, /* stepped off end of window */
|
2748
|
-
LIMIT_WINDOWSTART /* stepped off beginning of window */
|
2835
|
+
LIMIT_WINDOWSTART, /* stepped off beginning of window */
|
2749
2836
|
} LimitStateCond;
|
2750
2837
|
|
2751
2838
|
typedef struct LimitState
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Definitions for extensible nodes and custom scans
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/extensible.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Common header for some locking-related declarations.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Copyright (c) 2014-
|
7
|
+
* Copyright (c) 2014-2024, PostgreSQL Global Development Group
|
8
8
|
*
|
9
9
|
* src/include/nodes/lockoptions.h
|
10
10
|
*
|
@@ -24,7 +24,7 @@ typedef enum LockClauseStrength
|
|
24
24
|
LCS_FORKEYSHARE, /* FOR KEY SHARE */
|
25
25
|
LCS_FORSHARE, /* FOR SHARE */
|
26
26
|
LCS_FORNOKEYUPDATE, /* FOR NO KEY UPDATE */
|
27
|
-
LCS_FORUPDATE /* FOR UPDATE */
|
27
|
+
LCS_FORUPDATE, /* FOR UPDATE */
|
28
28
|
} LockClauseStrength;
|
29
29
|
|
30
30
|
/*
|
@@ -40,7 +40,7 @@ typedef enum LockWaitPolicy
|
|
40
40
|
/* Skip rows that can't be locked (SKIP LOCKED) */
|
41
41
|
LockWaitSkip,
|
42
42
|
/* Raise an error if a row cannot be locked (NOWAIT) */
|
43
|
-
LockWaitError
|
43
|
+
LockWaitError,
|
44
44
|
} LockWaitPolicy;
|
45
45
|
|
46
46
|
/*
|
@@ -55,7 +55,7 @@ typedef enum LockTupleMode
|
|
55
55
|
/* SELECT FOR NO KEY UPDATE, and UPDATEs that don't modify key columns */
|
56
56
|
LockTupleNoKeyExclusive,
|
57
57
|
/* SELECT FOR UPDATE, UPDATEs that modify key columns, and DELETE */
|
58
|
-
LockTupleExclusive
|
58
|
+
LockTupleExclusive,
|
59
59
|
} LockTupleMode;
|
60
60
|
|
61
61
|
#endif /* LOCKOPTIONS_H */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for the creator functions of various nodes
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/makefuncs.h
|
@@ -100,6 +100,7 @@ extern IndexInfo *makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid,
|
|
100
100
|
bool isready, bool concurrent,
|
101
101
|
bool summarizing);
|
102
102
|
|
103
|
+
extern Node *makeStringConst(char *str, int location);
|
103
104
|
extern DefElem *makeDefElem(char *name, Node *arg, int location);
|
104
105
|
extern DefElem *makeDefElemExtended(char *nameSpace, char *name, Node *arg,
|
105
106
|
DefElemAction defaction, int location);
|
@@ -116,6 +117,11 @@ extern Node *makeJsonKeyValue(Node *key, Node *value);
|
|
116
117
|
extern Node *makeJsonIsPredicate(Node *expr, JsonFormat *format,
|
117
118
|
JsonValueType item_type, bool unique_keys,
|
118
119
|
int location);
|
119
|
-
extern
|
120
|
+
extern JsonBehavior *makeJsonBehavior(JsonBehaviorType btype, Node *expr,
|
121
|
+
int location);
|
122
|
+
extern JsonTablePath *makeJsonTablePath(Const *pathvalue, char *pathname);
|
123
|
+
extern JsonTablePathSpec *makeJsonTablePathSpec(char *string, char *name,
|
124
|
+
int string_location,
|
125
|
+
int name_location);
|
120
126
|
|
121
127
|
#endif /* MAKEFUNC_H */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* POSTGRES memory context node definitions.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/memnodes.h
|
@@ -57,20 +57,58 @@ typedef void (*MemoryStatsPrintFunc) (MemoryContext context, void *passthru,
|
|
57
57
|
|
58
58
|
typedef struct MemoryContextMethods
|
59
59
|
{
|
60
|
-
|
60
|
+
/*
|
61
|
+
* Function to handle memory allocation requests of 'size' to allocate
|
62
|
+
* memory into the given 'context'. The function must handle flags
|
63
|
+
* MCXT_ALLOC_HUGE and MCXT_ALLOC_NO_OOM. MCXT_ALLOC_ZERO is handled by
|
64
|
+
* the calling function.
|
65
|
+
*/
|
66
|
+
void *(*alloc) (MemoryContext context, Size size, int flags);
|
67
|
+
|
61
68
|
/* call this free_p in case someone #define's free() */
|
62
69
|
void (*free_p) (void *pointer);
|
63
|
-
|
70
|
+
|
71
|
+
/*
|
72
|
+
* Function to handle a size change request for an existing allocation.
|
73
|
+
* The implementation must handle flags MCXT_ALLOC_HUGE and
|
74
|
+
* MCXT_ALLOC_NO_OOM. MCXT_ALLOC_ZERO is handled by the calling function.
|
75
|
+
*/
|
76
|
+
void *(*realloc) (void *pointer, Size size, int flags);
|
77
|
+
|
78
|
+
/*
|
79
|
+
* Invalidate all previous allocations in the given memory context and
|
80
|
+
* prepare the context for a new set of allocations. Implementations may
|
81
|
+
* optionally free() excess memory back to the OS during this time.
|
82
|
+
*/
|
64
83
|
void (*reset) (MemoryContext context);
|
84
|
+
|
85
|
+
/* Free all memory consumed by the given MemoryContext. */
|
65
86
|
void (*delete_context) (MemoryContext context);
|
87
|
+
|
88
|
+
/* Return the MemoryContext that the given pointer belongs to. */
|
66
89
|
MemoryContext (*get_chunk_context) (void *pointer);
|
90
|
+
|
91
|
+
/*
|
92
|
+
* Return the number of bytes consumed by the given pointer within its
|
93
|
+
* memory context, including the overhead of alignment and chunk headers.
|
94
|
+
*/
|
67
95
|
Size (*get_chunk_space) (void *pointer);
|
96
|
+
|
97
|
+
/*
|
98
|
+
* Return true if the given MemoryContext has not had any allocations
|
99
|
+
* since it was created or last reset.
|
100
|
+
*/
|
68
101
|
bool (*is_empty) (MemoryContext context);
|
69
102
|
void (*stats) (MemoryContext context,
|
70
103
|
MemoryStatsPrintFunc printfunc, void *passthru,
|
71
104
|
MemoryContextCounters *totals,
|
72
105
|
bool print_to_stderr);
|
73
106
|
#ifdef MEMORY_CONTEXT_CHECKING
|
107
|
+
|
108
|
+
/*
|
109
|
+
* Perform validation checks on the given context and raise any discovered
|
110
|
+
* anomalies as WARNINGs.
|
111
|
+
*/
|
74
112
|
void (*check) (MemoryContext context);
|
75
113
|
#endif
|
76
114
|
} MemoryContextMethods;
|
@@ -108,6 +146,7 @@ typedef struct MemoryContextData
|
|
108
146
|
((context) != NULL && \
|
109
147
|
(IsA((context), AllocSetContext) || \
|
110
148
|
IsA((context), SlabContext) || \
|
111
|
-
IsA((context), GenerationContext)
|
149
|
+
IsA((context), GenerationContext) || \
|
150
|
+
IsA((context), BumpContext)))
|
112
151
|
|
113
152
|
#endif /* MEMNODES_H */
|
@@ -10,7 +10,7 @@
|
|
10
10
|
* "context" pointers.
|
11
11
|
*
|
12
12
|
*
|
13
|
-
* Portions Copyright (c) 1996-
|
13
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
14
14
|
* Portions Copyright (c) 1994, Regents of the University of California
|
15
15
|
*
|
16
16
|
* src/include/nodes/miscnodes.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* nodeFuncs.h
|
4
4
|
* Various general-purpose manipulations of Node trees
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
8
8
|
*
|
9
9
|
* src/include/nodes/nodeFuncs.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Definitions for tagged nodes.
|
5
5
|
*
|
6
6
|
*
|
7
|
-
* Portions Copyright (c) 1996-
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
9
9
|
*
|
10
10
|
* src/include/nodes/nodes.h
|
@@ -139,39 +139,18 @@ typedef struct Node
|
|
139
139
|
*
|
140
140
|
* !WARNING!: Avoid using newNode directly. You should be using the
|
141
141
|
* macro makeNode. eg. to create a Query node, use makeNode(Query)
|
142
|
-
*
|
143
|
-
* Note: the size argument should always be a compile-time constant, so the
|
144
|
-
* apparent risk of multiple evaluation doesn't matter in practice.
|
145
|
-
*/
|
146
|
-
#ifdef __GNUC__
|
147
|
-
|
148
|
-
/* With GCC, we can use a compound statement within an expression */
|
149
|
-
#define newNode(size, tag) \
|
150
|
-
({ Node *_result; \
|
151
|
-
AssertMacro((size) >= sizeof(Node)); /* need the tag, at least */ \
|
152
|
-
_result = (Node *) palloc0fast(size); \
|
153
|
-
_result->type = (tag); \
|
154
|
-
_result; \
|
155
|
-
})
|
156
|
-
#else
|
157
|
-
|
158
|
-
/*
|
159
|
-
* There is no way to dereference the palloc'ed pointer to assign the
|
160
|
-
* tag, and also return the pointer itself, so we need a holder variable.
|
161
|
-
* Fortunately, this macro isn't recursive so we just define
|
162
|
-
* a global variable for this purpose.
|
163
142
|
*/
|
164
|
-
|
143
|
+
static inline Node *
|
144
|
+
newNode(size_t size, NodeTag tag)
|
145
|
+
{
|
146
|
+
Node *result;
|
165
147
|
|
166
|
-
|
167
|
-
(
|
168
|
-
|
169
|
-
newNodeMacroHolder = (Node *) palloc0fast(size), \
|
170
|
-
newNodeMacroHolder->type = (tag), \
|
171
|
-
newNodeMacroHolder \
|
172
|
-
)
|
173
|
-
#endif /* __GNUC__ */
|
148
|
+
Assert(size >= sizeof(Node)); /* need the tag, at least */
|
149
|
+
result = (Node *) palloc0(size);
|
150
|
+
result->type = tag;
|
174
151
|
|
152
|
+
return result;
|
153
|
+
}
|
175
154
|
|
176
155
|
#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_))
|
177
156
|
#define NodeSetTag(nodeptr,t) (((Node*)(nodeptr))->type = (t))
|
@@ -216,6 +195,7 @@ extern void outBitmapset(struct StringInfoData *str,
|
|
216
195
|
extern void outDatum(struct StringInfoData *str, uintptr_t value,
|
217
196
|
int typlen, bool typbyval);
|
218
197
|
extern char *nodeToString(const void *obj);
|
198
|
+
extern char *nodeToStringWithLocations(const void *obj);
|
219
199
|
extern char *bmsToString(const struct Bitmapset *bms);
|
220
200
|
|
221
201
|
/*
|
@@ -251,9 +231,18 @@ extern bool equal(const void *a, const void *b);
|
|
251
231
|
|
252
232
|
|
253
233
|
/*
|
254
|
-
*
|
255
|
-
*
|
256
|
-
*
|
234
|
+
* Typedef for parse location. This is just an int, but this way
|
235
|
+
* gen_node_support.pl knows which fields should get special treatment for
|
236
|
+
* location values.
|
237
|
+
*
|
238
|
+
* -1 is used for unknown.
|
239
|
+
*/
|
240
|
+
typedef int ParseLoc;
|
241
|
+
|
242
|
+
/*
|
243
|
+
* Typedefs for identifying qualifier selectivities, plan costs, and row
|
244
|
+
* counts as such. These are just plain "double"s, but declaring a variable
|
245
|
+
* as Selectivity, Cost, or Cardinality makes the intent more obvious.
|
257
246
|
*
|
258
247
|
* These could have gone into plannodes.h or some such, but many files
|
259
248
|
* depend on them...
|
@@ -280,7 +269,7 @@ typedef enum CmdType
|
|
280
269
|
CMD_MERGE, /* merge stmt */
|
281
270
|
CMD_UTILITY, /* cmds like create, destroy, copy, vacuum,
|
282
271
|
* etc. */
|
283
|
-
CMD_NOTHING
|
272
|
+
CMD_NOTHING, /* dummy command for instead nothing rules
|
284
273
|
* with qual */
|
285
274
|
} CmdType;
|
286
275
|
|
@@ -324,7 +313,7 @@ typedef enum JoinType
|
|
324
313
|
* by the executor (nor, indeed, by most of the planner).
|
325
314
|
*/
|
326
315
|
JOIN_UNIQUE_OUTER, /* LHS path must be made unique */
|
327
|
-
JOIN_UNIQUE_INNER /* RHS path must be made unique */
|
316
|
+
JOIN_UNIQUE_INNER, /* RHS path must be made unique */
|
328
317
|
|
329
318
|
/*
|
330
319
|
* We might need additional join types someday.
|
@@ -364,7 +353,7 @@ typedef enum AggStrategy
|
|
364
353
|
AGG_PLAIN, /* simple agg across all input rows */
|
365
354
|
AGG_SORTED, /* grouped agg, input must be sorted */
|
366
355
|
AGG_HASHED, /* grouped agg, use internal hashtable */
|
367
|
-
AGG_MIXED /* grouped agg, hash and sort both used */
|
356
|
+
AGG_MIXED, /* grouped agg, hash and sort both used */
|
368
357
|
} AggStrategy;
|
369
358
|
|
370
359
|
/*
|
@@ -388,7 +377,7 @@ typedef enum AggSplit
|
|
388
377
|
/* Initial phase of partial aggregation, with serialization: */
|
389
378
|
AGGSPLIT_INITIAL_SERIAL = AGGSPLITOP_SKIPFINAL | AGGSPLITOP_SERIALIZE,
|
390
379
|
/* Final phase of partial aggregation, with deserialization: */
|
391
|
-
AGGSPLIT_FINAL_DESERIAL = AGGSPLITOP_COMBINE | AGGSPLITOP_DESERIALIZE
|
380
|
+
AGGSPLIT_FINAL_DESERIAL = AGGSPLITOP_COMBINE | AGGSPLITOP_DESERIALIZE,
|
392
381
|
} AggSplit;
|
393
382
|
|
394
383
|
/* Test whether an AggSplit value selects each primitive option: */
|
@@ -408,13 +397,13 @@ typedef enum SetOpCmd
|
|
408
397
|
SETOPCMD_INTERSECT,
|
409
398
|
SETOPCMD_INTERSECT_ALL,
|
410
399
|
SETOPCMD_EXCEPT,
|
411
|
-
SETOPCMD_EXCEPT_ALL
|
400
|
+
SETOPCMD_EXCEPT_ALL,
|
412
401
|
} SetOpCmd;
|
413
402
|
|
414
403
|
typedef enum SetOpStrategy
|
415
404
|
{
|
416
405
|
SETOP_SORTED, /* input must be sorted */
|
417
|
-
SETOP_HASHED /* use internal hashtable */
|
406
|
+
SETOP_HASHED, /* use internal hashtable */
|
418
407
|
} SetOpStrategy;
|
419
408
|
|
420
409
|
/*
|
@@ -427,7 +416,7 @@ typedef enum OnConflictAction
|
|
427
416
|
{
|
428
417
|
ONCONFLICT_NONE, /* No "ON CONFLICT" clause */
|
429
418
|
ONCONFLICT_NOTHING, /* ON CONFLICT ... DO NOTHING */
|
430
|
-
ONCONFLICT_UPDATE /* ON CONFLICT ... DO UPDATE */
|
419
|
+
ONCONFLICT_UPDATE, /* ON CONFLICT ... DO UPDATE */
|
431
420
|
} OnConflictAction;
|
432
421
|
|
433
422
|
/*
|