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
@@ -4,7 +4,7 @@
|
|
4
4
|
* Routines for interprocess signaling
|
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/storage/procsignal.h
|
@@ -14,7 +14,7 @@
|
|
14
14
|
#ifndef PROCSIGNAL_H
|
15
15
|
#define PROCSIGNAL_H
|
16
16
|
|
17
|
-
#include "storage/
|
17
|
+
#include "storage/procnumber.h"
|
18
18
|
|
19
19
|
|
20
20
|
/*
|
@@ -38,20 +38,22 @@ typedef enum
|
|
38
38
|
PROCSIG_PARALLEL_APPLY_MESSAGE, /* Message from parallel apply workers */
|
39
39
|
|
40
40
|
/* Recovery conflict reasons */
|
41
|
-
|
41
|
+
PROCSIG_RECOVERY_CONFLICT_FIRST,
|
42
|
+
PROCSIG_RECOVERY_CONFLICT_DATABASE = PROCSIG_RECOVERY_CONFLICT_FIRST,
|
42
43
|
PROCSIG_RECOVERY_CONFLICT_TABLESPACE,
|
43
44
|
PROCSIG_RECOVERY_CONFLICT_LOCK,
|
44
45
|
PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,
|
45
46
|
PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT,
|
46
47
|
PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,
|
47
48
|
PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
|
49
|
+
PROCSIG_RECOVERY_CONFLICT_LAST = PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
|
48
50
|
|
49
51
|
NUM_PROCSIGNALS /* Must be last! */
|
50
52
|
} ProcSignalReason;
|
51
53
|
|
52
54
|
typedef enum
|
53
55
|
{
|
54
|
-
PROCSIGNAL_BARRIER_SMGRRELEASE
|
56
|
+
PROCSIGNAL_BARRIER_SMGRRELEASE, /* ask smgr to close files */
|
55
57
|
} ProcSignalBarrierType;
|
56
58
|
|
57
59
|
/*
|
@@ -60,9 +62,9 @@ typedef enum
|
|
60
62
|
extern Size ProcSignalShmemSize(void);
|
61
63
|
extern void ProcSignalShmemInit(void);
|
62
64
|
|
63
|
-
extern void ProcSignalInit(
|
65
|
+
extern void ProcSignalInit(void);
|
64
66
|
extern int SendProcSignal(pid_t pid, ProcSignalReason reason,
|
65
|
-
|
67
|
+
ProcNumber procNumber);
|
66
68
|
|
67
69
|
extern uint64 EmitProcSignalBarrier(ProcSignalBarrierType type);
|
68
70
|
extern void WaitForProcSignalBarrier(uint64 generation);
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* read_stream.h
|
4
|
+
* Mechanism for accessing buffered relation data with look-ahead
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/storage/read_stream.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef READ_STREAM_H
|
15
|
+
#define READ_STREAM_H
|
16
|
+
|
17
|
+
#include "storage/bufmgr.h"
|
18
|
+
|
19
|
+
/* Default tuning, reasonable for many users. */
|
20
|
+
#define READ_STREAM_DEFAULT 0x00
|
21
|
+
|
22
|
+
/*
|
23
|
+
* I/O streams that are performing maintenance work on behalf of potentially
|
24
|
+
* many users, and thus should be governed by maintenance_io_concurrency
|
25
|
+
* instead of effective_io_concurrency. For example, VACUUM or CREATE INDEX.
|
26
|
+
*/
|
27
|
+
#define READ_STREAM_MAINTENANCE 0x01
|
28
|
+
|
29
|
+
/*
|
30
|
+
* We usually avoid issuing prefetch advice automatically when sequential
|
31
|
+
* access is detected, but this flag explicitly disables it, for cases that
|
32
|
+
* might not be correctly detected. Explicit advice is known to perform worse
|
33
|
+
* than letting the kernel (at least Linux) detect sequential access.
|
34
|
+
*/
|
35
|
+
#define READ_STREAM_SEQUENTIAL 0x02
|
36
|
+
|
37
|
+
/*
|
38
|
+
* We usually ramp up from smaller reads to larger ones, to support users who
|
39
|
+
* don't know if it's worth reading lots of buffers yet. This flag disables
|
40
|
+
* that, declaring ahead of time that we'll be reading all available buffers.
|
41
|
+
*/
|
42
|
+
#define READ_STREAM_FULL 0x04
|
43
|
+
|
44
|
+
struct ReadStream;
|
45
|
+
typedef struct ReadStream ReadStream;
|
46
|
+
|
47
|
+
/* Callback that returns the next block number to read. */
|
48
|
+
typedef BlockNumber (*ReadStreamBlockNumberCB) (ReadStream *stream,
|
49
|
+
void *callback_private_data,
|
50
|
+
void *per_buffer_data);
|
51
|
+
|
52
|
+
extern ReadStream *read_stream_begin_relation(int flags,
|
53
|
+
BufferAccessStrategy strategy,
|
54
|
+
Relation rel,
|
55
|
+
ForkNumber forknum,
|
56
|
+
ReadStreamBlockNumberCB callback,
|
57
|
+
void *callback_private_data,
|
58
|
+
size_t per_buffer_data_size);
|
59
|
+
extern Buffer read_stream_next_buffer(ReadStream *stream, void **per_buffer_data);
|
60
|
+
extern BlockNumber read_stream_next_block(ReadStream *stream,
|
61
|
+
BufferAccessStrategy *strategy);
|
62
|
+
extern void read_stream_reset(ReadStream *stream);
|
63
|
+
extern void read_stream_end(ReadStream *stream);
|
64
|
+
|
65
|
+
#endif /* READ_STREAM_H */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Physical access information for relations.
|
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/storage/relfilelocator.h
|
@@ -15,14 +15,15 @@
|
|
15
15
|
#define RELFILELOCATOR_H
|
16
16
|
|
17
17
|
#include "common/relpath.h"
|
18
|
-
#include "storage/
|
18
|
+
#include "storage/procnumber.h"
|
19
19
|
|
20
20
|
/*
|
21
21
|
* RelFileLocator must provide all that we need to know to physically access
|
22
|
-
* a relation, with the exception of the backend
|
23
|
-
* separately.
|
24
|
-
* multiple files on the filesystem, as each fork is stored as
|
25
|
-
* file, and each fork can be divided into multiple segments. See
|
22
|
+
* a relation, with the exception of the backend's proc number, which can be
|
23
|
+
* provided separately. Note, however, that a "physical" relation is
|
24
|
+
* comprised of multiple files on the filesystem, as each fork is stored as
|
25
|
+
* a separate file, and each fork can be divided into multiple segments. See
|
26
|
+
* md.c.
|
26
27
|
*
|
27
28
|
* spcOid identifies the tablespace of the relation. It corresponds to
|
28
29
|
* pg_tablespace.oid.
|
@@ -62,28 +63,28 @@ typedef struct RelFileLocator
|
|
62
63
|
} RelFileLocator;
|
63
64
|
|
64
65
|
/*
|
65
|
-
* Augmenting a relfilelocator with the backend
|
66
|
-
* we need to locate the physical storage.
|
67
|
-
* for regular relations (those accessible to more than
|
68
|
-
* owning backend's
|
69
|
-
* are always transient and removed in
|
70
|
-
* never WAL-logged or fsync'd.
|
66
|
+
* Augmenting a relfilelocator with the backend's proc number provides all the
|
67
|
+
* information we need to locate the physical storage. 'backend' is
|
68
|
+
* INVALID_PROC_NUMBER for regular relations (those accessible to more than
|
69
|
+
* one backend), or the owning backend's proc number for backend-local
|
70
|
+
* relations. Backend-local relations are always transient and removed in
|
71
|
+
* case of a database crash; they are never WAL-logged or fsync'd.
|
71
72
|
*/
|
72
73
|
typedef struct RelFileLocatorBackend
|
73
74
|
{
|
74
75
|
RelFileLocator locator;
|
75
|
-
|
76
|
+
ProcNumber backend;
|
76
77
|
} RelFileLocatorBackend;
|
77
78
|
|
78
79
|
#define RelFileLocatorBackendIsTemp(rlocator) \
|
79
|
-
((rlocator).backend !=
|
80
|
+
((rlocator).backend != INVALID_PROC_NUMBER)
|
80
81
|
|
81
82
|
/*
|
82
83
|
* Note: RelFileLocatorEquals and RelFileLocatorBackendEquals compare relNumber
|
83
84
|
* first since that is most likely to be different in two unequal
|
84
85
|
* RelFileLocators. It is probably redundant to compare spcOid if the other
|
85
86
|
* fields are found equal, but do it anyway to be sure. Likewise for checking
|
86
|
-
* the backend
|
87
|
+
* the backend number in RelFileLocatorBackendEquals.
|
87
88
|
*/
|
88
89
|
#define RelFileLocatorEquals(locator1, locator2) \
|
89
90
|
((locator1).relNumber == (locator2).relNumber && \
|
@@ -86,7 +86,7 @@
|
|
86
86
|
* when using the SysV semaphore code.
|
87
87
|
*
|
88
88
|
*
|
89
|
-
* Portions Copyright (c) 1996-
|
89
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
90
90
|
* Portions Copyright (c) 1994, Regents of the University of California
|
91
91
|
*
|
92
92
|
* src/include/storage/s_lock.h
|
@@ -414,12 +414,6 @@ typedef unsigned int slock_t;
|
|
414
414
|
* an isync is a sufficient synchronization barrier after a lwarx/stwcx loop.
|
415
415
|
* But if the spinlock is in ordinary memory, we can use lwsync instead for
|
416
416
|
* better performance.
|
417
|
-
*
|
418
|
-
* Ordinarily, we'd code the branches here using GNU-style local symbols, that
|
419
|
-
* is "1f" referencing "1:" and so on. But some people run gcc on AIX with
|
420
|
-
* IBM's assembler as backend, and IBM's assembler doesn't do local symbols.
|
421
|
-
* So hand-code the branch offsets; fortunately, all PPC instructions are
|
422
|
-
* exactly 4 bytes each, so it's not too hard to count.
|
423
417
|
*/
|
424
418
|
static __inline__ int
|
425
419
|
tas(volatile slock_t *lock)
|
@@ -430,15 +424,17 @@ tas(volatile slock_t *lock)
|
|
430
424
|
__asm__ __volatile__(
|
431
425
|
" lwarx %0,0,%3,1 \n"
|
432
426
|
" cmpwi %0,0 \n"
|
433
|
-
" bne
|
427
|
+
" bne 1f \n"
|
434
428
|
" addi %0,%0,1 \n"
|
435
429
|
" stwcx. %0,0,%3 \n"
|
436
|
-
" beq
|
430
|
+
" beq 2f \n"
|
431
|
+
"1: \n"
|
437
432
|
" li %1,1 \n"
|
438
|
-
" b
|
433
|
+
" b 3f \n"
|
434
|
+
"2: \n"
|
439
435
|
" lwsync \n"
|
440
436
|
" li %1,0 \n"
|
441
|
-
|
437
|
+
"3: \n"
|
442
438
|
: "=&b"(_t), "=r"(_res), "+m"(*lock)
|
443
439
|
: "r"(lock)
|
444
440
|
: "memory", "cc");
|
@@ -666,21 +662,6 @@ tas(volatile slock_t *lock)
|
|
666
662
|
|
667
663
|
#if !defined(HAS_TEST_AND_SET) /* We didn't trigger above, let's try here */
|
668
664
|
|
669
|
-
#if defined(_AIX) /* AIX */
|
670
|
-
/*
|
671
|
-
* AIX (POWER)
|
672
|
-
*/
|
673
|
-
#define HAS_TEST_AND_SET
|
674
|
-
|
675
|
-
#include <sys/atomic_op.h>
|
676
|
-
|
677
|
-
typedef int slock_t;
|
678
|
-
|
679
|
-
#define TAS(lock) _check_lock((slock_t *) (lock), 0, 1)
|
680
|
-
#define S_UNLOCK(lock) _clear_lock((slock_t *) (lock), 0)
|
681
|
-
#endif /* _AIX */
|
682
|
-
|
683
|
-
|
684
665
|
/* These are in sunstudio_(sparc|x86).s */
|
685
666
|
|
686
667
|
#if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
|
@@ -821,7 +802,6 @@ extern int tas(volatile slock_t *lock); /* in port/.../tas.s, or
|
|
821
802
|
#define TAS_SPIN(lock) TAS(lock)
|
822
803
|
#endif /* TAS_SPIN */
|
823
804
|
|
824
|
-
extern PGDLLIMPORT slock_t dummy_spinlock;
|
825
805
|
|
826
806
|
/*
|
827
807
|
* Platform-independent out-of-line support routines
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Shared temporary file management.
|
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/storage/sharedfileset.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* shm_mq.h
|
4
4
|
* single-reader, single-writer shared memory message queue
|
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/storage/shm_mq.h
|
@@ -37,7 +37,7 @@ typedef enum
|
|
37
37
|
{
|
38
38
|
SHM_MQ_SUCCESS, /* Sent or received a message. */
|
39
39
|
SHM_MQ_WOULD_BLOCK, /* Not completed; retry later. */
|
40
|
-
SHM_MQ_DETACHED
|
40
|
+
SHM_MQ_DETACHED, /* Other process has detached queue. */
|
41
41
|
} shm_mq_result;
|
42
42
|
|
43
43
|
/*
|
@@ -12,7 +12,7 @@
|
|
12
12
|
* other data structure within the segment and only put the pointer to
|
13
13
|
* the data structure itself in the table of contents.
|
14
14
|
*
|
15
|
-
* Portions Copyright (c) 1996-
|
15
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
17
17
|
*
|
18
18
|
* src/include/storage/shm_toc.h
|
@@ -11,7 +11,7 @@
|
|
11
11
|
* at the same address. This means shared memory pointers can be passed
|
12
12
|
* around directly between different processes.
|
13
13
|
*
|
14
|
-
* Portions Copyright (c) 1996-
|
14
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
16
16
|
*
|
17
17
|
* src/include/storage/shmem.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* POSTGRES shared cache invalidation communication 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/storage/sinval.h
|
@@ -88,8 +88,8 @@ typedef struct
|
|
88
88
|
{
|
89
89
|
/* note: field layout chosen to pack into 16 bytes */
|
90
90
|
int8 id; /* type field --- must be first */
|
91
|
-
int8 backend_hi; /* high bits of backend
|
92
|
-
uint16 backend_lo; /* low bits of backend
|
91
|
+
int8 backend_hi; /* high bits of backend procno, if temprel */
|
92
|
+
uint16 backend_lo; /* low bits of backend procno, if temprel */
|
93
93
|
RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
|
94
94
|
} SharedInvalSmgrMsg;
|
95
95
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* storage manager switch public interface declarations.
|
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/storage/smgr.h
|
@@ -21,29 +21,21 @@
|
|
21
21
|
/*
|
22
22
|
* smgr.c maintains a table of SMgrRelation objects, which are essentially
|
23
23
|
* cached file handles. An SMgrRelation is created (if not already present)
|
24
|
-
* by smgropen(), and destroyed by
|
25
|
-
* operations imply I/O, they just create or destroy a hashtable entry.
|
26
|
-
* (
|
24
|
+
* by smgropen(), and destroyed by smgrdestroy(). Note that neither of these
|
25
|
+
* operations imply I/O, they just create or destroy a hashtable entry. (But
|
26
|
+
* smgrdestroy() may release associated resources, such as OS-level file
|
27
27
|
* descriptors.)
|
28
28
|
*
|
29
|
-
* An SMgrRelation may
|
30
|
-
*
|
31
|
-
*
|
32
|
-
*
|
33
|
-
* can't be more than one "owner" pointer per SMgrRelation, but that's
|
34
|
-
* all we need.
|
35
|
-
*
|
36
|
-
* SMgrRelations that do not have an "owner" are considered to be transient,
|
37
|
-
* and are deleted at end of transaction.
|
29
|
+
* An SMgrRelation may be "pinned", to prevent it from being destroyed while
|
30
|
+
* it's in use. We use this to prevent pointers relcache to smgr from being
|
31
|
+
* invalidated. SMgrRelations that are not pinned are deleted at end of
|
32
|
+
* transaction.
|
38
33
|
*/
|
39
34
|
typedef struct SMgrRelationData
|
40
35
|
{
|
41
36
|
/* rlocator is the hashtable lookup key, so it must be first! */
|
42
37
|
RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
|
43
38
|
|
44
|
-
/* pointer to owning pointer, or NULL if none */
|
45
|
-
struct SMgrRelationData **smgr_owner;
|
46
|
-
|
47
39
|
/*
|
48
40
|
* The following fields are reset to InvalidBlockNumber upon a cache flush
|
49
41
|
* event, and hold the last known size for each fork. This information is
|
@@ -68,7 +60,11 @@ typedef struct SMgrRelationData
|
|
68
60
|
int md_num_open_segs[MAX_FORKNUM + 1];
|
69
61
|
struct _MdfdVec *md_seg_fds[MAX_FORKNUM + 1];
|
70
62
|
|
71
|
-
/*
|
63
|
+
/*
|
64
|
+
* Pinning support. If unpinned (ie. pincount == 0), 'node' is a list
|
65
|
+
* link in list of all unpinned SMgrRelations.
|
66
|
+
*/
|
67
|
+
int pincount;
|
72
68
|
dlist_node node;
|
73
69
|
} SMgrRelationData;
|
74
70
|
|
@@ -78,15 +74,15 @@ typedef SMgrRelationData *SMgrRelation;
|
|
78
74
|
RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
|
79
75
|
|
80
76
|
extern void smgrinit(void);
|
81
|
-
extern SMgrRelation smgropen(RelFileLocator rlocator,
|
77
|
+
extern SMgrRelation smgropen(RelFileLocator rlocator, ProcNumber backend);
|
82
78
|
extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
|
83
|
-
extern void
|
84
|
-
extern void
|
79
|
+
extern void smgrpin(SMgrRelation reln);
|
80
|
+
extern void smgrunpin(SMgrRelation reln);
|
85
81
|
extern void smgrclose(SMgrRelation reln);
|
86
|
-
extern void
|
87
|
-
extern void smgrcloserellocator(RelFileLocatorBackend rlocator);
|
82
|
+
extern void smgrdestroyall(void);
|
88
83
|
extern void smgrrelease(SMgrRelation reln);
|
89
84
|
extern void smgrreleaseall(void);
|
85
|
+
extern void smgrreleaserellocator(RelFileLocatorBackend rlocator);
|
90
86
|
extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
|
91
87
|
extern void smgrdosyncall(SMgrRelation *rels, int nrels);
|
92
88
|
extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
|
@@ -95,19 +91,40 @@ extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
|
|
95
91
|
extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
|
96
92
|
BlockNumber blocknum, int nblocks, bool skipFsync);
|
97
93
|
extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
|
98
|
-
BlockNumber blocknum);
|
99
|
-
extern void
|
100
|
-
|
101
|
-
|
102
|
-
|
94
|
+
BlockNumber blocknum, int nblocks);
|
95
|
+
extern void smgrreadv(SMgrRelation reln, ForkNumber forknum,
|
96
|
+
BlockNumber blocknum,
|
97
|
+
void **buffers, BlockNumber nblocks);
|
98
|
+
extern void smgrwritev(SMgrRelation reln, ForkNumber forknum,
|
99
|
+
BlockNumber blocknum,
|
100
|
+
const void **buffers, BlockNumber nblocks,
|
101
|
+
bool skipFsync);
|
103
102
|
extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
|
104
103
|
BlockNumber blocknum, BlockNumber nblocks);
|
105
104
|
extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
|
106
105
|
extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
|
107
|
-
extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum,
|
108
|
-
|
106
|
+
extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum, int nforks,
|
107
|
+
BlockNumber *nblocks);
|
108
|
+
extern void smgrtruncate2(SMgrRelation reln, ForkNumber *forknum, int nforks,
|
109
|
+
BlockNumber *old_nblocks,
|
110
|
+
BlockNumber *nblocks);
|
109
111
|
extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
|
112
|
+
extern void smgrregistersync(SMgrRelation reln, ForkNumber forknum);
|
110
113
|
extern void AtEOXact_SMgr(void);
|
111
114
|
extern bool ProcessBarrierSmgrRelease(void);
|
112
115
|
|
116
|
+
static inline void
|
117
|
+
smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
118
|
+
void *buffer)
|
119
|
+
{
|
120
|
+
smgrreadv(reln, forknum, blocknum, &buffer, 1);
|
121
|
+
}
|
122
|
+
|
123
|
+
static inline void
|
124
|
+
smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
|
125
|
+
const void *buffer, bool skipFsync)
|
126
|
+
{
|
127
|
+
smgrwritev(reln, forknum, blocknum, &buffer, 1, skipFsync);
|
128
|
+
}
|
129
|
+
|
113
130
|
#endif /* SMGR_H */
|
@@ -41,7 +41,7 @@
|
|
41
41
|
* be again.
|
42
42
|
*
|
43
43
|
*
|
44
|
-
* Portions Copyright (c) 1996-
|
44
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
45
45
|
* Portions Copyright (c) 1994, Regents of the University of California
|
46
46
|
*
|
47
47
|
* src/include/storage/spin.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Definitions for hot standby mode.
|
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/storage/standby.h
|
@@ -75,13 +75,23 @@ extern void StandbyReleaseOldLocks(TransactionId oldxid);
|
|
75
75
|
* almost immediately see the data we need to begin executing queries.
|
76
76
|
*/
|
77
77
|
|
78
|
+
typedef enum
|
79
|
+
{
|
80
|
+
SUBXIDS_IN_ARRAY, /* xids array includes all running subxids */
|
81
|
+
SUBXIDS_MISSING, /* snapshot overflowed, subxids are missing */
|
82
|
+
SUBXIDS_IN_SUBTRANS, /* subxids are not included in 'xids', but
|
83
|
+
* pg_subtrans is fully up-to-date */
|
84
|
+
} subxids_array_status;
|
85
|
+
|
78
86
|
typedef struct RunningTransactionsData
|
79
87
|
{
|
80
88
|
int xcnt; /* # of xact ids in xids[] */
|
81
89
|
int subxcnt; /* # of subxact ids in xids[] */
|
82
|
-
|
83
|
-
TransactionId nextXid; /* xid from
|
90
|
+
subxids_array_status subxid_status;
|
91
|
+
TransactionId nextXid; /* xid from TransamVariables->nextXid */
|
84
92
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
93
|
+
TransactionId oldestDatabaseRunningXid; /* same as above, but within the
|
94
|
+
* current database */
|
85
95
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
86
96
|
|
87
97
|
TransactionId *xids; /* array of (sub)xids still running */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* Frontend exposed definitions for hot standby mode.
|
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/storage/standbydefs.h
|
@@ -49,7 +49,7 @@ typedef struct xl_running_xacts
|
|
49
49
|
int xcnt; /* # of xact ids in xids[] */
|
50
50
|
int subxcnt; /* # of subxact ids in xids[] */
|
51
51
|
bool subxid_overflow; /* snapshot overflowed, subxids missing */
|
52
|
-
TransactionId nextXid; /* xid from
|
52
|
+
TransactionId nextXid; /* xid from TransamVariables->nextXid */
|
53
53
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
54
54
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
55
55
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* sync.h
|
4
4
|
* File synchronization management code.
|
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/storage/sync.h
|
@@ -25,7 +25,7 @@ typedef enum SyncRequestType
|
|
25
25
|
SYNC_REQUEST, /* schedule a call of sync function */
|
26
26
|
SYNC_UNLINK_REQUEST, /* schedule a call of unlink function */
|
27
27
|
SYNC_FORGET_REQUEST, /* forget all calls for a tag */
|
28
|
-
SYNC_FILTER_REQUEST
|
28
|
+
SYNC_FILTER_REQUEST, /* forget all calls satisfying match fn */
|
29
29
|
} SyncRequestType;
|
30
30
|
|
31
31
|
/*
|
@@ -39,7 +39,7 @@ typedef enum SyncRequestHandler
|
|
39
39
|
SYNC_HANDLER_COMMIT_TS,
|
40
40
|
SYNC_HANDLER_MULTIXACT_OFFSET,
|
41
41
|
SYNC_HANDLER_MULTIXACT_MEMBER,
|
42
|
-
SYNC_HANDLER_NONE
|
42
|
+
SYNC_HANDLER_NONE,
|
43
43
|
} SyncRequestHandler;
|
44
44
|
|
45
45
|
/*
|
@@ -52,7 +52,7 @@ typedef struct FileTag
|
|
52
52
|
int16 handler; /* SyncRequestHandler value, saving space */
|
53
53
|
int16 forknum; /* ForkNumber, saving space */
|
54
54
|
RelFileLocator rlocator;
|
55
|
-
|
55
|
+
uint64 segno;
|
56
56
|
} FileTag;
|
57
57
|
|
58
58
|
extern void InitSync(void);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* cmdtag.h
|
4
4
|
* Declarations for commandtag names and enumeration.
|
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/tcop/cmdtag.h
|
@@ -22,7 +22,6 @@
|
|
22
22
|
typedef enum CommandTag
|
23
23
|
{
|
24
24
|
#include "tcop/cmdtaglist.h"
|
25
|
-
COMMAND_TAG_NEXTTAG
|
26
25
|
} CommandTag;
|
27
26
|
|
28
27
|
#undef PG_CMDTAG
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* determined by the PG_CMDTAG macro, which is not defined in this file;
|
9
9
|
* it can be defined by the caller for special purposes.
|
10
10
|
*
|
11
|
-
* Portions Copyright (c) 1996-
|
11
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
12
12
|
* Portions Copyright (c) 1994, Regents of the University of California
|
13
13
|
*
|
14
14
|
* src/include/tcop/cmdtaglist.h
|
@@ -186,6 +186,7 @@ PG_CMDTAG(CMDTAG_INSERT, "INSERT", false, false, true)
|
|
186
186
|
PG_CMDTAG(CMDTAG_LISTEN, "LISTEN", false, false, false)
|
187
187
|
PG_CMDTAG(CMDTAG_LOAD, "LOAD", false, false, false)
|
188
188
|
PG_CMDTAG(CMDTAG_LOCK_TABLE, "LOCK TABLE", false, false, false)
|
189
|
+
PG_CMDTAG(CMDTAG_LOGIN, "LOGIN", true, false, false)
|
189
190
|
PG_CMDTAG(CMDTAG_MERGE, "MERGE", false, false, true)
|
190
191
|
PG_CMDTAG(CMDTAG_MOVE, "MOVE", false, false, true)
|
191
192
|
PG_CMDTAG(CMDTAG_NOTIFY, "NOTIFY", false, false, false)
|
@@ -193,7 +194,7 @@ PG_CMDTAG(CMDTAG_PREPARE, "PREPARE", false, false, false)
|
|
193
194
|
PG_CMDTAG(CMDTAG_PREPARE_TRANSACTION, "PREPARE TRANSACTION", false, false, false)
|
194
195
|
PG_CMDTAG(CMDTAG_REASSIGN_OWNED, "REASSIGN OWNED", false, false, false)
|
195
196
|
PG_CMDTAG(CMDTAG_REFRESH_MATERIALIZED_VIEW, "REFRESH MATERIALIZED VIEW", true, false, false)
|
196
|
-
PG_CMDTAG(CMDTAG_REINDEX, "REINDEX",
|
197
|
+
PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", true, false, false)
|
197
198
|
PG_CMDTAG(CMDTAG_RELEASE, "RELEASE", false, false, false)
|
198
199
|
PG_CMDTAG(CMDTAG_RESET, "RESET", false, false, false)
|
199
200
|
PG_CMDTAG(CMDTAG_REVOKE, "REVOKE", true, false, false)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
*
|
3
3
|
* deparse_utility.h
|
4
4
|
*
|
5
|
-
* Portions Copyright (c) 1996-
|
5
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
6
6
|
* Portions Copyright (c) 1994, Regents of the University of California
|
7
7
|
*
|
8
8
|
* src/include/tcop/deparse_utility.h
|
@@ -29,7 +29,7 @@ typedef enum CollectedCommandType
|
|
29
29
|
SCT_AlterOpFamily,
|
30
30
|
SCT_AlterDefaultPrivileges,
|
31
31
|
SCT_CreateOpClass,
|
32
|
-
SCT_AlterTSConfig
|
32
|
+
SCT_AlterTSConfig,
|
33
33
|
} CollectedCommandType;
|
34
34
|
|
35
35
|
/*
|
@@ -57,7 +57,7 @@
|
|
57
57
|
* calls in portal and cursor manipulations.
|
58
58
|
*
|
59
59
|
*
|
60
|
-
* Portions Copyright (c) 1996-
|
60
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
61
61
|
* Portions Copyright (c) 1994, Regents of the University of California
|
62
62
|
*
|
63
63
|
* src/include/tcop/dest.h
|
@@ -95,7 +95,8 @@ typedef enum
|
|
95
95
|
DestCopyOut, /* results sent to COPY TO code */
|
96
96
|
DestSQLFunction, /* results sent to SQL-language func mgr */
|
97
97
|
DestTransientRel, /* results sent to transient relation */
|
98
|
-
DestTupleQueue /* results sent to tuple queue */
|
98
|
+
DestTupleQueue, /* results sent to tuple queue */
|
99
|
+
DestExplainSerialize, /* results are serialized and discarded */
|
99
100
|
} CommandDest;
|
100
101
|
|
101
102
|
/* ----------------
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* fastpath.h
|
4
4
|
*
|
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/tcop/fastpath.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for pquery.c.
|
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/tcop/pquery.h
|