pg_query 5.1.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/Rakefile +2 -2
- 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 +10 -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 +8 -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 +221 -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 +33 -24
- 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 +7 -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 +31 -36
- 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 +1 -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 +5 -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 +453 -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 +28 -2
- 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 +1 -1
- 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 +29 -25
- 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 +102 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +64 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -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 +60 -9
- 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 +344 -50
- 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 +2 -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 +34 -34
- 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 -11
- data/ext/pg_query/include/postgres/port.h +7 -3
- 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 +18 -28
- data/ext/pg_query/include/postgres/replication/slot.h +41 -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 +1 -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 -23
- 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 +41 -27
- 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 +5 -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 +11 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +9 -9
- 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 +2 -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_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- 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 +34490 -32135
- 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 +45 -108
- 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 +1 -1
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +38 -11
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +25 -11
- 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/src_backend_nodes_nodes.c +0 -38
@@ -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
|
/*
|
@@ -538,9 +546,11 @@ typedef struct ResultRelInfo
|
|
538
546
|
/* ON CONFLICT evaluation state */
|
539
547
|
OnConflictSetState *ri_onConflict;
|
540
548
|
|
541
|
-
/* for MERGE, lists of MergeActionState */
|
542
|
-
List *
|
543
|
-
|
549
|
+
/* for MERGE, lists of MergeActionState (one per MergeMatchKind) */
|
550
|
+
List *ri_MergeActions[NUM_MERGE_MATCH_KINDS];
|
551
|
+
|
552
|
+
/* for MERGE, expr state for checking the join condition */
|
553
|
+
ExprState *ri_MergeJoinCondition;
|
544
554
|
|
545
555
|
/* partition check expression state (NULL if not set up yet) */
|
546
556
|
ExprState *ri_PartitionCheckExpr;
|
@@ -990,7 +1000,7 @@ typedef struct SubPlanState
|
|
990
1000
|
typedef enum DomainConstraintType
|
991
1001
|
{
|
992
1002
|
DOM_CONSTRAINT_NOTNULL,
|
993
|
-
DOM_CONSTRAINT_CHECK
|
1003
|
+
DOM_CONSTRAINT_CHECK,
|
994
1004
|
} DomainConstraintType;
|
995
1005
|
|
996
1006
|
typedef struct DomainConstraintState
|
@@ -1002,6 +1012,77 @@ typedef struct DomainConstraintState
|
|
1002
1012
|
ExprState *check_exprstate; /* check_expr's eval state, or NULL */
|
1003
1013
|
} DomainConstraintState;
|
1004
1014
|
|
1015
|
+
/*
|
1016
|
+
* State for JsonExpr evaluation, too big to inline.
|
1017
|
+
*
|
1018
|
+
* This contains the information going into and coming out of the
|
1019
|
+
* EEOP_JSONEXPR_PATH eval step.
|
1020
|
+
*/
|
1021
|
+
typedef struct JsonExprState
|
1022
|
+
{
|
1023
|
+
/* original expression node */
|
1024
|
+
JsonExpr *jsexpr;
|
1025
|
+
|
1026
|
+
/* value/isnull for formatted_expr */
|
1027
|
+
NullableDatum formatted_expr;
|
1028
|
+
|
1029
|
+
/* value/isnull for pathspec */
|
1030
|
+
NullableDatum pathspec;
|
1031
|
+
|
1032
|
+
/* JsonPathVariable entries for passing_values */
|
1033
|
+
List *args;
|
1034
|
+
|
1035
|
+
/*
|
1036
|
+
* Output variables that drive the EEOP_JUMP_IF_NOT_TRUE steps that are
|
1037
|
+
* added for ON ERROR and ON EMPTY expressions, if any.
|
1038
|
+
*
|
1039
|
+
* Reset for each evaluation of EEOP_JSONEXPR_PATH.
|
1040
|
+
*/
|
1041
|
+
|
1042
|
+
/* Set to true if jsonpath evaluation cause an error. */
|
1043
|
+
NullableDatum error;
|
1044
|
+
|
1045
|
+
/* Set to true if the jsonpath evaluation returned 0 items. */
|
1046
|
+
NullableDatum empty;
|
1047
|
+
|
1048
|
+
/*
|
1049
|
+
* Addresses of steps that implement the non-ERROR variant of ON EMPTY and
|
1050
|
+
* ON ERROR behaviors, respectively.
|
1051
|
+
*/
|
1052
|
+
int jump_empty;
|
1053
|
+
int jump_error;
|
1054
|
+
|
1055
|
+
/*
|
1056
|
+
* Address of the step to coerce the result value of jsonpath evaluation
|
1057
|
+
* to the RETURNING type. -1 if no coercion if JsonExpr.use_io_coercion
|
1058
|
+
* is true.
|
1059
|
+
*/
|
1060
|
+
int jump_eval_coercion;
|
1061
|
+
|
1062
|
+
/*
|
1063
|
+
* Address to jump to when skipping all the steps after performing
|
1064
|
+
* ExecEvalJsonExprPath() so as to return whatever the JsonPath* function
|
1065
|
+
* returned as is, that is, in the cases where there's no error and no
|
1066
|
+
* coercion is necessary.
|
1067
|
+
*/
|
1068
|
+
int jump_end;
|
1069
|
+
|
1070
|
+
/*
|
1071
|
+
* RETURNING type input function invocation info when
|
1072
|
+
* JsonExpr.use_io_coercion is true.
|
1073
|
+
*/
|
1074
|
+
FunctionCallInfo input_fcinfo;
|
1075
|
+
|
1076
|
+
/*
|
1077
|
+
* For error-safe evaluation of coercions. When the ON ERROR behavior is
|
1078
|
+
* not ERROR, a pointer to this is passed to ExecInitExprRec() when
|
1079
|
+
* initializing the coercion expressions or to ExecInitJsonCoercion().
|
1080
|
+
*
|
1081
|
+
* Reset for each evaluation of EEOP_JSONEXPR_PATH.
|
1082
|
+
*/
|
1083
|
+
ErrorSaveContext escontext;
|
1084
|
+
} JsonExprState;
|
1085
|
+
|
1005
1086
|
|
1006
1087
|
/* ----------------------------------------------------------------
|
1007
1088
|
* Executor State Trees
|
@@ -1319,6 +1400,16 @@ typedef struct ModifyTableState
|
|
1319
1400
|
/* Flags showing which subcommands are present INS/UPD/DEL/DO NOTHING */
|
1320
1401
|
int mt_merge_subcommands;
|
1321
1402
|
|
1403
|
+
/* For MERGE, the action currently being executed */
|
1404
|
+
MergeActionState *mt_merge_action;
|
1405
|
+
|
1406
|
+
/*
|
1407
|
+
* For MERGE, if there is a pending NOT MATCHED [BY TARGET] action to be
|
1408
|
+
* performed, this will be the last tuple read from the subplan; otherwise
|
1409
|
+
* it will be NULL --- see the comments in ExecMerge().
|
1410
|
+
*/
|
1411
|
+
TupleTableSlot *mt_merge_pending_not_matched;
|
1412
|
+
|
1322
1413
|
/* tuple counters for MERGE */
|
1323
1414
|
double mt_merge_inserted;
|
1324
1415
|
double mt_merge_updated;
|
@@ -1600,6 +1691,8 @@ typedef struct IndexScanState
|
|
1600
1691
|
* TableSlot slot for holding tuples fetched from the table
|
1601
1692
|
* VMBuffer buffer in use for visibility map testing, if any
|
1602
1693
|
* PscanLen size of parallel index-only scan descriptor
|
1694
|
+
* NameCStringAttNums attnums of name typed columns to pad to NAMEDATALEN
|
1695
|
+
* NameCStringCount number of elements in the NameCStringAttNums array
|
1603
1696
|
* ----------------
|
1604
1697
|
*/
|
1605
1698
|
typedef struct IndexOnlyScanState
|
@@ -1619,6 +1712,8 @@ typedef struct IndexOnlyScanState
|
|
1619
1712
|
TupleTableSlot *ioss_TableSlot;
|
1620
1713
|
Buffer ioss_VMBuffer;
|
1621
1714
|
Size ioss_PscanLen;
|
1715
|
+
AttrNumber *ioss_NameCStringAttNums;
|
1716
|
+
int ioss_NameCStringCount;
|
1622
1717
|
} IndexOnlyScanState;
|
1623
1718
|
|
1624
1719
|
/* ----------------
|
@@ -1670,7 +1765,7 @@ typedef enum
|
|
1670
1765
|
{
|
1671
1766
|
BM_INITIAL,
|
1672
1767
|
BM_INPROGRESS,
|
1673
|
-
BM_FINISHED
|
1768
|
+
BM_FINISHED,
|
1674
1769
|
} SharedBitmapState;
|
1675
1770
|
|
1676
1771
|
/* ----------------
|
@@ -1683,7 +1778,6 @@ typedef enum
|
|
1683
1778
|
* prefetch_target current target prefetch distance
|
1684
1779
|
* state current state of the TIDBitmap
|
1685
1780
|
* cv conditional wait variable
|
1686
|
-
* phs_snapshot_data snapshot data shared to workers
|
1687
1781
|
* ----------------
|
1688
1782
|
*/
|
1689
1783
|
typedef struct ParallelBitmapHeapState
|
@@ -1695,7 +1789,6 @@ typedef struct ParallelBitmapHeapState
|
|
1695
1789
|
int prefetch_target;
|
1696
1790
|
SharedBitmapState state;
|
1697
1791
|
ConditionVariable cv;
|
1698
|
-
char phs_snapshot_data[FLEXIBLE_ARRAY_MEMBER];
|
1699
1792
|
} ParallelBitmapHeapState;
|
1700
1793
|
|
1701
1794
|
/* ----------------
|
@@ -1705,17 +1798,13 @@ typedef struct ParallelBitmapHeapState
|
|
1705
1798
|
* tbm bitmap obtained from child index scan(s)
|
1706
1799
|
* tbmiterator iterator for scanning current pages
|
1707
1800
|
* 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
|
1801
|
+
* pvmbuffer buffer for visibility-map lookups of prefetched pages
|
1712
1802
|
* exact_pages total number of exact pages retrieved
|
1713
1803
|
* lossy_pages total number of lossy pages retrieved
|
1714
1804
|
* prefetch_iterator iterator for prefetching ahead of current page
|
1715
1805
|
* prefetch_pages # pages prefetch iterator is ahead of current
|
1716
1806
|
* prefetch_target current target prefetch distance
|
1717
1807
|
* prefetch_maximum maximum value for prefetch_target
|
1718
|
-
* pscan_len size of the shared memory for parallel bitmap
|
1719
1808
|
* initialized is node is ready to iterate
|
1720
1809
|
* shared_tbmiterator shared iterator
|
1721
1810
|
* shared_prefetch_iterator shared iterator for prefetching
|
@@ -1729,9 +1818,6 @@ typedef struct BitmapHeapScanState
|
|
1729
1818
|
TIDBitmap *tbm;
|
1730
1819
|
TBMIterator *tbmiterator;
|
1731
1820
|
TBMIterateResult *tbmres;
|
1732
|
-
bool can_skip_fetch;
|
1733
|
-
int return_empty_tuples;
|
1734
|
-
Buffer vmbuffer;
|
1735
1821
|
Buffer pvmbuffer;
|
1736
1822
|
long exact_pages;
|
1737
1823
|
long lossy_pages;
|
@@ -1739,7 +1825,6 @@ typedef struct BitmapHeapScanState
|
|
1739
1825
|
int prefetch_pages;
|
1740
1826
|
int prefetch_target;
|
1741
1827
|
int prefetch_maximum;
|
1742
|
-
Size pscan_len;
|
1743
1828
|
bool initialized;
|
1744
1829
|
TBMSharedIterator *shared_tbmiterator;
|
1745
1830
|
TBMSharedIterator *shared_prefetch_iterator;
|
@@ -1754,7 +1839,6 @@ typedef struct BitmapHeapScanState
|
|
1754
1839
|
* NumTids number of tids in this scan
|
1755
1840
|
* TidPtr index of currently fetched tid
|
1756
1841
|
* TidList evaluated item pointers (array of size NumTids)
|
1757
|
-
* htup currently-fetched tuple, if any
|
1758
1842
|
* ----------------
|
1759
1843
|
*/
|
1760
1844
|
typedef struct TidScanState
|
@@ -1765,7 +1849,6 @@ typedef struct TidScanState
|
|
1765
1849
|
int tss_NumTids;
|
1766
1850
|
int tss_TidPtr;
|
1767
1851
|
ItemPointerData *tss_TidList;
|
1768
|
-
HeapTupleData tss_htup;
|
1769
1852
|
} TidScanState;
|
1770
1853
|
|
1771
1854
|
/* ----------------
|
@@ -1876,6 +1959,8 @@ typedef struct TableFuncScanState
|
|
1876
1959
|
ExprState *rowexpr; /* state for row-generating expression */
|
1877
1960
|
List *colexprs; /* state for column-generating expression */
|
1878
1961
|
List *coldefexprs; /* state for column default expressions */
|
1962
|
+
List *colvalexprs; /* state for column value expressions */
|
1963
|
+
List *passingvalexprs; /* state for PASSING argument expressions */
|
1879
1964
|
List *ns_names; /* same as TableFunc.ns_names */
|
1880
1965
|
List *ns_uris; /* list of states of namespace URI exprs */
|
1881
1966
|
Bitmapset *notnulls; /* nullability flag for each output column */
|
@@ -2447,7 +2532,6 @@ typedef struct AggState
|
|
2447
2532
|
#define FIELDNO_AGGSTATE_ALL_PERGROUPS 53
|
2448
2533
|
AggStatePerGroup *all_pergroups; /* array of first ->pergroups, than
|
2449
2534
|
* ->hash_pergroup */
|
2450
|
-
ProjectionInfo *combinedproj; /* projection machinery */
|
2451
2535
|
SharedAggInfo *shared_info; /* one entry per worker */
|
2452
2536
|
} AggState;
|
2453
2537
|
|
@@ -2467,7 +2551,7 @@ typedef enum WindowAggStatus
|
|
2467
2551
|
WINDOWAGG_DONE, /* No more processing to do */
|
2468
2552
|
WINDOWAGG_RUN, /* Normal processing of window funcs */
|
2469
2553
|
WINDOWAGG_PASSTHROUGH, /* Don't eval window funcs */
|
2470
|
-
WINDOWAGG_PASSTHROUGH_STRICT /* Pass-through plus don't store new
|
2554
|
+
WINDOWAGG_PASSTHROUGH_STRICT, /* Pass-through plus don't store new
|
2471
2555
|
* tuples during spool */
|
2472
2556
|
} WindowAggStatus;
|
2473
2557
|
|
@@ -2745,7 +2829,7 @@ typedef enum
|
|
2745
2829
|
LIMIT_WINDOWEND_TIES, /* have returned a tied row */
|
2746
2830
|
LIMIT_SUBPLANEOF, /* at EOF of subplan (within window) */
|
2747
2831
|
LIMIT_WINDOWEND, /* stepped off end of window */
|
2748
|
-
LIMIT_WINDOWSTART /* stepped off beginning of window */
|
2832
|
+
LIMIT_WINDOWSTART, /* stepped off beginning of window */
|
2749
2833
|
} LimitStateCond;
|
2750
2834
|
|
2751
2835
|
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
|
/*
|