pg_query 2.2.0 → 4.2.1
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 +25 -0
- data/README.md +59 -31
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/amapi.h +45 -1
- data/ext/pg_query/include/access/attmap.h +1 -1
- data/ext/pg_query/include/access/attnum.h +2 -2
- data/ext/pg_query/include/access/clog.h +4 -2
- data/ext/pg_query/include/access/commit_ts.h +6 -9
- data/ext/pg_query/include/access/detoast.h +1 -11
- data/ext/pg_query/include/access/genam.h +15 -12
- data/ext/pg_query/include/access/gin.h +2 -2
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +75 -87
- data/ext/pg_query/include/access/itup.h +7 -1
- data/ext/pg_query/include/access/parallel.h +2 -2
- data/ext/pg_query/include/access/printtup.h +1 -1
- data/ext/pg_query/include/access/relation.h +1 -1
- data/ext/pg_query/include/access/relscan.h +17 -2
- data/ext/pg_query/include/access/rmgr.h +30 -3
- data/ext/pg_query/include/access/rmgrlist.h +23 -23
- data/ext/pg_query/include/access/sdir.h +1 -1
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +4 -2
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +2 -1
- data/ext/pg_query/include/access/tableam.h +272 -20
- data/ext/pg_query/include/access/toast_compression.h +73 -0
- data/ext/pg_query/include/access/transam.h +123 -13
- data/ext/pg_query/include/access/tupconvert.h +1 -1
- data/ext/pg_query/include/access/tupdesc.h +1 -1
- data/ext/pg_query/include/access/tupmacs.h +3 -3
- data/ext/pg_query/include/access/twophase.h +3 -1
- data/ext/pg_query/include/access/xact.h +73 -19
- data/ext/pg_query/include/access/xlog.h +60 -155
- data/ext/pg_query/include/access/xlog_internal.h +40 -13
- data/ext/pg_query/include/access/xlogdefs.h +8 -16
- data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/access/xlogreader.h +145 -39
- data/ext/pg_query/include/access/xlogrecord.h +18 -9
- data/ext/pg_query/include/access/xlogrecovery.h +157 -0
- data/ext/pg_query/include/c.h +101 -44
- data/ext/pg_query/include/catalog/catalog.h +3 -1
- data/ext/pg_query/include/catalog/catversion.h +2 -2
- data/ext/pg_query/include/catalog/dependency.h +8 -16
- data/ext/pg_query/include/catalog/genbki.h +83 -5
- data/ext/pg_query/include/catalog/index.h +18 -3
- data/ext/pg_query/include/catalog/indexing.h +12 -324
- data/ext/pg_query/include/catalog/namespace.h +4 -2
- data/ext/pg_query/include/catalog/objectaccess.h +70 -2
- data/ext/pg_query/include/catalog/objectaddress.h +11 -6
- data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_am.h +4 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
- data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
- data/ext/pg_query/include/catalog/pg_authid.h +7 -2
- data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
- data/ext/pg_query/include/catalog/pg_class.h +44 -14
- data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
- data/ext/pg_query/include/catalog/pg_collation.h +33 -8
- data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
- data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/catalog/pg_control.h +3 -5
- data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
- data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_depend.h +11 -7
- data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_index.h +17 -7
- data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
- data/ext/pg_query/include/catalog/pg_language.h +10 -5
- data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
- data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
- data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_operator.h +18 -15
- data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_proc.h +20 -11
- data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
- data/ext/pg_query/include/catalog/pg_publication.h +50 -7
- data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
- data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/catalog/pg_transform.h +8 -5
- data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
- data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_type.h +55 -24
- data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
- data/ext/pg_query/include/catalog/storage.h +5 -3
- data/ext/pg_query/include/commands/async.h +3 -4
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +11 -24
- data/ext/pg_query/include/commands/event_trigger.h +2 -2
- data/ext/pg_query/include/commands/explain.h +1 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -2
- data/ext/pg_query/include/commands/trigger.h +18 -16
- data/ext/pg_query/include/commands/user.h +2 -2
- data/ext/pg_query/include/commands/vacuum.h +88 -41
- data/ext/pg_query/include/commands/variable.h +1 -1
- data/ext/pg_query/include/common/file_perm.h +4 -4
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/ip.h +1 -7
- data/ext/pg_query/include/common/keywords.h +2 -6
- data/ext/pg_query/include/common/kwlookup.h +1 -1
- data/ext/pg_query/include/common/pg_prng.h +60 -0
- data/ext/pg_query/include/common/relpath.h +2 -2
- data/ext/pg_query/include/common/string.h +24 -1
- data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/datatype/timestamp.h +40 -1
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +65 -22
- data/ext/pg_query/include/executor/functions.h +17 -3
- data/ext/pg_query/include/executor/instrument.h +33 -16
- data/ext/pg_query/include/executor/spi.h +41 -3
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +1 -1
- data/ext/pg_query/include/fmgr.h +13 -7
- data/ext/pg_query/include/funcapi.h +16 -4
- data/ext/pg_query/include/getaddrinfo.h +1 -1
- data/ext/pg_query/include/jit/jit.h +11 -11
- data/ext/pg_query/include/kwlist_d.h +517 -494
- data/ext/pg_query/include/lib/dshash.h +112 -0
- data/ext/pg_query/include/lib/ilist.h +20 -1
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +140 -15
- data/ext/pg_query/include/lib/sort_template.h +432 -0
- data/ext/pg_query/include/lib/stringinfo.h +1 -1
- data/ext/pg_query/include/libpq/auth.h +6 -4
- data/ext/pg_query/include/libpq/crypt.h +5 -4
- data/ext/pg_query/include/libpq/hba.h +43 -4
- data/ext/pg_query/include/libpq/libpq-be.h +23 -6
- data/ext/pg_query/include/libpq/libpq.h +30 -20
- data/ext/pg_query/include/libpq/pqcomm.h +17 -31
- data/ext/pg_query/include/libpq/pqformat.h +1 -1
- data/ext/pg_query/include/libpq/pqsignal.h +4 -4
- data/ext/pg_query/include/mb/pg_wchar.h +105 -23
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +47 -41
- data/ext/pg_query/include/nodes/bitmapset.h +1 -1
- data/ext/pg_query/include/nodes/execnodes.h +270 -78
- data/ext/pg_query/include/nodes/extensible.h +4 -2
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +7 -6
- data/ext/pg_query/include/nodes/memnodes.h +5 -3
- data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/nodes/nodes.h +30 -11
- data/ext/pg_query/include/nodes/params.h +1 -1
- data/ext/pg_query/include/nodes/parsenodes.h +322 -90
- data/ext/pg_query/include/nodes/pathnodes.h +243 -66
- data/ext/pg_query/include/nodes/pg_list.h +75 -69
- data/ext/pg_query/include/nodes/plannodes.h +111 -28
- data/ext/pg_query/include/nodes/primnodes.h +99 -47
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +58 -39
- data/ext/pg_query/include/optimizer/cost.h +9 -2
- data/ext/pg_query/include/optimizer/geqo.h +9 -7
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +25 -17
- data/ext/pg_query/include/optimizer/paths.h +6 -6
- data/ext/pg_query/include/optimizer/planmain.h +15 -14
- data/ext/pg_query/include/parser/analyze.h +19 -5
- data/ext/pg_query/include/parser/gram.h +947 -913
- data/ext/pg_query/include/parser/gramparse.h +1 -1
- data/ext/pg_query/include/parser/kwlist.h +463 -453
- data/ext/pg_query/include/parser/parse_agg.h +2 -7
- data/ext/pg_query/include/parser/parse_coerce.h +3 -1
- data/ext/pg_query/include/parser/parse_expr.h +2 -3
- data/ext/pg_query/include/parser/parse_func.h +2 -1
- data/ext/pg_query/include/parser/parse_node.h +21 -9
- data/ext/pg_query/include/parser/parse_oper.h +1 -3
- data/ext/pg_query/include/parser/parse_relation.h +5 -4
- data/ext/pg_query/include/parser/parse_type.h +1 -1
- data/ext/pg_query/include/parser/parser.h +31 -4
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +1 -1
- data/ext/pg_query/include/parser/scansup.h +2 -5
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +83 -41
- data/ext/pg_query/include/pg_config_manual.h +74 -21
- data/ext/pg_query/include/pg_getopt.h +6 -6
- data/ext/pg_query/include/pg_query.h +5 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +449 -1238
- data/ext/pg_query/include/pgtime.h +14 -4
- data/ext/pg_query/include/pl_gram.h +126 -128
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/include/plerrcodes.h +9 -1
- data/ext/pg_query/include/plpgsql.h +52 -54
- data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
- data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
- data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
- data/ext/pg_query/include/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +1 -1
- data/ext/pg_query/include/port/pg_bitutils.h +40 -10
- data/ext/pg_query/include/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/port/pg_crc32c.h +1 -1
- data/ext/pg_query/include/port.h +71 -46
- data/ext/pg_query/include/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres.h +60 -16
- data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
- data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
- data/ext/pg_query/include/postmaster/bgworker.h +2 -1
- data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
- data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
- data/ext/pg_query/include/postmaster/fork_process.h +1 -1
- data/ext/pg_query/include/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postmaster/pgarch.h +42 -8
- data/ext/pg_query/include/postmaster/postmaster.h +18 -17
- data/ext/pg_query/include/postmaster/startup.h +39 -0
- data/ext/pg_query/include/postmaster/syslogger.h +15 -10
- data/ext/pg_query/include/postmaster/walwriter.h +3 -3
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
- data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
- data/ext/pg_query/include/regex/regex.h +18 -16
- data/ext/pg_query/include/replication/logicallauncher.h +3 -5
- data/ext/pg_query/include/replication/logicalproto.h +161 -17
- data/ext/pg_query/include/replication/logicalworker.h +1 -1
- data/ext/pg_query/include/replication/origin.h +7 -7
- data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
- data/ext/pg_query/include/replication/slot.h +22 -11
- data/ext/pg_query/include/replication/syncrep.h +5 -5
- data/ext/pg_query/include/replication/walreceiver.h +145 -13
- data/ext/pg_query/include/replication/walsender.h +8 -8
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
- data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/storage/backendid.h +3 -3
- data/ext/pg_query/include/storage/block.h +4 -10
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +19 -14
- data/ext/pg_query/include/storage/bufpage.h +6 -8
- data/ext/pg_query/include/storage/condition_variable.h +13 -2
- data/ext/pg_query/include/storage/dsm.h +4 -1
- data/ext/pg_query/include/storage/dsm_impl.h +3 -2
- data/ext/pg_query/include/storage/fd.h +33 -3
- data/ext/pg_query/include/storage/fileset.h +40 -0
- data/ext/pg_query/include/storage/ipc.h +4 -1
- data/ext/pg_query/include/storage/item.h +1 -1
- data/ext/pg_query/include/storage/itemid.h +1 -1
- data/ext/pg_query/include/storage/itemptr.h +3 -1
- data/ext/pg_query/include/storage/large_object.h +2 -2
- data/ext/pg_query/include/storage/latch.h +9 -13
- data/ext/pg_query/include/storage/lmgr.h +2 -1
- data/ext/pg_query/include/storage/lock.h +11 -8
- data/ext/pg_query/include/storage/lockdefs.h +2 -2
- data/ext/pg_query/include/storage/lwlock.h +5 -32
- data/ext/pg_query/include/storage/lwlocknames.h +0 -1
- data/ext/pg_query/include/storage/off.h +1 -1
- data/ext/pg_query/include/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/storage/pg_shmem.h +9 -7
- data/ext/pg_query/include/storage/pmsignal.h +15 -4
- data/ext/pg_query/include/storage/predicate.h +4 -4
- data/ext/pg_query/include/storage/proc.h +173 -59
- data/ext/pg_query/include/storage/procarray.h +98 -0
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -7
- data/ext/pg_query/include/storage/relfilenode.h +1 -1
- data/ext/pg_query/include/storage/s_lock.h +60 -21
- data/ext/pg_query/include/storage/sharedfileset.h +3 -11
- data/ext/pg_query/include/storage/shm_mq.h +5 -4
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -1
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +1 -1
- data/ext/pg_query/include/storage/smgr.h +10 -8
- data/ext/pg_query/include/storage/spin.h +2 -2
- data/ext/pg_query/include/storage/standby.h +13 -6
- data/ext/pg_query/include/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/storage/sync.h +7 -3
- data/ext/pg_query/include/tcop/cmdtag.h +1 -1
- data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -1
- data/ext/pg_query/include/tcop/fastpath.h +1 -2
- data/ext/pg_query/include/tcop/pquery.h +1 -1
- data/ext/pg_query/include/tcop/tcopprot.h +19 -11
- data/ext/pg_query/include/tcop/utility.h +7 -3
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
- data/ext/pg_query/include/utils/acl.h +24 -3
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +7 -2
- data/ext/pg_query/include/utils/backend_progress.h +44 -0
- data/ext/pg_query/include/utils/backend_status.h +321 -0
- data/ext/pg_query/include/utils/builtins.h +10 -11
- data/ext/pg_query/include/utils/bytea.h +3 -2
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +1 -1
- data/ext/pg_query/include/utils/datetime.h +8 -7
- data/ext/pg_query/include/utils/datum.h +9 -1
- data/ext/pg_query/include/utils/dsa.h +1 -1
- data/ext/pg_query/include/utils/dynahash.h +4 -3
- data/ext/pg_query/include/utils/elog.h +52 -21
- data/ext/pg_query/include/utils/errcodes.h +2 -0
- data/ext/pg_query/include/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/utils/float.h +7 -7
- data/ext/pg_query/include/utils/fmgroids.h +1300 -696
- data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
- data/ext/pg_query/include/utils/fmgrtab.h +6 -5
- data/ext/pg_query/include/utils/guc.h +69 -43
- data/ext/pg_query/include/utils/guc_tables.h +23 -19
- data/ext/pg_query/include/utils/hsearch.h +15 -11
- data/ext/pg_query/include/utils/inval.h +4 -1
- data/ext/pg_query/include/utils/lsyscache.h +11 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +8 -3
- data/ext/pg_query/include/utils/numeric.h +19 -5
- data/ext/pg_query/include/utils/palloc.h +25 -3
- data/ext/pg_query/include/utils/partcache.h +1 -1
- data/ext/pg_query/include/utils/pg_locale.h +17 -9
- data/ext/pg_query/include/utils/pg_lsn.h +1 -1
- data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +6 -5
- data/ext/pg_query/include/utils/portal.h +10 -12
- data/ext/pg_query/include/utils/ps_status.h +1 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/queryjumble.h +88 -0
- data/ext/pg_query/include/utils/regproc.h +14 -3
- data/ext/pg_query/include/utils/rel.h +71 -19
- data/ext/pg_query/include/utils/relcache.h +8 -5
- data/ext/pg_query/include/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/utils/resowner.h +1 -1
- data/ext/pg_query/include/utils/rls.h +2 -2
- data/ext/pg_query/include/utils/ruleutils.h +4 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +34 -14
- data/ext/pg_query/include/utils/snapshot.h +14 -1
- data/ext/pg_query/include/utils/sortsupport.h +117 -2
- data/ext/pg_query/include/utils/syscache.h +6 -1
- data/ext/pg_query/include/utils/timeout.h +11 -4
- data/ext/pg_query/include/utils/timestamp.h +6 -5
- data/ext/pg_query/include/utils/tuplesort.h +25 -11
- data/ext/pg_query/include/utils/tuplestore.h +2 -2
- data/ext/pg_query/include/utils/typcache.h +24 -17
- data/ext/pg_query/include/utils/tzparser.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +5 -3
- data/ext/pg_query/include/utils/wait_event.h +289 -0
- data/ext/pg_query/include/utils/xml.h +4 -4
- data/ext/pg_query/pg_query.pb-c.c +4302 -2304
- data/ext/pg_query/pg_query_deparse.c +1106 -373
- data/ext/pg_query/pg_query_fingerprint.c +30 -10
- data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
- data/ext/pg_query/pg_query_scan.c +2 -1
- data/ext/pg_query/pg_query_split.c +3 -2
- data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +74 -11
- data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
- data/ext/pg_query/src_backend_parser_parser.c +26 -7
- data/ext/pg_query/src_backend_parser_scan.c +172 -209
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
- data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
- data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
- data/ext/pg_query/src_common_encnames.c +1 -1
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +517 -494
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_pg_prng.c +152 -0
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_string.c +7 -1
- data/ext/pg_query/src_common_stringinfo.c +1 -1
- data/ext/pg_query/src_common_wchar.c +701 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
- 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 +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/src_port_pg_bitutils.c +41 -31
- data/ext/pg_query/src_port_pgsleep.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +37 -13
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +5 -1
- data/lib/pg_query/node.rb +2 -2
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +20 -8
- data/lib/pg_query/pg_query_pb.rb +1108 -942
- data/lib/pg_query/treewalker.rb +6 -0
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +27 -17
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_random.c +0 -31
|
@@ -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-2022, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1995, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/include/postgres.h
|
|
@@ -55,7 +55,9 @@
|
|
|
55
55
|
/*
|
|
56
56
|
* struct varatt_external is a traditional "TOAST pointer", that is, the
|
|
57
57
|
* information needed to fetch a Datum stored out-of-line in a TOAST table.
|
|
58
|
-
* The data is compressed if and only if
|
|
58
|
+
* The data is compressed if and only if the external size stored in
|
|
59
|
+
* va_extinfo is less than va_rawsize - VARHDRSZ.
|
|
60
|
+
*
|
|
59
61
|
* This struct must not contain any padding, because we sometimes compare
|
|
60
62
|
* these pointers using memcmp.
|
|
61
63
|
*
|
|
@@ -67,11 +69,19 @@
|
|
|
67
69
|
typedef struct varatt_external
|
|
68
70
|
{
|
|
69
71
|
int32 va_rawsize; /* Original data size (includes header) */
|
|
70
|
-
|
|
72
|
+
uint32 va_extinfo; /* External saved size (without header) and
|
|
73
|
+
* compression method */
|
|
71
74
|
Oid va_valueid; /* Unique ID of value within TOAST table */
|
|
72
75
|
Oid va_toastrelid; /* RelID of TOAST table containing it */
|
|
73
76
|
} varatt_external;
|
|
74
77
|
|
|
78
|
+
/*
|
|
79
|
+
* These macros define the "saved size" portion of va_extinfo. Its remaining
|
|
80
|
+
* two high-order bits identify the compression method.
|
|
81
|
+
*/
|
|
82
|
+
#define VARLENA_EXTSIZE_BITS 30
|
|
83
|
+
#define VARLENA_EXTSIZE_MASK ((1U << VARLENA_EXTSIZE_BITS) - 1)
|
|
84
|
+
|
|
75
85
|
/*
|
|
76
86
|
* struct varatt_indirect is a "TOAST pointer" representing an out-of-line
|
|
77
87
|
* Datum that's stored in memory, not in an external toast relation.
|
|
@@ -145,7 +155,8 @@ typedef union
|
|
|
145
155
|
struct /* Compressed-in-line format */
|
|
146
156
|
{
|
|
147
157
|
uint32 va_header;
|
|
148
|
-
uint32
|
|
158
|
+
uint32 va_tcinfo; /* Original data size (excludes header) and
|
|
159
|
+
* compression method; see va_extinfo */
|
|
149
160
|
char va_data[FLEXIBLE_ARRAY_MEMBER]; /* Compressed data */
|
|
150
161
|
} va_compressed;
|
|
151
162
|
} varattrib_4b;
|
|
@@ -231,6 +242,7 @@ typedef struct
|
|
|
231
242
|
#define SET_VARTAG_1B_E(PTR,tag) \
|
|
232
243
|
(((varattrib_1b_e *) (PTR))->va_header = 0x80, \
|
|
233
244
|
((varattrib_1b_e *) (PTR))->va_tag = (tag))
|
|
245
|
+
|
|
234
246
|
#else /* !WORDS_BIGENDIAN */
|
|
235
247
|
|
|
236
248
|
#define VARATT_IS_4B(PTR) \
|
|
@@ -263,9 +275,22 @@ typedef struct
|
|
|
263
275
|
#define SET_VARTAG_1B_E(PTR,tag) \
|
|
264
276
|
(((varattrib_1b_e *) (PTR))->va_header = 0x01, \
|
|
265
277
|
((varattrib_1b_e *) (PTR))->va_tag = (tag))
|
|
278
|
+
|
|
266
279
|
#endif /* WORDS_BIGENDIAN */
|
|
267
280
|
|
|
281
|
+
#define VARDATA_4B(PTR) (((varattrib_4b *) (PTR))->va_4byte.va_data)
|
|
282
|
+
#define VARDATA_4B_C(PTR) (((varattrib_4b *) (PTR))->va_compressed.va_data)
|
|
283
|
+
#define VARDATA_1B(PTR) (((varattrib_1b *) (PTR))->va_data)
|
|
284
|
+
#define VARDATA_1B_E(PTR) (((varattrib_1b_e *) (PTR))->va_data)
|
|
285
|
+
|
|
286
|
+
/*
|
|
287
|
+
* Externally visible TOAST macros begin here.
|
|
288
|
+
*/
|
|
289
|
+
|
|
290
|
+
#define VARHDRSZ_EXTERNAL offsetof(varattrib_1b_e, va_data)
|
|
291
|
+
#define VARHDRSZ_COMPRESSED offsetof(varattrib_4b, va_compressed.va_data)
|
|
268
292
|
#define VARHDRSZ_SHORT offsetof(varattrib_1b, va_data)
|
|
293
|
+
|
|
269
294
|
#define VARATT_SHORT_MAX 0x7F
|
|
270
295
|
#define VARATT_CAN_MAKE_SHORT(PTR) \
|
|
271
296
|
(VARATT_IS_4B_U(PTR) && \
|
|
@@ -273,18 +298,6 @@ typedef struct
|
|
|
273
298
|
#define VARATT_CONVERTED_SHORT_SIZE(PTR) \
|
|
274
299
|
(VARSIZE(PTR) - VARHDRSZ + VARHDRSZ_SHORT)
|
|
275
300
|
|
|
276
|
-
#define VARHDRSZ_EXTERNAL offsetof(varattrib_1b_e, va_data)
|
|
277
|
-
|
|
278
|
-
#define VARDATA_4B(PTR) (((varattrib_4b *) (PTR))->va_4byte.va_data)
|
|
279
|
-
#define VARDATA_4B_C(PTR) (((varattrib_4b *) (PTR))->va_compressed.va_data)
|
|
280
|
-
#define VARDATA_1B(PTR) (((varattrib_1b *) (PTR))->va_data)
|
|
281
|
-
#define VARDATA_1B_E(PTR) (((varattrib_1b_e *) (PTR))->va_data)
|
|
282
|
-
|
|
283
|
-
#define VARRAWSIZE_4B_C(PTR) \
|
|
284
|
-
(((varattrib_4b *) (PTR))->va_compressed.va_rawsize)
|
|
285
|
-
|
|
286
|
-
/* Externally visible macros */
|
|
287
|
-
|
|
288
301
|
/*
|
|
289
302
|
* In consumers oblivious to data alignment, call PG_DETOAST_DATUM_PACKED(),
|
|
290
303
|
* VARDATA_ANY(), VARSIZE_ANY() and VARSIZE_ANY_EXHDR(). Elsewhere, call
|
|
@@ -348,6 +361,37 @@ typedef struct
|
|
|
348
361
|
#define VARDATA_ANY(PTR) \
|
|
349
362
|
(VARATT_IS_1B(PTR) ? VARDATA_1B(PTR) : VARDATA_4B(PTR))
|
|
350
363
|
|
|
364
|
+
/* Decompressed size and compression method of a compressed-in-line Datum */
|
|
365
|
+
#define VARDATA_COMPRESSED_GET_EXTSIZE(PTR) \
|
|
366
|
+
(((varattrib_4b *) (PTR))->va_compressed.va_tcinfo & VARLENA_EXTSIZE_MASK)
|
|
367
|
+
#define VARDATA_COMPRESSED_GET_COMPRESS_METHOD(PTR) \
|
|
368
|
+
(((varattrib_4b *) (PTR))->va_compressed.va_tcinfo >> VARLENA_EXTSIZE_BITS)
|
|
369
|
+
|
|
370
|
+
/* Same for external Datums; but note argument is a struct varatt_external */
|
|
371
|
+
#define VARATT_EXTERNAL_GET_EXTSIZE(toast_pointer) \
|
|
372
|
+
((toast_pointer).va_extinfo & VARLENA_EXTSIZE_MASK)
|
|
373
|
+
#define VARATT_EXTERNAL_GET_COMPRESS_METHOD(toast_pointer) \
|
|
374
|
+
((toast_pointer).va_extinfo >> VARLENA_EXTSIZE_BITS)
|
|
375
|
+
|
|
376
|
+
#define VARATT_EXTERNAL_SET_SIZE_AND_COMPRESS_METHOD(toast_pointer, len, cm) \
|
|
377
|
+
do { \
|
|
378
|
+
Assert((cm) == TOAST_PGLZ_COMPRESSION_ID || \
|
|
379
|
+
(cm) == TOAST_LZ4_COMPRESSION_ID); \
|
|
380
|
+
((toast_pointer).va_extinfo = \
|
|
381
|
+
(len) | ((uint32) (cm) << VARLENA_EXTSIZE_BITS)); \
|
|
382
|
+
} while (0)
|
|
383
|
+
|
|
384
|
+
/*
|
|
385
|
+
* Testing whether an externally-stored value is compressed now requires
|
|
386
|
+
* comparing size stored in va_extinfo (the actual length of the external data)
|
|
387
|
+
* to rawsize (the original uncompressed datum's size). The latter includes
|
|
388
|
+
* VARHDRSZ overhead, the former doesn't. We never use compression unless it
|
|
389
|
+
* actually saves space, so we expect either equality or less-than.
|
|
390
|
+
*/
|
|
391
|
+
#define VARATT_EXTERNAL_IS_COMPRESSED(toast_pointer) \
|
|
392
|
+
(VARATT_EXTERNAL_GET_EXTSIZE(toast_pointer) < \
|
|
393
|
+
(toast_pointer).va_rawsize - VARHDRSZ)
|
|
394
|
+
|
|
351
395
|
|
|
352
396
|
/* ----------------------------------------------------------------
|
|
353
397
|
* Section 2: Datum type + support macros
|
|
@@ -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-2022, 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
|
|
@@ -27,25 +27,25 @@ typedef enum
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
/* GUC variables */
|
|
30
|
-
extern bool autovacuum_start_daemon;
|
|
31
|
-
extern int
|
|
32
|
-
extern int
|
|
33
|
-
extern int
|
|
34
|
-
extern int
|
|
35
|
-
extern double autovacuum_vac_scale;
|
|
36
|
-
extern int
|
|
37
|
-
extern double autovacuum_vac_ins_scale;
|
|
38
|
-
extern int
|
|
39
|
-
extern double autovacuum_anl_scale;
|
|
40
|
-
extern int
|
|
41
|
-
extern int
|
|
42
|
-
extern double autovacuum_vac_cost_delay;
|
|
43
|
-
extern int
|
|
30
|
+
extern PGDLLIMPORT bool autovacuum_start_daemon;
|
|
31
|
+
extern PGDLLIMPORT int autovacuum_max_workers;
|
|
32
|
+
extern PGDLLIMPORT int autovacuum_work_mem;
|
|
33
|
+
extern PGDLLIMPORT int autovacuum_naptime;
|
|
34
|
+
extern PGDLLIMPORT int autovacuum_vac_thresh;
|
|
35
|
+
extern PGDLLIMPORT double autovacuum_vac_scale;
|
|
36
|
+
extern PGDLLIMPORT int autovacuum_vac_ins_thresh;
|
|
37
|
+
extern PGDLLIMPORT double autovacuum_vac_ins_scale;
|
|
38
|
+
extern PGDLLIMPORT int autovacuum_anl_thresh;
|
|
39
|
+
extern PGDLLIMPORT double autovacuum_anl_scale;
|
|
40
|
+
extern PGDLLIMPORT int autovacuum_freeze_max_age;
|
|
41
|
+
extern PGDLLIMPORT int autovacuum_multixact_freeze_max_age;
|
|
42
|
+
extern PGDLLIMPORT double autovacuum_vac_cost_delay;
|
|
43
|
+
extern PGDLLIMPORT int autovacuum_vac_cost_limit;
|
|
44
44
|
|
|
45
45
|
/* autovacuum launcher PID, only valid when worker is shutting down */
|
|
46
|
-
extern int
|
|
46
|
+
extern PGDLLIMPORT int AutovacuumLauncherPid;
|
|
47
47
|
|
|
48
|
-
extern int
|
|
48
|
+
extern PGDLLIMPORT int Log_autovacuum_min_duration;
|
|
49
49
|
|
|
50
50
|
/* Status inquiry functions */
|
|
51
51
|
extern bool AutoVacuumingActive(void);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
* auxprocess.h
|
|
3
|
+
* include file for functions related to auxiliary processes.
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* IDENTIFICATION
|
|
10
|
+
* src/include/postmaster/auxprocess.h
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef AUXPROCESS_H
|
|
14
|
+
#define AUXPROCESS_H
|
|
15
|
+
|
|
16
|
+
#include "miscadmin.h"
|
|
17
|
+
|
|
18
|
+
extern void AuxiliaryProcessMain(AuxProcType auxtype) pg_attribute_noreturn();
|
|
19
|
+
|
|
20
|
+
#endif /* AUXPROCESS_H */
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* different) code.
|
|
32
32
|
*
|
|
33
33
|
*
|
|
34
|
-
* Portions Copyright (c) 1996-
|
|
34
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
35
35
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
36
36
|
*
|
|
37
37
|
* IDENTIFICATION
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
|
|
49
49
|
/*
|
|
50
50
|
* Pass this flag to have your worker be able to connect to shared memory.
|
|
51
|
+
* This flag is required.
|
|
51
52
|
*/
|
|
52
53
|
#define BGWORKER_SHMEM_ACCESS 0x0001
|
|
53
54
|
|
|
@@ -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-2022, PostgreSQL Global Development Group
|
|
6
6
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
7
|
*
|
|
8
8
|
* IDENTIFICATION
|
|
@@ -42,7 +42,7 @@ typedef struct RegisteredBgWorker
|
|
|
42
42
|
slist_node rw_lnode; /* list link */
|
|
43
43
|
} RegisteredBgWorker;
|
|
44
44
|
|
|
45
|
-
extern slist_head BackgroundWorkerList;
|
|
45
|
+
extern PGDLLIMPORT slist_head BackgroundWorkerList;
|
|
46
46
|
|
|
47
47
|
extern Size BackgroundWorkerShmemSize(void);
|
|
48
48
|
extern void BackgroundWorkerShmemInit(void);
|
|
@@ -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-2022, PostgreSQL Global Development Group
|
|
10
10
|
*
|
|
11
11
|
* src/include/postmaster/bgwriter.h
|
|
12
12
|
*
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
/* GUC options */
|
|
25
|
-
extern int
|
|
26
|
-
extern int
|
|
27
|
-
extern int
|
|
28
|
-
extern double CheckPointCompletionTarget;
|
|
25
|
+
extern PGDLLIMPORT int BgWriterDelay;
|
|
26
|
+
extern PGDLLIMPORT int CheckPointTimeout;
|
|
27
|
+
extern PGDLLIMPORT int CheckPointWarning;
|
|
28
|
+
extern PGDLLIMPORT double CheckPointCompletionTarget;
|
|
29
29
|
|
|
30
30
|
extern void BackgroundWriterMain(void) pg_attribute_noreturn();
|
|
31
31
|
extern void CheckpointerMain(void) pg_attribute_noreturn();
|
|
@@ -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-2022, 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-2022, 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
|
|
@@ -26,14 +26,48 @@
|
|
|
26
26
|
#define MAX_XFN_CHARS 40
|
|
27
27
|
#define VALID_XFN_CHARS "0123456789ABCDEF.history.backup.partial"
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
extern Size PgArchShmemSize(void);
|
|
30
|
+
extern void PgArchShmemInit(void);
|
|
31
|
+
extern bool PgArchCanRestart(void);
|
|
32
|
+
extern void PgArchiverMain(void) pg_attribute_noreturn();
|
|
33
|
+
extern void PgArchWakeup(void);
|
|
34
|
+
extern void PgArchForceDirScan(void);
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* The value of the archive_library GUC.
|
|
38
|
+
*/
|
|
39
|
+
extern PGDLLIMPORT char *XLogArchiveLibrary;
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* Archive module callbacks
|
|
43
|
+
*
|
|
44
|
+
* These callback functions should be defined by archive libraries and returned
|
|
45
|
+
* via _PG_archive_module_init(). ArchiveFileCB is the only required callback.
|
|
46
|
+
* For more information about the purpose of each callback, refer to the
|
|
47
|
+
* archive modules documentation.
|
|
32
48
|
*/
|
|
33
|
-
|
|
49
|
+
typedef bool (*ArchiveCheckConfiguredCB) (void);
|
|
50
|
+
typedef bool (*ArchiveFileCB) (const char *file, const char *path);
|
|
51
|
+
typedef void (*ArchiveShutdownCB) (void);
|
|
52
|
+
|
|
53
|
+
typedef struct ArchiveModuleCallbacks
|
|
54
|
+
{
|
|
55
|
+
ArchiveCheckConfiguredCB check_configured_cb;
|
|
56
|
+
ArchiveFileCB archive_file_cb;
|
|
57
|
+
ArchiveShutdownCB shutdown_cb;
|
|
58
|
+
} ArchiveModuleCallbacks;
|
|
34
59
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
60
|
+
/*
|
|
61
|
+
* Type of the shared library symbol _PG_archive_module_init that is looked
|
|
62
|
+
* up when loading an archive library.
|
|
63
|
+
*/
|
|
64
|
+
typedef void (*ArchiveModuleInit) (ArchiveModuleCallbacks *cb);
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* Since the logic for archiving via a shell command is in the core server
|
|
68
|
+
* and does not need to be loaded via a shared library, it has a special
|
|
69
|
+
* initialization function.
|
|
70
|
+
*/
|
|
71
|
+
extern void shell_archive_init(ArchiveModuleCallbacks *cb);
|
|
38
72
|
|
|
39
73
|
#endif /* _PGARCH_H */
|
|
@@ -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-2022, 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
|
|
@@ -14,26 +14,27 @@
|
|
|
14
14
|
#define _POSTMASTER_H
|
|
15
15
|
|
|
16
16
|
/* GUC options */
|
|
17
|
-
extern bool EnableSSL;
|
|
18
|
-
extern int
|
|
17
|
+
extern PGDLLIMPORT bool EnableSSL;
|
|
18
|
+
extern PGDLLIMPORT int ReservedBackends;
|
|
19
19
|
extern PGDLLIMPORT int PostPortNumber;
|
|
20
|
-
extern int
|
|
21
|
-
extern char *Unix_socket_group;
|
|
22
|
-
extern char *Unix_socket_directories;
|
|
23
|
-
extern char *ListenAddresses;
|
|
24
|
-
extern __thread bool ClientAuthInProgress;
|
|
25
|
-
extern int
|
|
26
|
-
extern int
|
|
27
|
-
extern bool Log_connections;
|
|
28
|
-
extern bool log_hostname;
|
|
29
|
-
extern bool enable_bonjour;
|
|
30
|
-
extern char *bonjour_name;
|
|
31
|
-
extern bool restart_after_crash;
|
|
20
|
+
extern PGDLLIMPORT int Unix_socket_permissions;
|
|
21
|
+
extern PGDLLIMPORT char *Unix_socket_group;
|
|
22
|
+
extern PGDLLIMPORT char *Unix_socket_directories;
|
|
23
|
+
extern PGDLLIMPORT char *ListenAddresses;
|
|
24
|
+
extern PGDLLIMPORT __thread bool ClientAuthInProgress;
|
|
25
|
+
extern PGDLLIMPORT int PreAuthDelay;
|
|
26
|
+
extern PGDLLIMPORT int AuthenticationTimeout;
|
|
27
|
+
extern PGDLLIMPORT bool Log_connections;
|
|
28
|
+
extern PGDLLIMPORT bool log_hostname;
|
|
29
|
+
extern PGDLLIMPORT bool enable_bonjour;
|
|
30
|
+
extern PGDLLIMPORT char *bonjour_name;
|
|
31
|
+
extern PGDLLIMPORT bool restart_after_crash;
|
|
32
|
+
extern PGDLLIMPORT bool remove_temp_files_after_crash;
|
|
32
33
|
|
|
33
34
|
#ifdef WIN32
|
|
34
|
-
extern HANDLE PostmasterHandle;
|
|
35
|
+
extern PGDLLIMPORT HANDLE PostmasterHandle;
|
|
35
36
|
#else
|
|
36
|
-
extern int
|
|
37
|
+
extern PGDLLIMPORT int postmaster_alive_fds[2];
|
|
37
38
|
|
|
38
39
|
/*
|
|
39
40
|
* Constants that represent which of postmaster_alive_fds is held by
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* startup.h
|
|
4
|
+
* Exports from postmaster/startup.c.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* src/include/postmaster/startup.h
|
|
9
|
+
*
|
|
10
|
+
*-------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
#ifndef _STARTUP_H
|
|
13
|
+
#define _STARTUP_H
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* Log the startup progress message if a timer has expired.
|
|
17
|
+
*/
|
|
18
|
+
#define ereport_startup_progress(msg, ...) \
|
|
19
|
+
do { \
|
|
20
|
+
long secs; \
|
|
21
|
+
int usecs; \
|
|
22
|
+
if (has_startup_progress_timeout_expired(&secs, &usecs)) \
|
|
23
|
+
ereport(LOG, errmsg(msg, secs, (usecs / 10000), __VA_ARGS__ )); \
|
|
24
|
+
} while(0)
|
|
25
|
+
|
|
26
|
+
extern PGDLLIMPORT int log_startup_progress_interval;
|
|
27
|
+
|
|
28
|
+
extern void HandleStartupProcInterrupts(void);
|
|
29
|
+
extern void StartupProcessMain(void) pg_attribute_noreturn();
|
|
30
|
+
extern void PreRestoreCommand(void);
|
|
31
|
+
extern void PostRestoreCommand(void);
|
|
32
|
+
extern bool IsPromoteSignaled(void);
|
|
33
|
+
extern void ResetPromoteSignaled(void);
|
|
34
|
+
|
|
35
|
+
extern void begin_startup_progress_phase(void);
|
|
36
|
+
extern void startup_progress_timeout_handler(void);
|
|
37
|
+
extern bool has_startup_progress_timeout_expired(long *secs, int *usecs);
|
|
38
|
+
|
|
39
|
+
#endif /* _STARTUP_H */
|
|
@@ -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-2022, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/postmaster/syslogger.h
|
|
9
9
|
*
|
|
@@ -46,8 +46,7 @@ typedef struct
|
|
|
46
46
|
char nuls[2]; /* always \0\0 */
|
|
47
47
|
uint16 len; /* size of this chunk (counts data only) */
|
|
48
48
|
int32 pid; /* writer's pid */
|
|
49
|
-
|
|
50
|
-
* 'F' for CSV case) */
|
|
49
|
+
bits8 flags; /* bitmask of PIPE_PROTO_* */
|
|
51
50
|
char data[FLEXIBLE_ARRAY_MEMBER]; /* data payload starts here */
|
|
52
51
|
} PipeProtoHeader;
|
|
53
52
|
|
|
@@ -60,20 +59,26 @@ typedef union
|
|
|
60
59
|
#define PIPE_HEADER_SIZE offsetof(PipeProtoHeader, data)
|
|
61
60
|
#define PIPE_MAX_PAYLOAD ((int) (PIPE_CHUNK_SIZE - PIPE_HEADER_SIZE))
|
|
62
61
|
|
|
62
|
+
/* flag bits for PipeProtoHeader->flags */
|
|
63
|
+
#define PIPE_PROTO_IS_LAST 0x01 /* last chunk of message? */
|
|
64
|
+
/* log destinations */
|
|
65
|
+
#define PIPE_PROTO_DEST_STDERR 0x10
|
|
66
|
+
#define PIPE_PROTO_DEST_CSVLOG 0x20
|
|
67
|
+
#define PIPE_PROTO_DEST_JSONLOG 0x40
|
|
63
68
|
|
|
64
69
|
/* GUC options */
|
|
65
|
-
extern bool Logging_collector;
|
|
66
|
-
extern int
|
|
67
|
-
extern int
|
|
70
|
+
extern PGDLLIMPORT bool Logging_collector;
|
|
71
|
+
extern PGDLLIMPORT int Log_RotationAge;
|
|
72
|
+
extern PGDLLIMPORT int Log_RotationSize;
|
|
68
73
|
extern PGDLLIMPORT char *Log_directory;
|
|
69
74
|
extern PGDLLIMPORT char *Log_filename;
|
|
70
|
-
extern bool Log_truncate_on_rotation;
|
|
71
|
-
extern int
|
|
75
|
+
extern PGDLLIMPORT bool Log_truncate_on_rotation;
|
|
76
|
+
extern PGDLLIMPORT int Log_file_mode;
|
|
72
77
|
|
|
73
78
|
#ifndef WIN32
|
|
74
|
-
extern int
|
|
79
|
+
extern PGDLLIMPORT int syslogPipe[2];
|
|
75
80
|
#else
|
|
76
|
-
extern HANDLE syslogPipe[2];
|
|
81
|
+
extern PGDLLIMPORT HANDLE syslogPipe[2];
|
|
77
82
|
#endif
|
|
78
83
|
|
|
79
84
|
|
|
@@ -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-2022, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/postmaster/walwriter.h
|
|
9
9
|
*
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
#define _WALWRITER_H
|
|
14
14
|
|
|
15
15
|
/* GUC options */
|
|
16
|
-
extern int
|
|
17
|
-
extern int
|
|
16
|
+
extern PGDLLIMPORT int WalWriterDelay;
|
|
17
|
+
extern PGDLLIMPORT int WalWriterFlushAfter;
|
|
18
18
|
|
|
19
19
|
extern void WalWriterMain(void) pg_attribute_noreturn();
|
|
20
20
|
|