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
@@ -3,7 +3,7 @@
|
|
3
3
|
* simd.h
|
4
4
|
* Support for platform-specific vector operations.
|
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/port/simd.h
|
@@ -79,6 +79,7 @@ static inline bool vector8_has_le(const Vector8 v, const uint8 c);
|
|
79
79
|
static inline bool vector8_is_highbit_set(const Vector8 v);
|
80
80
|
#ifndef USE_NO_SIMD
|
81
81
|
static inline bool vector32_is_highbit_set(const Vector32 v);
|
82
|
+
static inline uint32 vector8_highbit_mask(const Vector8 v);
|
82
83
|
#endif
|
83
84
|
|
84
85
|
/* arithmetic operations */
|
@@ -96,6 +97,7 @@ static inline Vector8 vector8_ssub(const Vector8 v1, const Vector8 v2);
|
|
96
97
|
*/
|
97
98
|
#ifndef USE_NO_SIMD
|
98
99
|
static inline Vector8 vector8_eq(const Vector8 v1, const Vector8 v2);
|
100
|
+
static inline Vector8 vector8_min(const Vector8 v1, const Vector8 v2);
|
99
101
|
static inline Vector32 vector32_eq(const Vector32 v1, const Vector32 v2);
|
100
102
|
#endif
|
101
103
|
|
@@ -299,6 +301,36 @@ vector32_is_highbit_set(const Vector32 v)
|
|
299
301
|
}
|
300
302
|
#endif /* ! USE_NO_SIMD */
|
301
303
|
|
304
|
+
/*
|
305
|
+
* Return a bitmask formed from the high-bit of each element.
|
306
|
+
*/
|
307
|
+
#ifndef USE_NO_SIMD
|
308
|
+
static inline uint32
|
309
|
+
vector8_highbit_mask(const Vector8 v)
|
310
|
+
{
|
311
|
+
#ifdef USE_SSE2
|
312
|
+
return (uint32) _mm_movemask_epi8(v);
|
313
|
+
#elif defined(USE_NEON)
|
314
|
+
/*
|
315
|
+
* Note: It would be faster to use vget_lane_u64 and vshrn_n_u16, but that
|
316
|
+
* returns a uint64, making it inconvenient to combine mask values from
|
317
|
+
* multiple vectors.
|
318
|
+
*/
|
319
|
+
static const uint8 mask[16] = {
|
320
|
+
1 << 0, 1 << 1, 1 << 2, 1 << 3,
|
321
|
+
1 << 4, 1 << 5, 1 << 6, 1 << 7,
|
322
|
+
1 << 0, 1 << 1, 1 << 2, 1 << 3,
|
323
|
+
1 << 4, 1 << 5, 1 << 6, 1 << 7,
|
324
|
+
};
|
325
|
+
|
326
|
+
uint8x16_t masked = vandq_u8(vld1q_u8(mask), (uint8x16_t) vshrq_n_s8((int8x16_t) v, 7));
|
327
|
+
uint8x16_t maskedhi = vextq_u8(masked, masked, 8);
|
328
|
+
|
329
|
+
return (uint32) vaddvq_u16((uint16x8_t) vzip1q_u8(masked, maskedhi));
|
330
|
+
#endif
|
331
|
+
}
|
332
|
+
#endif /* ! USE_NO_SIMD */
|
333
|
+
|
302
334
|
/*
|
303
335
|
* Return the bitwise OR of the inputs
|
304
336
|
*/
|
@@ -372,4 +404,19 @@ vector32_eq(const Vector32 v1, const Vector32 v2)
|
|
372
404
|
}
|
373
405
|
#endif /* ! USE_NO_SIMD */
|
374
406
|
|
407
|
+
/*
|
408
|
+
* Given two vectors, return a vector with the minimum element of each.
|
409
|
+
*/
|
410
|
+
#ifndef USE_NO_SIMD
|
411
|
+
static inline Vector8
|
412
|
+
vector8_min(const Vector8 v1, const Vector8 v2)
|
413
|
+
{
|
414
|
+
#ifdef USE_SSE2
|
415
|
+
return _mm_min_epu8(v1, v2);
|
416
|
+
#elif defined(USE_NEON)
|
417
|
+
return vminq_u8(v1, v2);
|
418
|
+
#endif
|
419
|
+
}
|
420
|
+
#endif /* ! USE_NO_SIMD */
|
421
|
+
|
375
422
|
#endif /* SIMD_H */
|
@@ -23,4 +23,12 @@
|
|
23
23
|
#define ERROR PGERROR
|
24
24
|
#endif
|
25
25
|
|
26
|
+
/*
|
27
|
+
* We don't use the Windows gai_strerror[A] function because it is not
|
28
|
+
* thread-safe. We define our own in src/port/win32gai_strerror.c.
|
29
|
+
*/
|
30
|
+
#undef gai_strerror
|
31
|
+
|
32
|
+
extern const char *gai_strerror(int ecode);
|
33
|
+
|
26
34
|
#endif /* WIN32_SYS_SOCKET_H */
|
@@ -6,7 +6,7 @@
|
|
6
6
|
* Note this is read in MinGW as well as native Windows builds,
|
7
7
|
* but not in Cygwin builds.
|
8
8
|
*
|
9
|
-
* Portions Copyright (c) 1996-
|
9
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
10
10
|
* Portions Copyright (c) 1994, Regents of the University of California
|
11
11
|
*
|
12
12
|
* src/include/port/win32_port.h
|
@@ -79,19 +79,9 @@
|
|
79
79
|
/* Must be here to avoid conflicting with prototype in windows.h */
|
80
80
|
#define mkdir(a,b) mkdir(a)
|
81
81
|
|
82
|
-
#define ftruncate(a,b) chsize(a,b)
|
83
|
-
|
84
82
|
/* Windows doesn't have fsync() as such, use _commit() */
|
85
83
|
#define fsync(fd) _commit(fd)
|
86
84
|
|
87
|
-
/*
|
88
|
-
* For historical reasons, we allow setting wal_sync_method to
|
89
|
-
* fsync_writethrough on Windows, even though it's really identical to fsync
|
90
|
-
* (both code paths wind up at _commit()).
|
91
|
-
*/
|
92
|
-
#define HAVE_FSYNC_WRITETHROUGH
|
93
|
-
#define FSYNC_WRITETHROUGH_IS_FSYNC
|
94
|
-
|
95
85
|
#define USES_WINSOCK
|
96
86
|
|
97
87
|
/*
|
@@ -455,8 +445,6 @@ extern int _pglstat64(const char *name, struct stat *buf);
|
|
455
445
|
#define strcoll_l _strcoll_l
|
456
446
|
#define strxfrm_l _strxfrm_l
|
457
447
|
#define wcscoll_l _wcscoll_l
|
458
|
-
#define wcstombs_l _wcstombs_l
|
459
|
-
#define mbstowcs_l _mbstowcs_l
|
460
448
|
|
461
449
|
/*
|
462
450
|
* Versions of libintl >= 0.18? try to replace setlocale() with a macro
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* port.h
|
4
4
|
* Header for src/port/ compatibility functions.
|
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/port.h
|
@@ -53,6 +53,7 @@ extern char *first_path_var_separator(const char *pathlist);
|
|
53
53
|
extern void join_path_components(char *ret_path,
|
54
54
|
const char *head, const char *tail);
|
55
55
|
extern void canonicalize_path(char *path);
|
56
|
+
extern void canonicalize_path_enc(char *path, int encoding);
|
56
57
|
extern void make_native_path(char *filename);
|
57
58
|
extern void cleanup_path(char *path);
|
58
59
|
extern bool path_contains_parent_reference(const char *path);
|
@@ -137,7 +138,7 @@ extern int validate_exec(const char *path);
|
|
137
138
|
extern int find_my_exec(const char *argv0, char *retpath);
|
138
139
|
extern int find_other_exec(const char *argv0, const char *target,
|
139
140
|
const char *versionstr, char *retpath);
|
140
|
-
extern char *pipe_read_line(char *cmd
|
141
|
+
extern char *pipe_read_line(char *cmd);
|
141
142
|
|
142
143
|
/* Doesn't belong here, but this is used with find_other_exec(), so... */
|
143
144
|
#define PG_BACKEND_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n"
|
@@ -306,6 +307,33 @@ extern bool rmtree(const char *path, bool rmtopdir);
|
|
306
307
|
|
307
308
|
#if defined(WIN32) && !defined(__CYGWIN__)
|
308
309
|
|
310
|
+
/*
|
311
|
+
* We want the 64-bit variant of lseek().
|
312
|
+
*
|
313
|
+
* For Visual Studio, this must be after <io.h> to avoid messing up its
|
314
|
+
* lseek() and _lseeki64() function declarations.
|
315
|
+
*
|
316
|
+
* For MinGW there is already a macro, so we have to undefine it (depending on
|
317
|
+
* _FILE_OFFSET_BITS, it may point at its own lseek64, but we don't want to
|
318
|
+
* count on that being set).
|
319
|
+
*/
|
320
|
+
#undef lseek
|
321
|
+
#define lseek(a,b,c) _lseeki64((a),(b),(c))
|
322
|
+
|
323
|
+
/*
|
324
|
+
* We want the 64-bit variant of chsize(). It sets errno and also returns it,
|
325
|
+
* so convert non-zero result to -1 to match POSIX.
|
326
|
+
*
|
327
|
+
* Prevent MinGW from declaring functions, and undefine its macro before we
|
328
|
+
* define our own.
|
329
|
+
*/
|
330
|
+
#ifndef _MSC_VER
|
331
|
+
#define FTRUNCATE_DEFINED
|
332
|
+
#include <unistd.h>
|
333
|
+
#undef ftruncate
|
334
|
+
#endif
|
335
|
+
#define ftruncate(a,b) (_chsize_s((a),(b)) == 0 ? 0 : -1)
|
336
|
+
|
309
337
|
/*
|
310
338
|
* open() and fopen() replacements to allow deletion of open files and
|
311
339
|
* passing of other special options.
|
@@ -432,12 +460,16 @@ extern size_t strlcpy(char *dst, const char *src, size_t siz);
|
|
432
460
|
extern size_t strnlen(const char *str, size_t maxlen);
|
433
461
|
#endif
|
434
462
|
|
435
|
-
/*
|
463
|
+
/* port/user.c */
|
436
464
|
#ifndef WIN32
|
437
465
|
extern bool pg_get_user_name(uid_t user_id, char *buffer, size_t buflen);
|
438
466
|
extern bool pg_get_user_home_dir(uid_t user_id, char *buffer, size_t buflen);
|
439
467
|
#endif
|
440
468
|
|
469
|
+
/*
|
470
|
+
* Callers should use the qsort() macro defined below instead of calling
|
471
|
+
* pg_qsort() directly.
|
472
|
+
*/
|
441
473
|
extern void pg_qsort(void *base, size_t nel, size_t elsize,
|
442
474
|
int (*cmp) (const void *, const void *));
|
443
475
|
extern int pg_qsort_strcmp(const void *a, const void *b);
|
@@ -484,7 +516,10 @@ extern int pg_check_dir(const char *dir);
|
|
484
516
|
/* port/pgmkdirp.c */
|
485
517
|
extern int pg_mkdir_p(char *path, int omode);
|
486
518
|
|
487
|
-
/* port/pqsignal.c */
|
519
|
+
/* port/pqsignal.c (see also interfaces/libpq/legacy-pqsignal.c) */
|
520
|
+
#ifdef FRONTEND
|
521
|
+
#define pqsignal pqsignal_fe
|
522
|
+
#endif
|
488
523
|
typedef void (*pqsigfunc) (SIGNAL_ARGS);
|
489
524
|
extern pqsigfunc pqsignal(int signo, pqsigfunc func);
|
490
525
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* Client-side code should include postgres_fe.h instead.
|
8
8
|
*
|
9
9
|
*
|
10
|
-
* Portions Copyright (c) 1996-
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
11
11
|
* Portions Copyright (c) 1995, Regents of the University of California
|
12
12
|
*
|
13
13
|
* src/include/postgres.h
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* header file for integrated autovacuum daemon
|
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/postmaster/autovacuum.h
|
@@ -22,7 +22,7 @@
|
|
22
22
|
*/
|
23
23
|
typedef enum
|
24
24
|
{
|
25
|
-
AVW_BRINSummarizeRange
|
25
|
+
AVW_BRINSummarizeRange,
|
26
26
|
} AutoVacuumWorkItemType;
|
27
27
|
|
28
28
|
|
@@ -49,26 +49,15 @@ extern PGDLLIMPORT int Log_autovacuum_min_duration;
|
|
49
49
|
|
50
50
|
/* Status inquiry functions */
|
51
51
|
extern bool AutoVacuumingActive(void);
|
52
|
-
extern bool IsAutoVacuumLauncherProcess(void);
|
53
|
-
extern bool IsAutoVacuumWorkerProcess(void);
|
54
52
|
|
55
|
-
|
56
|
-
(IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())
|
57
|
-
|
58
|
-
/* Functions to start autovacuum process, called from postmaster */
|
53
|
+
/* called from postmaster at server startup */
|
59
54
|
extern void autovac_init(void);
|
60
|
-
extern int StartAutoVacLauncher(void);
|
61
|
-
extern int StartAutoVacWorker(void);
|
62
55
|
|
63
56
|
/* called from postmaster when a worker could not be forked */
|
64
57
|
extern void AutoVacWorkerFailed(void);
|
65
58
|
|
66
|
-
|
67
|
-
extern void
|
68
|
-
extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
|
69
|
-
extern void AutovacuumWorkerIAm(void);
|
70
|
-
extern void AutovacuumLauncherIAm(void);
|
71
|
-
#endif
|
59
|
+
extern void AutoVacLauncherMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
60
|
+
extern void AutoVacWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
72
61
|
|
73
62
|
extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,
|
74
63
|
Oid relationId, BlockNumber blkno);
|
@@ -31,7 +31,7 @@
|
|
31
31
|
* different) code.
|
32
32
|
*
|
33
33
|
*
|
34
|
-
* Portions Copyright (c) 1996-
|
34
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
35
35
|
* Portions Copyright (c) 1994, Regents of the University of California
|
36
36
|
*
|
37
37
|
* IDENTIFICATION
|
@@ -78,7 +78,7 @@ typedef enum
|
|
78
78
|
{
|
79
79
|
BgWorkerStart_PostmasterStart,
|
80
80
|
BgWorkerStart_ConsistentState,
|
81
|
-
BgWorkerStart_RecoveryFinished
|
81
|
+
BgWorkerStart_RecoveryFinished,
|
82
82
|
} BgWorkerStartTime;
|
83
83
|
|
84
84
|
#define BGW_DEFAULT_RESTART_INTERVAL 60
|
@@ -93,7 +93,7 @@ typedef struct BackgroundWorker
|
|
93
93
|
int bgw_flags;
|
94
94
|
BgWorkerStartTime bgw_start_time;
|
95
95
|
int bgw_restart_time; /* in seconds, or BGW_NEVER_RESTART */
|
96
|
-
char bgw_library_name[
|
96
|
+
char bgw_library_name[MAXPGPATH];
|
97
97
|
char bgw_function_name[BGW_MAXLEN];
|
98
98
|
Datum bgw_main_arg;
|
99
99
|
char bgw_extra[BGW_EXTRALEN];
|
@@ -105,7 +105,7 @@ typedef enum BgwHandleStatus
|
|
105
105
|
BGWH_STARTED, /* worker is running */
|
106
106
|
BGWH_NOT_YET_STARTED, /* worker hasn't been started yet */
|
107
107
|
BGWH_STOPPED, /* worker has exited */
|
108
|
-
BGWH_POSTMASTER_DIED /* postmaster died; worker status unclear */
|
108
|
+
BGWH_POSTMASTER_DIED, /* postmaster died; worker status unclear */
|
109
109
|
} BgwHandleStatus;
|
110
110
|
|
111
111
|
struct BackgroundWorkerHandle;
|
@@ -150,9 +150,11 @@ extern void BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, ui
|
|
150
150
|
* Flags to BackgroundWorkerInitializeConnection et al
|
151
151
|
*
|
152
152
|
*
|
153
|
-
* Allow bypassing datallowconn restrictions when connecting
|
153
|
+
* Allow bypassing datallowconn restrictions and login check when connecting
|
154
|
+
* to database
|
154
155
|
*/
|
155
|
-
#define BGWORKER_BYPASS_ALLOWCONN
|
156
|
+
#define BGWORKER_BYPASS_ALLOWCONN 0x0001
|
157
|
+
#define BGWORKER_BYPASS_ROLELOGINCHECK 0x0002
|
156
158
|
|
157
159
|
|
158
160
|
/* Block/unblock signals in a background worker process */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* bgworker_internals.h
|
3
3
|
* POSTGRES pluggable background workers internals
|
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
|
* IDENTIFICATION
|
@@ -54,11 +54,7 @@ extern void BackgroundWorkerStopNotifications(pid_t pid);
|
|
54
54
|
extern void ForgetUnstartedBackgroundWorkers(void);
|
55
55
|
extern void ResetBackgroundWorkerCrashTimes(void);
|
56
56
|
|
57
|
-
/*
|
58
|
-
extern void
|
59
|
-
|
60
|
-
#ifdef EXEC_BACKEND
|
61
|
-
extern BackgroundWorker *BackgroundWorkerEntry(int slotno);
|
62
|
-
#endif
|
57
|
+
/* Entry point for background worker processes */
|
58
|
+
extern void BackgroundWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
63
59
|
|
64
60
|
#endif /* BGWORKER_INTERNALS_H */
|
@@ -6,7 +6,7 @@
|
|
6
6
|
* The bgwriter process used to handle checkpointing duties too. Now
|
7
7
|
* there is a separate process, but we did not bother to split this header.
|
8
8
|
*
|
9
|
-
* Portions Copyright (c) 1996-
|
9
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
10
10
|
*
|
11
11
|
* src/include/postmaster/bgwriter.h
|
12
12
|
*
|
@@ -27,8 +27,8 @@ extern PGDLLIMPORT int CheckPointTimeout;
|
|
27
27
|
extern PGDLLIMPORT int CheckPointWarning;
|
28
28
|
extern PGDLLIMPORT double CheckPointCompletionTarget;
|
29
29
|
|
30
|
-
extern void BackgroundWriterMain(
|
31
|
-
extern void CheckpointerMain(
|
30
|
+
extern void BackgroundWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
31
|
+
extern void CheckpointerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
32
32
|
|
33
33
|
extern void RequestCheckpoint(int flags);
|
34
34
|
extern void CheckpointWriteDelay(int flags, double progress);
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* have their own implementations, but we provide a few generic things
|
8
8
|
* here to facilitate code reuse.
|
9
9
|
*
|
10
|
-
* Portions Copyright (c) 1996-
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
12
12
|
*
|
13
13
|
* IDENTIFICATION
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pgarch.h
|
4
4
|
* Exports from postmaster/pgarch.c.
|
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/postmaster/pgarch.h
|
@@ -29,7 +29,7 @@
|
|
29
29
|
extern Size PgArchShmemSize(void);
|
30
30
|
extern void PgArchShmemInit(void);
|
31
31
|
extern bool PgArchCanRestart(void);
|
32
|
-
extern void PgArchiverMain(
|
32
|
+
extern void PgArchiverMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
33
33
|
extern void PgArchWakeup(void);
|
34
34
|
extern void PgArchForceDirScan(void);
|
35
35
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* postmaster.h
|
4
4
|
* Exports from postmaster/postmaster.c.
|
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/postmaster/postmaster.h
|
@@ -13,6 +13,8 @@
|
|
13
13
|
#ifndef _POSTMASTER_H
|
14
14
|
#define _POSTMASTER_H
|
15
15
|
|
16
|
+
#include "miscadmin.h"
|
17
|
+
|
16
18
|
/* GUC options */
|
17
19
|
extern PGDLLIMPORT bool EnableSSL;
|
18
20
|
extern PGDLLIMPORT int SuperuserReservedConnections;
|
@@ -50,6 +52,8 @@ extern PGDLLIMPORT int postmaster_alive_fds[2];
|
|
50
52
|
|
51
53
|
extern PGDLLIMPORT const char *progname;
|
52
54
|
|
55
|
+
extern PGDLLIMPORT bool LoadedSSL;
|
56
|
+
|
53
57
|
extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
54
58
|
extern void ClosePostmasterPorts(bool am_syslogger);
|
55
59
|
extern void InitProcessGlobals(void);
|
@@ -58,12 +62,28 @@ extern int MaxLivePostmasterChildren(void);
|
|
58
62
|
|
59
63
|
extern bool PostmasterMarkPIDForWorkerNotify(int);
|
60
64
|
|
61
|
-
|
62
|
-
extern pid_t postmaster_forkexec(int argc, char *argv[]);
|
63
|
-
extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
65
|
+
extern void processCancelRequest(int backendPID, int32 cancelAuthCode);
|
64
66
|
|
67
|
+
#ifdef EXEC_BACKEND
|
65
68
|
extern Size ShmemBackendArraySize(void);
|
66
69
|
extern void ShmemBackendArrayAllocation(void);
|
70
|
+
|
71
|
+
#ifdef WIN32
|
72
|
+
extern void pgwin32_register_deadchild_callback(HANDLE procHandle, DWORD procId);
|
73
|
+
#endif
|
74
|
+
#endif
|
75
|
+
|
76
|
+
/* defined in globals.c */
|
77
|
+
extern PGDLLIMPORT struct ClientSocket *MyClientSocket;
|
78
|
+
|
79
|
+
/* prototypes for functions in launch_backend.c */
|
80
|
+
extern pid_t postmaster_child_launch(BackendType child_type,
|
81
|
+
char *startup_data,
|
82
|
+
size_t startup_data_len,
|
83
|
+
struct ClientSocket *client_sock);
|
84
|
+
const char *PostmasterChildName(BackendType child_type);
|
85
|
+
#ifdef EXEC_BACKEND
|
86
|
+
extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
67
87
|
#endif
|
68
88
|
|
69
89
|
/*
|
@@ -72,7 +92,7 @@ extern void ShmemBackendArrayAllocation(void);
|
|
72
92
|
* by using a 64bit state; but it's unlikely to be worthwhile as 2^18-1
|
73
93
|
* backends exceed currently realistic configurations. Even if that limitation
|
74
94
|
* were removed, we still could not a) exceed 2^23-1 because inval.c stores
|
75
|
-
* the
|
95
|
+
* the ProcNumber as a 3-byte signed integer, b) INT_MAX/4 because some places
|
76
96
|
* compute 4*MaxBackends without any overflow check. This is rechecked in the
|
77
97
|
* relevant GUC check hooks and in RegisterBackgroundWorker().
|
78
98
|
*/
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* startup.h
|
4
4
|
* Exports from postmaster/startup.c.
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
*
|
8
8
|
* src/include/postmaster/startup.h
|
9
9
|
*
|
@@ -26,7 +26,7 @@
|
|
26
26
|
extern PGDLLIMPORT int log_startup_progress_interval;
|
27
27
|
|
28
28
|
extern void HandleStartupProcInterrupts(void);
|
29
|
-
extern void StartupProcessMain(
|
29
|
+
extern void StartupProcessMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
30
30
|
extern void PreRestoreCommand(void);
|
31
31
|
extern void PostRestoreCommand(void);
|
32
32
|
extern bool IsPromoteSignaled(void);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* syslogger.h
|
4
4
|
* Exports from postmaster/syslogger.c.
|
5
5
|
*
|
6
|
-
* Copyright (c) 2004-
|
6
|
+
* Copyright (c) 2004-2024, PostgreSQL Global Development Group
|
7
7
|
*
|
8
8
|
* src/include/postmaster/syslogger.h
|
9
9
|
*
|
@@ -86,9 +86,7 @@ extern int SysLogger_Start(void);
|
|
86
86
|
|
87
87
|
extern void write_syslogger_file(const char *buffer, int count, int destination);
|
88
88
|
|
89
|
-
|
90
|
-
extern void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn();
|
91
|
-
#endif
|
89
|
+
extern void SysLoggerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
92
90
|
|
93
91
|
extern bool CheckLogrotateSignal(void);
|
94
92
|
extern void RemoveLogrotateSignalFiles(void);
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* walsummarizer.h
|
4
|
+
*
|
5
|
+
* Header file for background WAL summarization process.
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
*
|
9
|
+
* IDENTIFICATION
|
10
|
+
* src/include/postmaster/walsummarizer.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef WALSUMMARIZER_H
|
15
|
+
#define WALSUMMARIZER_H
|
16
|
+
|
17
|
+
#include "access/xlogdefs.h"
|
18
|
+
|
19
|
+
extern PGDLLIMPORT bool summarize_wal;
|
20
|
+
extern PGDLLIMPORT int wal_summary_keep_time;
|
21
|
+
|
22
|
+
extern Size WalSummarizerShmemSize(void);
|
23
|
+
extern void WalSummarizerShmemInit(void);
|
24
|
+
extern void WalSummarizerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
25
|
+
|
26
|
+
extern void GetWalSummarizerState(TimeLineID *summarized_tli,
|
27
|
+
XLogRecPtr *summarized_lsn,
|
28
|
+
XLogRecPtr *pending_lsn,
|
29
|
+
int *summarizer_pid);
|
30
|
+
extern XLogRecPtr GetOldestUnsummarizedLSN(TimeLineID *tli,
|
31
|
+
bool *lsn_is_exact);
|
32
|
+
extern void SetWalSummarizerLatch(void);
|
33
|
+
extern void WaitForWalSummarization(XLogRecPtr lsn);
|
34
|
+
|
35
|
+
#endif
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* walwriter.h
|
4
4
|
* Exports from postmaster/walwriter.c.
|
5
5
|
*
|
6
|
-
* Portions Copyright (c) 1996-
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
7
|
*
|
8
8
|
* src/include/postmaster/walwriter.h
|
9
9
|
*
|
@@ -18,6 +18,6 @@
|
|
18
18
|
extern PGDLLIMPORT int WalWriterDelay;
|
19
19
|
extern PGDLLIMPORT int WalWriterFlushAfter;
|
20
20
|
|
21
|
-
extern void WalWriterMain(
|
21
|
+
extern void WalWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
22
22
|
|
23
23
|
#endif /* _WALWRITER_H */
|