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
@@ -24,12 +24,14 @@
|
|
24
24
|
* - pg_re_throw
|
25
25
|
* - EmitErrorReport
|
26
26
|
* - emit_log_hook
|
27
|
+
* - saved_timeval_set
|
28
|
+
* - formatted_log_time
|
27
29
|
* - send_message_to_server_log
|
28
30
|
* - send_message_to_frontend
|
29
31
|
* - pgwin32_dispatch_queued_signals
|
30
32
|
* - set_stack_entry_location
|
31
33
|
* - matches_backtrace_functions
|
32
|
-
* -
|
34
|
+
* - backtrace_function_list
|
33
35
|
* - set_backtrace
|
34
36
|
* - FreeErrorDataContents
|
35
37
|
* - geterrcode
|
@@ -96,7 +98,7 @@
|
|
96
98
|
* overflow.)
|
97
99
|
*
|
98
100
|
*
|
99
|
-
* Portions Copyright (c) 1996-
|
101
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
100
102
|
* Portions Copyright (c) 1994, Regents of the University of California
|
101
103
|
*
|
102
104
|
*
|
@@ -119,13 +121,12 @@
|
|
119
121
|
#include <execinfo.h>
|
120
122
|
#endif
|
121
123
|
|
122
|
-
#include "access/transam.h"
|
123
124
|
#include "access/xact.h"
|
124
125
|
#include "libpq/libpq.h"
|
125
126
|
#include "libpq/pqformat.h"
|
126
127
|
#include "mb/pg_wchar.h"
|
127
|
-
#include "nodes/miscnodes.h"
|
128
128
|
#include "miscadmin.h"
|
129
|
+
#include "nodes/miscnodes.h"
|
129
130
|
#include "pgstat.h"
|
130
131
|
#include "postmaster/bgworker.h"
|
131
132
|
#include "postmaster/postmaster.h"
|
@@ -171,8 +172,8 @@ __thread emit_log_hook_type emit_log_hook = NULL;
|
|
171
172
|
|
172
173
|
|
173
174
|
|
174
|
-
/* Processed form of
|
175
|
-
static __thread char *
|
175
|
+
/* Processed form of backtrace_functions GUC */
|
176
|
+
static __thread char *backtrace_function_list;
|
176
177
|
|
177
178
|
|
178
179
|
#ifdef HAVE_SYSLOG
|
@@ -215,13 +216,15 @@ static __thread int recursion_depth = 0;
|
|
215
216
|
|
216
217
|
/*
|
217
218
|
* Saved timeval and buffers for formatted timestamps that might be used by
|
218
|
-
*
|
219
|
+
* log_line_prefix, csv logs and JSON logs.
|
219
220
|
*/
|
220
221
|
|
222
|
+
static __thread bool saved_timeval_set = false;
|
221
223
|
|
222
224
|
|
223
225
|
#define FORMATTED_TS_LEN 128
|
224
226
|
|
227
|
+
static __thread char formatted_log_time[FORMATTED_TS_LEN];
|
225
228
|
|
226
229
|
|
227
230
|
|
@@ -855,13 +858,13 @@ matches_backtrace_functions(const char *funcname)
|
|
855
858
|
{
|
856
859
|
const char *p;
|
857
860
|
|
858
|
-
if (!
|
861
|
+
if (!backtrace_function_list || funcname == NULL || funcname[0] == '\0')
|
859
862
|
return false;
|
860
863
|
|
861
|
-
p =
|
864
|
+
p = backtrace_function_list;
|
862
865
|
for (;;)
|
863
866
|
{
|
864
|
-
if (*p == '\0') /* end of
|
867
|
+
if (*p == '\0') /* end of backtrace_function_list */
|
865
868
|
break;
|
866
869
|
|
867
870
|
if (strcmp(funcname, p) == 0)
|
@@ -903,8 +906,6 @@ errcode(int sqlerrcode)
|
|
903
906
|
*/
|
904
907
|
#ifdef EROFS
|
905
908
|
#endif
|
906
|
-
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST) /* same code on AIX */
|
907
|
-
#endif
|
908
909
|
|
909
910
|
/*
|
910
911
|
* errcode_for_socket_access --- add SQLSTATE error code to the current error
|
@@ -1365,6 +1366,14 @@ geterrcode(void)
|
|
1365
1366
|
return edata->sqlerrcode;
|
1366
1367
|
}
|
1367
1368
|
|
1369
|
+
/*
|
1370
|
+
* geterrlevel --- return the currently set error level
|
1371
|
+
*
|
1372
|
+
* This is only intended for use in error callback subroutines, since there
|
1373
|
+
* is no other place outside elog.c where the concept is meaningful.
|
1374
|
+
*/
|
1375
|
+
|
1376
|
+
|
1368
1377
|
/*
|
1369
1378
|
* geterrposition --- return the currently set error position (0 if none)
|
1370
1379
|
*
|
@@ -1443,6 +1452,14 @@ EmitErrorReport(void)
|
|
1443
1452
|
CHECK_STACK_DEPTH();
|
1444
1453
|
oldcontext = MemoryContextSwitchTo(edata->assoc_context);
|
1445
1454
|
|
1455
|
+
/*
|
1456
|
+
* Reset the formatted timestamp fields before emitting any logs. This
|
1457
|
+
* includes all the log destinations and emit_log_hook, as the latter
|
1458
|
+
* could use log_line_prefix or the formatted timestamps.
|
1459
|
+
*/
|
1460
|
+
saved_timeval_set = false;
|
1461
|
+
formatted_log_time[0] = '\0';
|
1462
|
+
|
1446
1463
|
/*
|
1447
1464
|
* Call hook before sending message to log. The hook function is allowed
|
1448
1465
|
* to turn off edata->output_to_server, so we must recheck that afterward.
|
@@ -1502,7 +1519,21 @@ CopyErrorData(void)
|
|
1502
1519
|
newedata = (ErrorData *) palloc(sizeof(ErrorData));
|
1503
1520
|
memcpy(newedata, edata, sizeof(ErrorData));
|
1504
1521
|
|
1505
|
-
/*
|
1522
|
+
/*
|
1523
|
+
* Make copies of separately-allocated strings. Note that we copy even
|
1524
|
+
* theoretically-constant strings such as filename. This is because those
|
1525
|
+
* could point into JIT-created code segments that might get unloaded at
|
1526
|
+
* transaction cleanup. In some cases we need the copied ErrorData to
|
1527
|
+
* survive transaction boundaries, so we'd better copy those strings too.
|
1528
|
+
*/
|
1529
|
+
if (newedata->filename)
|
1530
|
+
newedata->filename = pstrdup(newedata->filename);
|
1531
|
+
if (newedata->funcname)
|
1532
|
+
newedata->funcname = pstrdup(newedata->funcname);
|
1533
|
+
if (newedata->domain)
|
1534
|
+
newedata->domain = pstrdup(newedata->domain);
|
1535
|
+
if (newedata->context_domain)
|
1536
|
+
newedata->context_domain = pstrdup(newedata->context_domain);
|
1506
1537
|
if (newedata->message)
|
1507
1538
|
newedata->message = pstrdup(newedata->message);
|
1508
1539
|
if (newedata->detail)
|
@@ -1515,6 +1546,8 @@ CopyErrorData(void)
|
|
1515
1546
|
newedata->context = pstrdup(newedata->context);
|
1516
1547
|
if (newedata->backtrace)
|
1517
1548
|
newedata->backtrace = pstrdup(newedata->backtrace);
|
1549
|
+
if (newedata->message_id)
|
1550
|
+
newedata->message_id = pstrdup(newedata->message_id);
|
1518
1551
|
if (newedata->schema_name)
|
1519
1552
|
newedata->schema_name = pstrdup(newedata->schema_name);
|
1520
1553
|
if (newedata->table_name)
|
@@ -1596,7 +1629,7 @@ FlushErrorState(void)
|
|
1596
1629
|
errordata_stack_depth = -1;
|
1597
1630
|
recursion_depth = 0;
|
1598
1631
|
/* Delete all data in ErrorContext */
|
1599
|
-
|
1632
|
+
MemoryContextReset(ErrorContext);
|
1600
1633
|
}
|
1601
1634
|
|
1602
1635
|
/*
|
@@ -1906,34 +1939,6 @@ write_stderr(const char *fmt,...)
|
|
1906
1939
|
}
|
1907
1940
|
|
1908
1941
|
|
1909
|
-
|
1910
|
-
|
1911
|
-
/*
|
1912
|
-
* Write a message to STDERR using only async-signal-safe functions. This can
|
1913
|
-
* be used to safely emit a message from a signal handler.
|
1914
|
-
*
|
1915
|
-
* TODO: It is likely possible to safely do a limited amount of string
|
1916
|
-
* interpolation (e.g., %s and %d), but that is not presently supported.
|
1917
|
-
*/
|
1918
|
-
|
1919
|
-
|
1920
|
-
|
1921
|
-
/*
|
1922
|
-
* Adjust the level of a recovery-related message per trace_recovery_messages.
|
1923
|
-
*
|
1924
|
-
* The argument is the default log level of the message, eg, DEBUG2. (This
|
1925
|
-
* should only be applied to DEBUGn log messages, otherwise it's a no-op.)
|
1926
|
-
* If the level is >= trace_recovery_messages, we return LOG, causing the
|
1927
|
-
* message to be logged unconditionally (for most settings of
|
1928
|
-
* log_min_messages). Otherwise, we return the argument unchanged.
|
1929
|
-
* The message will then be shown based on the setting of log_min_messages.
|
1930
|
-
*
|
1931
|
-
* Intention is to keep this for at least the whole of the 9.0 production
|
1932
|
-
* release, so we can more easily diagnose production problems in the field.
|
1933
|
-
* It should go away eventually, though, because it's an ugly and
|
1934
|
-
* hard-to-explain kluge.
|
1935
|
-
*/
|
1936
|
-
|
1937
1942
|
#ifdef WIN32
|
1938
1943
|
__thread volatile int pg_signal_queue;
|
1939
1944
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
* fmgr.c
|
10
10
|
* The Postgres function manager.
|
11
11
|
*
|
12
|
-
* Portions Copyright (c) 1996-
|
12
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
13
13
|
* Portions Copyright (c) 1994, Regents of the University of California
|
14
14
|
*
|
15
15
|
*
|
@@ -210,7 +210,9 @@ struct fmgr_security_definer_cache
|
|
210
210
|
{
|
211
211
|
FmgrInfo flinfo; /* lookup info for target function */
|
212
212
|
Oid userid; /* userid to set, or InvalidOid */
|
213
|
-
|
213
|
+
List *configNames; /* GUC names to set, or NIL */
|
214
|
+
List *configHandles; /* GUC handles to set, or NIL */
|
215
|
+
List *configValues; /* GUC values to set, or NIL */
|
214
216
|
Datum arg; /* passthrough argument for plugin modules */
|
215
217
|
};
|
216
218
|
|
@@ -13,7 +13,7 @@
|
|
13
13
|
* globals.c
|
14
14
|
* global variable declarations
|
15
15
|
*
|
16
|
-
* Portions Copyright (c) 1996-
|
16
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
17
17
|
* Portions Copyright (c) 1994, Regents of the University of California
|
18
18
|
*
|
19
19
|
*
|
@@ -32,7 +32,7 @@
|
|
32
32
|
#include "libpq/libpq-be.h"
|
33
33
|
#include "libpq/pqcomm.h"
|
34
34
|
#include "miscadmin.h"
|
35
|
-
#include "storage/
|
35
|
+
#include "storage/procnumber.h"
|
36
36
|
|
37
37
|
|
38
38
|
|
@@ -48,6 +48,7 @@ __thread volatile sig_atomic_t InterruptPending = false;
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
+
|
51
52
|
__thread volatile uint32 InterruptHoldoffCount = 0;
|
52
53
|
|
53
54
|
__thread volatile uint32 QueryCancelHoldoffCount = 0;
|
@@ -62,6 +63,7 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
62
63
|
|
63
64
|
|
64
65
|
|
66
|
+
|
65
67
|
/*
|
66
68
|
* MyLatch points to the latch that should be used for signal handling by the
|
67
69
|
* current process. It will either point to a process local latch if the
|
@@ -104,6 +106,8 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
104
106
|
|
105
107
|
|
106
108
|
|
109
|
+
|
110
|
+
|
107
111
|
/*
|
108
112
|
* DatabasePath is the path (relative to DataDir) of my database's
|
109
113
|
* primary directory, ie, its directory in the default tablespace.
|
@@ -127,7 +131,6 @@ __thread volatile uint32 CritSectionCount = 0;
|
|
127
131
|
|
128
132
|
|
129
133
|
|
130
|
-
|
131
134
|
__thread bool ExitOnAnyError = false;
|
132
135
|
|
133
136
|
|
@@ -169,3 +172,12 @@ __thread bool ExitOnAnyError = false;
|
|
169
172
|
|
170
173
|
/* working state for vacuum */
|
171
174
|
|
175
|
+
|
176
|
+
/* configurable SLRU buffer sizes */
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
@@ -47,7 +47,7 @@
|
|
47
47
|
* the result is validly encoded according to the destination encoding.
|
48
48
|
*
|
49
49
|
*
|
50
|
-
* Portions Copyright (c) 1996-
|
50
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
51
51
|
* Portions Copyright (c) 1994, Regents of the University of California
|
52
52
|
*
|
53
53
|
*
|
@@ -61,9 +61,8 @@
|
|
61
61
|
#include "access/xact.h"
|
62
62
|
#include "catalog/namespace.h"
|
63
63
|
#include "mb/pg_wchar.h"
|
64
|
-
#include "utils/
|
64
|
+
#include "utils/fmgrprotos.h"
|
65
65
|
#include "utils/memutils.h"
|
66
|
-
#include "utils/syscache.h"
|
67
66
|
#include "varatt.h"
|
68
67
|
|
69
68
|
/*
|
@@ -496,24 +495,18 @@ static bool
|
|
496
495
|
raw_pg_bind_textdomain_codeset(const char *domainname, int encoding)
|
497
496
|
{
|
498
497
|
bool elog_ok = (CurrentMemoryContext != NULL);
|
499
|
-
int i;
|
500
498
|
|
501
|
-
|
502
|
-
|
503
|
-
if (pg_enc2gettext_tbl[i].encoding == encoding)
|
504
|
-
{
|
505
|
-
if (bind_textdomain_codeset(domainname,
|
506
|
-
pg_enc2gettext_tbl[i].name) != NULL)
|
507
|
-
return true;
|
499
|
+
if (!PG_VALID_ENCODING(encoding) || pg_enc2gettext_tbl[encoding] == NULL)
|
500
|
+
return false;
|
508
501
|
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
write_stderr("bind_textdomain_codeset failed");
|
502
|
+
if (bind_textdomain_codeset(domainname,
|
503
|
+
pg_enc2gettext_tbl[encoding]) != NULL)
|
504
|
+
return true;
|
513
505
|
|
514
|
-
|
515
|
-
|
516
|
-
|
506
|
+
if (elog_ok)
|
507
|
+
elog(LOG, "bind_textdomain_codeset failed");
|
508
|
+
else
|
509
|
+
write_stderr("bind_textdomain_codeset failed");
|
517
510
|
|
518
511
|
return false;
|
519
512
|
}
|
@@ -18,7 +18,7 @@
|
|
18
18
|
* their fields are intended to be constant, some fields change at runtime.
|
19
19
|
*
|
20
20
|
*
|
21
|
-
* Copyright (c) 2000-
|
21
|
+
* Copyright (c) 2000-2024, PostgreSQL Global Development Group
|
22
22
|
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
23
23
|
*
|
24
24
|
* IDENTIFICATION
|
@@ -36,6 +36,7 @@
|
|
36
36
|
|
37
37
|
#include "access/commit_ts.h"
|
38
38
|
#include "access/gin.h"
|
39
|
+
#include "access/slru.h"
|
39
40
|
#include "access/toast_compression.h"
|
40
41
|
#include "access/twophase.h"
|
41
42
|
#include "access/xlog_internal.h"
|
@@ -45,10 +46,12 @@
|
|
45
46
|
#include "catalog/namespace.h"
|
46
47
|
#include "catalog/storage.h"
|
47
48
|
#include "commands/async.h"
|
49
|
+
#include "commands/event_trigger.h"
|
48
50
|
#include "commands/tablespace.h"
|
49
51
|
#include "commands/trigger.h"
|
50
52
|
#include "commands/user.h"
|
51
53
|
#include "commands/vacuum.h"
|
54
|
+
#include "common/file_utils.h"
|
52
55
|
#include "common/scram-common.h"
|
53
56
|
#include "jit/jit.h"
|
54
57
|
#include "libpq/auth.h"
|
@@ -69,9 +72,11 @@
|
|
69
72
|
#include "postmaster/postmaster.h"
|
70
73
|
#include "postmaster/startup.h"
|
71
74
|
#include "postmaster/syslogger.h"
|
75
|
+
#include "postmaster/walsummarizer.h"
|
72
76
|
#include "postmaster/walwriter.h"
|
73
77
|
#include "replication/logicallauncher.h"
|
74
78
|
#include "replication/slot.h"
|
79
|
+
#include "replication/slotsync.h"
|
75
80
|
#include "replication/syncrep.h"
|
76
81
|
#include "storage/bufmgr.h"
|
77
82
|
#include "storage/large_object.h"
|
@@ -85,11 +90,11 @@
|
|
85
90
|
#include "utils/float.h"
|
86
91
|
#include "utils/guc_hooks.h"
|
87
92
|
#include "utils/guc_tables.h"
|
93
|
+
#include "utils/inval.h"
|
88
94
|
#include "utils/memutils.h"
|
89
95
|
#include "utils/pg_locale.h"
|
90
|
-
#include "utils/
|
96
|
+
#include "utils/plancache.h"
|
91
97
|
#include "utils/ps_status.h"
|
92
|
-
#include "utils/inval.h"
|
93
98
|
#include "utils/xml.h"
|
94
99
|
|
95
100
|
/* This value is normally passed in from the Makefile */
|
@@ -99,6 +104,7 @@
|
|
99
104
|
|
100
105
|
/* XXX these should appear in other modules' header files */
|
101
106
|
extern bool Log_disconnections;
|
107
|
+
extern bool Trace_connection_negotiation;
|
102
108
|
extern int CommitDelay;
|
103
109
|
extern int CommitSiblings;
|
104
110
|
extern char *default_tablespace;
|
@@ -223,6 +229,8 @@ StaticAssertDecl(lengthof(xmloption_options) == (XMLOPTION_CONTENT + 2),
|
|
223
229
|
|
224
230
|
|
225
231
|
|
232
|
+
|
233
|
+
|
226
234
|
StaticAssertDecl(lengthof(ssl_protocol_versions_info) == (PG_TLS1_3_VERSION + 2),
|
227
235
|
"array length mismatch");
|
228
236
|
|
@@ -250,7 +258,7 @@ StaticAssertDecl(lengthof(ssl_protocol_versions_info) == (PG_TLS1_3_VERSION + 2)
|
|
250
258
|
extern const struct config_enum_entry wal_level_options[];
|
251
259
|
extern const struct config_enum_entry archive_mode_options[];
|
252
260
|
extern const struct config_enum_entry recovery_target_action_options[];
|
253
|
-
extern const struct config_enum_entry
|
261
|
+
extern const struct config_enum_entry wal_sync_method_options[];
|
254
262
|
extern const struct config_enum_entry dynamic_shared_memory_options[];
|
255
263
|
|
256
264
|
/*
|
@@ -265,6 +273,7 @@ extern const struct config_enum_entry dynamic_shared_memory_options[];
|
|
265
273
|
|
266
274
|
|
267
275
|
|
276
|
+
|
268
277
|
/* this is sort of all three above
|
269
278
|
* together */
|
270
279
|
|
@@ -292,7 +301,6 @@ __thread int log_min_messages = WARNING;
|
|
292
301
|
|
293
302
|
|
294
303
|
|
295
|
-
|
296
304
|
__thread char *backtrace_functions;
|
297
305
|
|
298
306
|
|
@@ -328,6 +336,7 @@ __thread char *backtrace_functions;
|
|
328
336
|
|
329
337
|
|
330
338
|
|
339
|
+
|
331
340
|
/*
|
332
341
|
* These variables are all dummies that don't do anything, except in some
|
333
342
|
* cases provide the value for SHOW to display. The real state is elsewhere
|
@@ -342,6 +351,7 @@ __thread char *backtrace_functions;
|
|
342
351
|
|
343
352
|
|
344
353
|
|
354
|
+
|
345
355
|
#ifdef HAVE_SYSLOG
|
346
356
|
#define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
|
347
357
|
#else
|
@@ -410,7 +420,7 @@ StaticAssertDecl(lengthof(GucSource_Names) == (PGC_S_SESSION + 1),
|
|
410
420
|
*/
|
411
421
|
|
412
422
|
|
413
|
-
StaticAssertDecl(lengthof(config_group_names) == (DEVELOPER_OPTIONS +
|
423
|
+
StaticAssertDecl(lengthof(config_group_names) == (DEVELOPER_OPTIONS + 1),
|
414
424
|
"array length mismatch");
|
415
425
|
|
416
426
|
/*
|
@@ -17,7 +17,7 @@
|
|
17
17
|
* operations such as pfree() and repalloc() to work correctly on a memory
|
18
18
|
* chunk that was allocated by palloc_aligned().
|
19
19
|
*
|
20
|
-
* Portions Copyright (c) 2022-
|
20
|
+
* Portions Copyright (c) 2022-2024, PostgreSQL Global Development Group
|
21
21
|
*
|
22
22
|
* IDENTIFICATION
|
23
23
|
* src/backend/utils/mmgr/alignedalloc.c
|
@@ -66,7 +66,7 @@ AlignedAllocFree(void *pointer)
|
|
66
66
|
* memory will be uninitialized.
|
67
67
|
*/
|
68
68
|
void *
|
69
|
-
AlignedAllocRealloc(void *pointer, Size size)
|
69
|
+
AlignedAllocRealloc(void *pointer, Size size, int flags)
|
70
70
|
{
|
71
71
|
MemoryChunk *redirchunk = PointerGetMemoryChunk(pointer);
|
72
72
|
Size alignto;
|
@@ -106,14 +106,17 @@ AlignedAllocRealloc(void *pointer, Size size)
|
|
106
106
|
#endif
|
107
107
|
|
108
108
|
ctx = GetMemoryChunkContext(unaligned);
|
109
|
-
newptr = MemoryContextAllocAligned(ctx, size, alignto,
|
109
|
+
newptr = MemoryContextAllocAligned(ctx, size, alignto, flags);
|
110
110
|
|
111
111
|
/*
|
112
112
|
* We may memcpy beyond the end of the original allocation request size,
|
113
113
|
* so we must mark the entire allocation as defined.
|
114
114
|
*/
|
115
|
-
|
116
|
-
|
115
|
+
if (likely(newptr != NULL))
|
116
|
+
{
|
117
|
+
VALGRIND_MAKE_MEM_DEFINED(pointer, old_size);
|
118
|
+
memcpy(newptr, pointer, Min(size, old_size));
|
119
|
+
}
|
117
120
|
pfree(unaligned);
|
118
121
|
|
119
122
|
return newptr;
|