pg_query 5.1.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
- data/ext/pg_query/include/postgres/access/amapi.h +10 -3
- data/ext/pg_query/include/postgres/access/attmap.h +1 -1
- data/ext/pg_query/include/postgres/access/attnum.h +1 -1
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +2 -3
- data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
- data/ext/pg_query/include/postgres/access/detoast.h +1 -1
- data/ext/pg_query/include/postgres/access/genam.h +8 -4
- data/ext/pg_query/include/postgres/access/gin.h +1 -1
- data/ext/pg_query/include/postgres/access/htup.h +1 -1
- data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
- data/ext/pg_query/include/postgres/access/itup.h +3 -3
- data/ext/pg_query/include/postgres/access/parallel.h +1 -2
- data/ext/pg_query/include/postgres/access/printtup.h +1 -1
- data/ext/pg_query/include/postgres/access/relation.h +1 -1
- data/ext/pg_query/include/postgres/access/relscan.h +1 -1
- data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
- data/ext/pg_query/include/postgres/access/sdir.h +1 -1
- data/ext/pg_query/include/postgres/access/skey.h +1 -1
- data/ext/pg_query/include/postgres/access/slru.h +221 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
- data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
- data/ext/pg_query/include/postgres/access/table.h +1 -1
- data/ext/pg_query/include/postgres/access/tableam.h +33 -24
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
- data/ext/pg_query/include/postgres/access/transam.h +7 -7
- data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
- data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
- data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
- data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
- data/ext/pg_query/include/postgres/access/twophase.h +2 -2
- data/ext/pg_query/include/postgres/access/xact.h +5 -5
- data/ext/pg_query/include/postgres/access/xlog.h +20 -12
- data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
- data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
- data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
- data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
- data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
- data/ext/pg_query/include/postgres/c.h +31 -36
- data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
- data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
- data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
- data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
- data/ext/pg_query/include/postgres/catalog/index.h +22 -18
- data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
- data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
- data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +2 -6
- data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
- data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
- data/ext/pg_query/include/postgres/commands/event_trigger.h +5 -2
- data/ext/pg_query/include/postgres/commands/explain.h +19 -3
- data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
- data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
- data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
- data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
- data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
- data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
- data/ext/pg_query/include/postgres/common/int.h +79 -4
- data/ext/pg_query/include/postgres/common/keywords.h +1 -1
- data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
- data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
- data/ext/pg_query/include/postgres/common/relpath.h +4 -4
- data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
- data/ext/pg_query/include/postgres/common/sha2.h +1 -1
- data/ext/pg_query/include/postgres/common/string.h +1 -1
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/datatype/timestamp.h +28 -2
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
- data/ext/pg_query/include/postgres/executor/execdesc.h +1 -1
- data/ext/pg_query/include/postgres/executor/executor.h +6 -5
- data/ext/pg_query/include/postgres/executor/functions.h +2 -1
- data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
- data/ext/pg_query/include/postgres/executor/spi.h +2 -8
- data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
- data/ext/pg_query/include/postgres/fmgr.h +2 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
- data/ext/pg_query/include/postgres/funcapi.h +2 -2
- data/ext/pg_query/include/postgres/gram.h +871 -830
- data/ext/pg_query/include/postgres/gramparse.h +1 -1
- data/ext/pg_query/include/postgres/jit/jit.h +4 -3
- data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
- data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
- data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
- data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
- data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
- data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
- data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
- data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
- data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +29 -25
- data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
- data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
- data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +102 -82
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/postgres/miscadmin.h +64 -52
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
- data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -25
- data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
- data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
- data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
- data/ext/pg_query/include/postgres/nodes/params.h +1 -1
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +60 -9
- data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
- data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
- data/ext/pg_query/include/postgres/nodes/primnodes.h +344 -50
- data/ext/pg_query/include/postgres/nodes/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
- data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
- data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
- data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
- data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
- data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
- data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
- data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
- data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
- data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
- data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
- data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
- data/ext/pg_query/include/postgres/parser/parser.h +3 -3
- data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
- data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
- data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/postgres/pg_config.h +34 -34
- data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
- data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
- data/ext/pg_query/include/postgres/pg_trace.h +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +13 -11
- data/ext/pg_query/include/postgres/pgtime.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
- data/ext/pg_query/include/postgres/plpgsql.h +15 -13
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
- data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
- data/ext/pg_query/include/postgres/port/atomics.h +93 -6
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
- data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +48 -1
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +1 -11
- data/ext/pg_query/include/postgres/port.h +7 -3
- data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres/postgres.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
- data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
- data/ext/pg_query/include/postgres/regex/regex.h +92 -9
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
- data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
- data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
- data/ext/pg_query/include/postgres/replication/origin.h +1 -1
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +18 -28
- data/ext/pg_query/include/postgres/replication/slot.h +41 -5
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
- data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
- data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/postgres/storage/block.h +1 -1
- data/ext/pg_query/include/postgres/storage/buf.h +1 -1
- data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
- data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
- data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
- data/ext/pg_query/include/postgres/storage/fd.h +30 -13
- data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
- data/ext/pg_query/include/postgres/storage/item.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
- data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
- data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
- data/ext/pg_query/include/postgres/storage/latch.h +4 -2
- data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
- data/ext/pg_query/include/postgres/storage/lock.h +19 -19
- data/ext/pg_query/include/postgres/storage/lockdefs.h +1 -1
- data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
- data/ext/pg_query/include/postgres/storage/off.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
- data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
- data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
- data/ext/pg_query/include/postgres/storage/proc.h +48 -23
- data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
- data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
- data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
- data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
- data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
- data/ext/pg_query/include/postgres/storage/smgr.h +41 -27
- data/ext/pg_query/include/postgres/storage/spin.h +1 -1
- data/ext/pg_query/include/postgres/storage/standby.h +13 -3
- data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/postgres/storage/sync.h +4 -4
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
- data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
- data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
- data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
- data/ext/pg_query/include/postgres/utils/acl.h +19 -7
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/postgres/utils/array.h +1 -2
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
- data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
- data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
- data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
- data/ext/pg_query/include/postgres/utils/catcache.h +5 -6
- data/ext/pg_query/include/postgres/utils/date.h +1 -1
- data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
- data/ext/pg_query/include/postgres/utils/datum.h +1 -1
- data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
- data/ext/pg_query/include/postgres/utils/elog.h +3 -8
- data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/postgres/utils/float.h +1 -1
- data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/postgres/utils/guc.h +20 -6
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
- data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
- data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +1 -1
- data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
- data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
- data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
- data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
- data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
- data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
- data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
- data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +11 -17
- data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
- data/ext/pg_query/include/postgres/utils/portal.h +9 -9
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
- data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
- data/ext/pg_query/include/postgres/utils/rel.h +14 -15
- data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
- data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
- data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
- data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
- data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
- data/ext/pg_query/include/postgres/utils/syscache.h +2 -98
- data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
- data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
- data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
- data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
- data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
- data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
- data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +4 -4
- data/ext/pg_query/include/postgres/varatt.h +1 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +173 -28
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +1 -1
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +1 -1
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +38 -11
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +25 -11
- data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
- data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
- data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
@@ -6,7 +6,7 @@
|
|
6
6
|
* NOTE: for historical reasons, this does not correspond to pqcomm.c.
|
7
7
|
* pqcomm.c's routines are declared in libpq.h.
|
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/libpq/pqcomm.h
|
@@ -21,6 +21,12 @@
|
|
21
21
|
#include <netdb.h>
|
22
22
|
#include <netinet/in.h>
|
23
23
|
|
24
|
+
/*
|
25
|
+
* The definitions for the request/response codes are kept in a separate file
|
26
|
+
* for ease of use in third party programs.
|
27
|
+
*/
|
28
|
+
#include "libpq/protocol.h"
|
29
|
+
|
24
30
|
typedef struct
|
25
31
|
{
|
26
32
|
struct sockaddr_storage addr;
|
@@ -103,8 +109,6 @@ typedef ProtocolVersion MsgType;
|
|
103
109
|
|
104
110
|
typedef uint32 PacketLen;
|
105
111
|
|
106
|
-
extern PGDLLIMPORT bool Db_user_namespace;
|
107
|
-
|
108
112
|
/*
|
109
113
|
* In protocol 3.0 and later, the startup packet length is not fixed, but
|
110
114
|
* we set an arbitrary limit on it anyway. This is just to prevent simple
|
@@ -114,23 +118,6 @@ extern PGDLLIMPORT bool Db_user_namespace;
|
|
114
118
|
#define MAX_STARTUP_PACKET_LENGTH 10000
|
115
119
|
|
116
120
|
|
117
|
-
/* These are the authentication request codes sent by the backend. */
|
118
|
-
|
119
|
-
#define AUTH_REQ_OK 0 /* User is authenticated */
|
120
|
-
#define AUTH_REQ_KRB4 1 /* Kerberos V4. Not supported any more. */
|
121
|
-
#define AUTH_REQ_KRB5 2 /* Kerberos V5. Not supported any more. */
|
122
|
-
#define AUTH_REQ_PASSWORD 3 /* Password */
|
123
|
-
#define AUTH_REQ_CRYPT 4 /* crypt password. Not supported any more. */
|
124
|
-
#define AUTH_REQ_MD5 5 /* md5 password */
|
125
|
-
/* 6 is available. It was used for SCM creds, not supported any more. */
|
126
|
-
#define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */
|
127
|
-
#define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */
|
128
|
-
#define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */
|
129
|
-
#define AUTH_REQ_SASL 10 /* Begin SASL authentication */
|
130
|
-
#define AUTH_REQ_SASL_CONT 11 /* Continue SASL authentication */
|
131
|
-
#define AUTH_REQ_SASL_FIN 12 /* Final SASL message */
|
132
|
-
#define AUTH_REQ_MAX AUTH_REQ_SASL_FIN /* maximum AUTH_REQ_* value */
|
133
|
-
|
134
121
|
typedef uint32 AuthRequest;
|
135
122
|
|
136
123
|
|
@@ -152,6 +139,25 @@ typedef struct CancelRequestPacket
|
|
152
139
|
uint32 cancelAuthCode; /* secret key to authorize cancel */
|
153
140
|
} CancelRequestPacket;
|
154
141
|
|
142
|
+
/* Application-Layer Protocol Negotiation is required for direct connections
|
143
|
+
* to avoid protocol confusion attacks (e.g https://alpaca-attack.com/).
|
144
|
+
*
|
145
|
+
* ALPN is specified in RFC 7301
|
146
|
+
*
|
147
|
+
* This string should be registered at:
|
148
|
+
* https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
|
149
|
+
*
|
150
|
+
* OpenSSL uses this wire-format for the list of alpn protocols even in the
|
151
|
+
* API. Both server and client take the same format parameter but the client
|
152
|
+
* actually sends it to the server as-is and the server it specifies the
|
153
|
+
* preference order to use to choose the one selected to send back.
|
154
|
+
*
|
155
|
+
* c.f. https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_alpn_select_cb.html
|
156
|
+
*
|
157
|
+
* The #define can be used to initialize a char[] vector to use directly in the API
|
158
|
+
*/
|
159
|
+
#define PG_ALPN_PROTOCOL "postgresql"
|
160
|
+
#define PG_ALPN_PROTOCOL_VECTOR { 10, 'p','o','s','t','g','r','e','s','q','l' }
|
155
161
|
|
156
162
|
/*
|
157
163
|
* A client can also start by sending a SSL or GSSAPI negotiation request to
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pqformat.h
|
4
4
|
* Definitions for formatting and parsing frontend/backend messages
|
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/libpq/pqformat.h
|
@@ -23,8 +23,7 @@ extern void pq_endmessage(StringInfo buf);
|
|
23
23
|
extern void pq_endmessage_reuse(StringInfo buf);
|
24
24
|
|
25
25
|
extern void pq_sendbytes(StringInfo buf, const void *data, int datalen);
|
26
|
-
extern void pq_sendcountedtext(StringInfo buf, const char *str, int slen
|
27
|
-
bool countincludesself);
|
26
|
+
extern void pq_sendcountedtext(StringInfo buf, const char *str, int slen);
|
28
27
|
extern void pq_sendtext(StringInfo buf, const char *str, int slen);
|
29
28
|
extern void pq_sendstring(StringInfo buf, const char *str);
|
30
29
|
extern void pq_send_ascii_string(StringInfo buf, const char *str);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pqsignal.h
|
4
4
|
* Backend signal(2) support (see also src/port/pqsignal.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/libpq/pqsignal.h
|
@@ -0,0 +1,89 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* protocol.h
|
4
|
+
* Definitions of the request/response codes for the wire protocol.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/libpq/protocol.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef PROTOCOL_H
|
15
|
+
#define PROTOCOL_H
|
16
|
+
|
17
|
+
/* These are the request codes sent by the frontend. */
|
18
|
+
|
19
|
+
#define PqMsg_Bind 'B'
|
20
|
+
#define PqMsg_Close 'C'
|
21
|
+
#define PqMsg_Describe 'D'
|
22
|
+
#define PqMsg_Execute 'E'
|
23
|
+
#define PqMsg_FunctionCall 'F'
|
24
|
+
#define PqMsg_Flush 'H'
|
25
|
+
#define PqMsg_Parse 'P'
|
26
|
+
#define PqMsg_Query 'Q'
|
27
|
+
#define PqMsg_Sync 'S'
|
28
|
+
#define PqMsg_Terminate 'X'
|
29
|
+
#define PqMsg_CopyFail 'f'
|
30
|
+
#define PqMsg_GSSResponse 'p'
|
31
|
+
#define PqMsg_PasswordMessage 'p'
|
32
|
+
#define PqMsg_SASLInitialResponse 'p'
|
33
|
+
#define PqMsg_SASLResponse 'p'
|
34
|
+
|
35
|
+
|
36
|
+
/* These are the response codes sent by the backend. */
|
37
|
+
|
38
|
+
#define PqMsg_ParseComplete '1'
|
39
|
+
#define PqMsg_BindComplete '2'
|
40
|
+
#define PqMsg_CloseComplete '3'
|
41
|
+
#define PqMsg_NotificationResponse 'A'
|
42
|
+
#define PqMsg_CommandComplete 'C'
|
43
|
+
#define PqMsg_DataRow 'D'
|
44
|
+
#define PqMsg_ErrorResponse 'E'
|
45
|
+
#define PqMsg_CopyInResponse 'G'
|
46
|
+
#define PqMsg_CopyOutResponse 'H'
|
47
|
+
#define PqMsg_EmptyQueryResponse 'I'
|
48
|
+
#define PqMsg_BackendKeyData 'K'
|
49
|
+
#define PqMsg_NoticeResponse 'N'
|
50
|
+
#define PqMsg_AuthenticationRequest 'R'
|
51
|
+
#define PqMsg_ParameterStatus 'S'
|
52
|
+
#define PqMsg_RowDescription 'T'
|
53
|
+
#define PqMsg_FunctionCallResponse 'V'
|
54
|
+
#define PqMsg_CopyBothResponse 'W'
|
55
|
+
#define PqMsg_ReadyForQuery 'Z'
|
56
|
+
#define PqMsg_NoData 'n'
|
57
|
+
#define PqMsg_PortalSuspended 's'
|
58
|
+
#define PqMsg_ParameterDescription 't'
|
59
|
+
#define PqMsg_NegotiateProtocolVersion 'v'
|
60
|
+
|
61
|
+
|
62
|
+
/* These are the codes sent by both the frontend and backend. */
|
63
|
+
|
64
|
+
#define PqMsg_CopyDone 'c'
|
65
|
+
#define PqMsg_CopyData 'd'
|
66
|
+
|
67
|
+
|
68
|
+
/* These are the codes sent by parallel workers to leader processes. */
|
69
|
+
#define PqMsg_Progress 'P'
|
70
|
+
|
71
|
+
|
72
|
+
/* These are the authentication request codes sent by the backend. */
|
73
|
+
|
74
|
+
#define AUTH_REQ_OK 0 /* User is authenticated */
|
75
|
+
#define AUTH_REQ_KRB4 1 /* Kerberos V4. Not supported any more. */
|
76
|
+
#define AUTH_REQ_KRB5 2 /* Kerberos V5. Not supported any more. */
|
77
|
+
#define AUTH_REQ_PASSWORD 3 /* Password */
|
78
|
+
#define AUTH_REQ_CRYPT 4 /* crypt password. Not supported any more. */
|
79
|
+
#define AUTH_REQ_MD5 5 /* md5 password */
|
80
|
+
/* 6 is available. It was used for SCM creds, not supported any more. */
|
81
|
+
#define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */
|
82
|
+
#define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */
|
83
|
+
#define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */
|
84
|
+
#define AUTH_REQ_SASL 10 /* Begin SASL authentication */
|
85
|
+
#define AUTH_REQ_SASL_CONT 11 /* Continue SASL authentication */
|
86
|
+
#define AUTH_REQ_SASL_FIN 12 /* Final SASL message */
|
87
|
+
#define AUTH_REQ_MAX AUTH_REQ_SASL_FIN /* maximum AUTH_REQ_* value */
|
88
|
+
|
89
|
+
#endif /* PROTOCOL_H */
|
@@ -7,7 +7,7 @@
|
|
7
7
|
*
|
8
8
|
* See src/interfaces/libpq/fe-auth-sasl.h for the frontend counterpart.
|
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
|
* src/include/libpq/sasl.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* scram.h
|
4
4
|
* Interface to libpq/scram.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/libpq/scram.h
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_wchar.h
|
4
4
|
* multibyte-character support
|
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/mb/pg_wchar.h
|
@@ -13,14 +13,15 @@
|
|
13
13
|
* included by libpq client programs. In particular, a libpq client
|
14
14
|
* should not assume that the encoding IDs used by the version of libpq
|
15
15
|
* it's linked to match up with the IDs declared here.
|
16
|
+
* To help prevent mistakes, relevant functions that are exported by
|
17
|
+
* libpq have a physically different name when being referenced
|
18
|
+
* statically.
|
16
19
|
*
|
17
20
|
*-------------------------------------------------------------------------
|
18
21
|
*/
|
19
22
|
#ifndef PG_WCHAR_H
|
20
23
|
#define PG_WCHAR_H
|
21
24
|
|
22
|
-
#include "port/simd.h"
|
23
|
-
|
24
25
|
/*
|
25
26
|
* The pg_wchar type
|
26
27
|
*/
|
@@ -223,11 +224,10 @@ typedef unsigned int pg_wchar;
|
|
223
224
|
/*
|
224
225
|
* PostgreSQL encoding identifiers
|
225
226
|
*
|
226
|
-
* WARNING:
|
227
|
-
*
|
228
|
-
*
|
229
|
-
*
|
230
|
-
* If you add some encoding don't forget to check
|
227
|
+
* WARNING: If you add some encoding don't forget to update
|
228
|
+
* the pg_enc2name_tbl[] array (in src/common/encnames.c),
|
229
|
+
* the pg_enc2gettext_tbl[] array (in src/common/encnames.c) and
|
230
|
+
* the pg_wchar_table[] array (in src/common/wchar.c) and to check
|
231
231
|
* PG_ENCODING_BE_LAST macro.
|
232
232
|
*
|
233
233
|
* PG_SQL_ASCII is default encoding and must be = 0.
|
@@ -366,13 +366,7 @@ extern PGDLLIMPORT const pg_enc2name pg_enc2name_tbl[];
|
|
366
366
|
/*
|
367
367
|
* Encoding names for gettext
|
368
368
|
*/
|
369
|
-
|
370
|
-
{
|
371
|
-
pg_enc encoding;
|
372
|
-
const char *name;
|
373
|
-
} pg_enc2gettext;
|
374
|
-
|
375
|
-
extern PGDLLIMPORT const pg_enc2gettext pg_enc2gettext_tbl[];
|
369
|
+
extern PGDLLIMPORT const char *pg_enc2gettext_tbl[];
|
376
370
|
|
377
371
|
/*
|
378
372
|
* pg_wchar stuff
|
@@ -561,6 +555,99 @@ surrogate_pair_to_codepoint(pg_wchar first, pg_wchar second)
|
|
561
555
|
return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
|
562
556
|
}
|
563
557
|
|
558
|
+
/*
|
559
|
+
* Convert a UTF-8 character to a Unicode code point.
|
560
|
+
* This is a one-character version of pg_utf2wchar_with_len.
|
561
|
+
*
|
562
|
+
* No error checks here, c must point to a long-enough string.
|
563
|
+
*/
|
564
|
+
static inline pg_wchar
|
565
|
+
utf8_to_unicode(const unsigned char *c)
|
566
|
+
{
|
567
|
+
if ((*c & 0x80) == 0)
|
568
|
+
return (pg_wchar) c[0];
|
569
|
+
else if ((*c & 0xe0) == 0xc0)
|
570
|
+
return (pg_wchar) (((c[0] & 0x1f) << 6) |
|
571
|
+
(c[1] & 0x3f));
|
572
|
+
else if ((*c & 0xf0) == 0xe0)
|
573
|
+
return (pg_wchar) (((c[0] & 0x0f) << 12) |
|
574
|
+
((c[1] & 0x3f) << 6) |
|
575
|
+
(c[2] & 0x3f));
|
576
|
+
else if ((*c & 0xf8) == 0xf0)
|
577
|
+
return (pg_wchar) (((c[0] & 0x07) << 18) |
|
578
|
+
((c[1] & 0x3f) << 12) |
|
579
|
+
((c[2] & 0x3f) << 6) |
|
580
|
+
(c[3] & 0x3f));
|
581
|
+
else
|
582
|
+
/* that is an invalid code on purpose */
|
583
|
+
return 0xffffffff;
|
584
|
+
}
|
585
|
+
|
586
|
+
/*
|
587
|
+
* Map a Unicode code point to UTF-8. utf8string must have at least
|
588
|
+
* unicode_utf8len(c) bytes available.
|
589
|
+
*/
|
590
|
+
static inline unsigned char *
|
591
|
+
unicode_to_utf8(pg_wchar c, unsigned char *utf8string)
|
592
|
+
{
|
593
|
+
if (c <= 0x7F)
|
594
|
+
{
|
595
|
+
utf8string[0] = c;
|
596
|
+
}
|
597
|
+
else if (c <= 0x7FF)
|
598
|
+
{
|
599
|
+
utf8string[0] = 0xC0 | ((c >> 6) & 0x1F);
|
600
|
+
utf8string[1] = 0x80 | (c & 0x3F);
|
601
|
+
}
|
602
|
+
else if (c <= 0xFFFF)
|
603
|
+
{
|
604
|
+
utf8string[0] = 0xE0 | ((c >> 12) & 0x0F);
|
605
|
+
utf8string[1] = 0x80 | ((c >> 6) & 0x3F);
|
606
|
+
utf8string[2] = 0x80 | (c & 0x3F);
|
607
|
+
}
|
608
|
+
else
|
609
|
+
{
|
610
|
+
utf8string[0] = 0xF0 | ((c >> 18) & 0x07);
|
611
|
+
utf8string[1] = 0x80 | ((c >> 12) & 0x3F);
|
612
|
+
utf8string[2] = 0x80 | ((c >> 6) & 0x3F);
|
613
|
+
utf8string[3] = 0x80 | (c & 0x3F);
|
614
|
+
}
|
615
|
+
|
616
|
+
return utf8string;
|
617
|
+
}
|
618
|
+
|
619
|
+
/*
|
620
|
+
* Number of bytes needed to represent the given char in UTF8.
|
621
|
+
*/
|
622
|
+
static inline int
|
623
|
+
unicode_utf8len(pg_wchar c)
|
624
|
+
{
|
625
|
+
if (c <= 0x7F)
|
626
|
+
return 1;
|
627
|
+
else if (c <= 0x7FF)
|
628
|
+
return 2;
|
629
|
+
else if (c <= 0xFFFF)
|
630
|
+
return 3;
|
631
|
+
else
|
632
|
+
return 4;
|
633
|
+
}
|
634
|
+
|
635
|
+
/*
|
636
|
+
* The functions in this list are exported by libpq, and we need to be sure
|
637
|
+
* that we know which calls are satisfied by libpq and which are satisfied
|
638
|
+
* by static linkage to libpgcommon. (This is because we might be using a
|
639
|
+
* libpq.so that's of a different major version and has encoding IDs that
|
640
|
+
* differ from the current version's.) The nominal function names are what
|
641
|
+
* are actually used in and exported by libpq, while the names exported by
|
642
|
+
* libpgcommon.a and libpgcommon_srv.a end in "_private".
|
643
|
+
*/
|
644
|
+
#if defined(USE_PRIVATE_ENCODING_FUNCS) || !defined(FRONTEND)
|
645
|
+
#define pg_char_to_encoding pg_char_to_encoding_private
|
646
|
+
#define pg_encoding_to_char pg_encoding_to_char_private
|
647
|
+
#define pg_valid_server_encoding pg_valid_server_encoding_private
|
648
|
+
#define pg_valid_server_encoding_id pg_valid_server_encoding_id_private
|
649
|
+
#define pg_utf_mblen pg_utf_mblen_private
|
650
|
+
#endif
|
564
651
|
|
565
652
|
/*
|
566
653
|
* These functions are considered part of libpq's exported API and
|
@@ -702,71 +789,4 @@ extern int mic2latin_with_table(const unsigned char *mic, unsigned char *p,
|
|
702
789
|
extern WCHAR *pgwin32_message_to_UTF16(const char *str, int len, int *utf16len);
|
703
790
|
#endif
|
704
791
|
|
705
|
-
|
706
|
-
/*
|
707
|
-
* Verify a chunk of bytes for valid ASCII.
|
708
|
-
*
|
709
|
-
* Returns false if the input contains any zero bytes or bytes with the
|
710
|
-
* high-bit set. Input len must be a multiple of the chunk size (8 or 16).
|
711
|
-
*/
|
712
|
-
static inline bool
|
713
|
-
is_valid_ascii(const unsigned char *s, int len)
|
714
|
-
{
|
715
|
-
const unsigned char *const s_end = s + len;
|
716
|
-
Vector8 chunk;
|
717
|
-
Vector8 highbit_cum = vector8_broadcast(0);
|
718
|
-
#ifdef USE_NO_SIMD
|
719
|
-
Vector8 zero_cum = vector8_broadcast(0x80);
|
720
|
-
#endif
|
721
|
-
|
722
|
-
Assert(len % sizeof(chunk) == 0);
|
723
|
-
|
724
|
-
while (s < s_end)
|
725
|
-
{
|
726
|
-
vector8_load(&chunk, s);
|
727
|
-
|
728
|
-
/* Capture any zero bytes in this chunk. */
|
729
|
-
#ifdef USE_NO_SIMD
|
730
|
-
|
731
|
-
/*
|
732
|
-
* First, add 0x7f to each byte. This sets the high bit in each byte,
|
733
|
-
* unless it was a zero. If any resulting high bits are zero, the
|
734
|
-
* corresponding high bits in the zero accumulator will be cleared.
|
735
|
-
*
|
736
|
-
* If none of the bytes in the chunk had the high bit set, the max
|
737
|
-
* value each byte can have after the addition is 0x7f + 0x7f = 0xfe,
|
738
|
-
* and we don't need to worry about carrying over to the next byte. If
|
739
|
-
* any input bytes did have the high bit set, it doesn't matter
|
740
|
-
* because we check for those separately.
|
741
|
-
*/
|
742
|
-
zero_cum &= (chunk + vector8_broadcast(0x7F));
|
743
|
-
#else
|
744
|
-
|
745
|
-
/*
|
746
|
-
* Set all bits in each lane of the highbit accumulator where input
|
747
|
-
* bytes are zero.
|
748
|
-
*/
|
749
|
-
highbit_cum = vector8_or(highbit_cum,
|
750
|
-
vector8_eq(chunk, vector8_broadcast(0)));
|
751
|
-
#endif
|
752
|
-
|
753
|
-
/* Capture all set bits in this chunk. */
|
754
|
-
highbit_cum = vector8_or(highbit_cum, chunk);
|
755
|
-
|
756
|
-
s += sizeof(chunk);
|
757
|
-
}
|
758
|
-
|
759
|
-
/* Check if any high bits in the high bit accumulator got set. */
|
760
|
-
if (vector8_is_highbit_set(highbit_cum))
|
761
|
-
return false;
|
762
|
-
|
763
|
-
#ifdef USE_NO_SIMD
|
764
|
-
/* Check if any high bits in the zero accumulator got cleared. */
|
765
|
-
if (zero_cum != vector8_broadcast(0x80))
|
766
|
-
return false;
|
767
|
-
#endif
|
768
|
-
|
769
|
-
return true;
|
770
|
-
}
|
771
|
-
|
772
792
|
#endif /* PG_WCHAR_H */
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* stringinfo_mb.h
|
4
4
|
* multibyte support for StringInfo
|
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/mb/stringinfo_mb.h
|
@@ -10,7 +10,7 @@
|
|
10
10
|
* Over time, this has also become the preferred place for widely known
|
11
11
|
* resource-limitation stuff, such as work_mem and check_stack_depth().
|
12
12
|
*
|
13
|
-
* Portions Copyright (c) 1996-
|
13
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
14
14
|
* Portions Copyright (c) 1994, Regents of the University of California
|
15
15
|
*
|
16
16
|
* src/include/miscadmin.h
|
@@ -91,6 +91,7 @@ extern PGDLLIMPORT __thread volatile sig_atomic_t InterruptPending;
|
|
91
91
|
extern PGDLLIMPORT volatile sig_atomic_t QueryCancelPending;
|
92
92
|
extern PGDLLIMPORT volatile sig_atomic_t ProcDiePending;
|
93
93
|
extern PGDLLIMPORT volatile sig_atomic_t IdleInTransactionSessionTimeoutPending;
|
94
|
+
extern PGDLLIMPORT volatile sig_atomic_t TransactionTimeoutPending;
|
94
95
|
extern PGDLLIMPORT volatile sig_atomic_t IdleSessionTimeoutPending;
|
95
96
|
extern PGDLLIMPORT volatile sig_atomic_t ProcSignalBarrierPending;
|
96
97
|
extern PGDLLIMPORT volatile sig_atomic_t LogMemoryContextPending;
|
@@ -164,7 +165,6 @@ do { \
|
|
164
165
|
extern PGDLLIMPORT pid_t PostmasterPid;
|
165
166
|
extern PGDLLIMPORT bool IsPostmasterEnvironment;
|
166
167
|
extern PGDLLIMPORT bool IsUnderPostmaster;
|
167
|
-
extern PGDLLIMPORT bool IsBackgroundWorker;
|
168
168
|
extern PGDLLIMPORT bool IsBinaryUpgrade;
|
169
169
|
|
170
170
|
extern PGDLLIMPORT __thread bool ExitOnAnyError;
|
@@ -178,6 +178,14 @@ extern PGDLLIMPORT int MaxConnections;
|
|
178
178
|
extern PGDLLIMPORT int max_worker_processes;
|
179
179
|
extern PGDLLIMPORT int max_parallel_workers;
|
180
180
|
|
181
|
+
extern PGDLLIMPORT int commit_timestamp_buffers;
|
182
|
+
extern PGDLLIMPORT int multixact_member_buffers;
|
183
|
+
extern PGDLLIMPORT int multixact_offset_buffers;
|
184
|
+
extern PGDLLIMPORT int notify_buffers;
|
185
|
+
extern PGDLLIMPORT int serializable_buffers;
|
186
|
+
extern PGDLLIMPORT int subtransaction_buffers;
|
187
|
+
extern PGDLLIMPORT int transaction_buffers;
|
188
|
+
|
181
189
|
extern PGDLLIMPORT int MyProcPid;
|
182
190
|
extern PGDLLIMPORT pg_time_t MyStartTime;
|
183
191
|
extern PGDLLIMPORT TimestampTz MyStartTimestamp;
|
@@ -194,15 +202,12 @@ extern PGDLLIMPORT char pkglib_path[];
|
|
194
202
|
extern PGDLLIMPORT char postgres_exec_path[];
|
195
203
|
#endif
|
196
204
|
|
197
|
-
/*
|
198
|
-
* done in storage/backendid.h for now.
|
199
|
-
*
|
200
|
-
* extern BackendId MyBackendId;
|
201
|
-
*/
|
202
205
|
extern PGDLLIMPORT Oid MyDatabaseId;
|
203
206
|
|
204
207
|
extern PGDLLIMPORT Oid MyDatabaseTableSpace;
|
205
208
|
|
209
|
+
extern PGDLLIMPORT bool MyDatabaseHasLoginEventTriggers;
|
210
|
+
|
206
211
|
/*
|
207
212
|
* Date/Time Configuration
|
208
213
|
*
|
@@ -300,10 +305,6 @@ extern void PreventCommandIfReadOnly(const char *cmdname);
|
|
300
305
|
extern void PreventCommandIfParallelMode(const char *cmdname);
|
301
306
|
extern void PreventCommandDuringRecovery(const char *cmdname);
|
302
307
|
|
303
|
-
/* in utils/misc/guc_tables.c */
|
304
|
-
extern PGDLLIMPORT int trace_recovery_messages;
|
305
|
-
extern int trace_recovery(int trace_level);
|
306
|
-
|
307
308
|
/*****************************************************************************
|
308
309
|
* pdir.h -- *
|
309
310
|
* POSTGRES directory path definitions. *
|
@@ -323,28 +324,66 @@ extern void InitProcessLocalLatch(void);
|
|
323
324
|
extern void SwitchToSharedLatch(void);
|
324
325
|
extern void SwitchBackToLocalLatch(void);
|
325
326
|
|
327
|
+
/*
|
328
|
+
* MyBackendType indicates what kind of a backend this is.
|
329
|
+
*
|
330
|
+
* If you add entries, please also update the child_process_kinds array in
|
331
|
+
* launch_backend.c.
|
332
|
+
*/
|
326
333
|
typedef enum BackendType
|
327
334
|
{
|
328
335
|
B_INVALID = 0,
|
329
|
-
|
336
|
+
|
337
|
+
/* Backends and other backend-like processes */
|
338
|
+
B_BACKEND,
|
330
339
|
B_AUTOVAC_LAUNCHER,
|
331
340
|
B_AUTOVAC_WORKER,
|
332
|
-
B_BACKEND,
|
333
341
|
B_BG_WORKER,
|
342
|
+
B_WAL_SENDER,
|
343
|
+
B_SLOTSYNC_WORKER,
|
344
|
+
|
345
|
+
B_STANDALONE_BACKEND,
|
346
|
+
|
347
|
+
/*
|
348
|
+
* Auxiliary processes. These have PGPROC entries, but they are not
|
349
|
+
* attached to any particular database. There can be only one of each of
|
350
|
+
* these running at a time.
|
351
|
+
*
|
352
|
+
* If you modify these, make sure to update NUM_AUXILIARY_PROCS and the
|
353
|
+
* glossary in the docs.
|
354
|
+
*/
|
355
|
+
B_ARCHIVER,
|
334
356
|
B_BG_WRITER,
|
335
357
|
B_CHECKPOINTER,
|
336
|
-
B_LOGGER,
|
337
|
-
B_STANDALONE_BACKEND,
|
338
358
|
B_STARTUP,
|
339
359
|
B_WAL_RECEIVER,
|
340
|
-
|
360
|
+
B_WAL_SUMMARIZER,
|
341
361
|
B_WAL_WRITER,
|
362
|
+
|
363
|
+
/*
|
364
|
+
* Logger is not connected to shared memory and does not have a PGPROC
|
365
|
+
* entry.
|
366
|
+
*/
|
367
|
+
B_LOGGER,
|
342
368
|
} BackendType;
|
343
369
|
|
344
|
-
#define BACKEND_NUM_TYPES (
|
370
|
+
#define BACKEND_NUM_TYPES (B_LOGGER + 1)
|
345
371
|
|
346
372
|
extern PGDLLIMPORT BackendType MyBackendType;
|
347
373
|
|
374
|
+
#define AmAutoVacuumLauncherProcess() (MyBackendType == B_AUTOVAC_LAUNCHER)
|
375
|
+
#define AmAutoVacuumWorkerProcess() (MyBackendType == B_AUTOVAC_WORKER)
|
376
|
+
#define AmBackgroundWorkerProcess() (MyBackendType == B_BG_WORKER)
|
377
|
+
#define AmWalSenderProcess() (MyBackendType == B_WAL_SENDER)
|
378
|
+
#define AmLogicalSlotSyncWorkerProcess() (MyBackendType == B_SLOTSYNC_WORKER)
|
379
|
+
#define AmArchiverProcess() (MyBackendType == B_ARCHIVER)
|
380
|
+
#define AmBackgroundWriterProcess() (MyBackendType == B_BG_WRITER)
|
381
|
+
#define AmCheckpointerProcess() (MyBackendType == B_CHECKPOINTER)
|
382
|
+
#define AmStartupProcess() (MyBackendType == B_STARTUP)
|
383
|
+
#define AmWalReceiverProcess() (MyBackendType == B_WAL_RECEIVER)
|
384
|
+
#define AmWalSummarizerProcess() (MyBackendType == B_WAL_SUMMARIZER)
|
385
|
+
#define AmWalWriterProcess() (MyBackendType == B_WAL_WRITER)
|
386
|
+
|
348
387
|
extern const char *GetBackendTypeDesc(BackendType backendType);
|
349
388
|
|
350
389
|
extern void SetDatabasePath(const char *path);
|
@@ -364,7 +403,8 @@ extern bool InSecurityRestrictedOperation(void);
|
|
364
403
|
extern bool InNoForceRLSOperation(void);
|
365
404
|
extern void GetUserIdAndContext(Oid *userid, bool *sec_def_context);
|
366
405
|
extern void SetUserIdAndContext(Oid userid, bool sec_def_context);
|
367
|
-
extern void InitializeSessionUserId(const char *rolename, Oid roleid
|
406
|
+
extern void InitializeSessionUserId(const char *rolename, Oid roleid,
|
407
|
+
bool bypass_login_check);
|
368
408
|
extern void InitializeSessionUserIdStandalone(void);
|
369
409
|
extern void SetSessionAuthorization(Oid userid, bool is_superuser);
|
370
410
|
extern Oid GetCurrentRoleId(void);
|
@@ -406,7 +446,7 @@ typedef enum ProcessingMode
|
|
406
446
|
{
|
407
447
|
BootstrapProcessing, /* bootstrap creation of template database */
|
408
448
|
InitProcessing, /* initializing system */
|
409
|
-
NormalProcessing /* normal processing */
|
449
|
+
NormalProcessing, /* normal processing */
|
410
450
|
} ProcessingMode;
|
411
451
|
|
412
452
|
extern PGDLLIMPORT ProcessingMode Mode;
|
@@ -426,49 +466,21 @@ extern PGDLLIMPORT ProcessingMode Mode;
|
|
426
466
|
} while(0)
|
427
467
|
|
428
468
|
|
429
|
-
/*
|
430
|
-
* Auxiliary-process type identifiers. These used to be in bootstrap.h
|
431
|
-
* but it seems saner to have them here, with the ProcessingMode stuff.
|
432
|
-
* The MyAuxProcType global is defined and set in auxprocess.c.
|
433
|
-
*
|
434
|
-
* Make sure to list in the glossary any items you add here.
|
435
|
-
*/
|
436
|
-
|
437
|
-
typedef enum
|
438
|
-
{
|
439
|
-
NotAnAuxProcess = -1,
|
440
|
-
StartupProcess = 0,
|
441
|
-
BgWriterProcess,
|
442
|
-
ArchiverProcess,
|
443
|
-
CheckpointerProcess,
|
444
|
-
WalWriterProcess,
|
445
|
-
WalReceiverProcess,
|
446
|
-
|
447
|
-
NUM_AUXPROCTYPES /* Must be last! */
|
448
|
-
} AuxProcType;
|
449
|
-
|
450
|
-
extern PGDLLIMPORT AuxProcType MyAuxProcType;
|
451
|
-
|
452
|
-
#define AmStartupProcess() (MyAuxProcType == StartupProcess)
|
453
|
-
#define AmBackgroundWriterProcess() (MyAuxProcType == BgWriterProcess)
|
454
|
-
#define AmArchiverProcess() (MyAuxProcType == ArchiverProcess)
|
455
|
-
#define AmCheckpointerProcess() (MyAuxProcType == CheckpointerProcess)
|
456
|
-
#define AmWalWriterProcess() (MyAuxProcType == WalWriterProcess)
|
457
|
-
#define AmWalReceiverProcess() (MyAuxProcType == WalReceiverProcess)
|
458
|
-
|
459
|
-
|
460
469
|
/*****************************************************************************
|
461
470
|
* pinit.h -- *
|
462
471
|
* POSTGRES initialization and cleanup definitions. *
|
463
472
|
*****************************************************************************/
|
464
473
|
|
465
474
|
/* in utils/init/postinit.c */
|
475
|
+
/* flags for InitPostgres() */
|
476
|
+
#define INIT_PG_LOAD_SESSION_LIBS 0x0001
|
477
|
+
#define INIT_PG_OVERRIDE_ALLOW_CONNS 0x0002
|
478
|
+
#define INIT_PG_OVERRIDE_ROLE_LOGIN 0x0004
|
466
479
|
extern void pg_split_opts(char **argv, int *argcp, const char *optstr);
|
467
480
|
extern void InitializeMaxBackends(void);
|
468
481
|
extern void InitPostgres(const char *in_dbname, Oid dboid,
|
469
482
|
const char *username, Oid useroid,
|
470
|
-
|
471
|
-
bool override_allow_connections,
|
483
|
+
bits32 flags,
|
472
484
|
char *out_dbname);
|
473
485
|
extern void BaseInit(void);
|
474
486
|
|