pg_query 4.2.3 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +6 -8
- data/Rakefile +3 -3
- data/ext/pg_query/extconf.rb +1 -3
- data/ext/pg_query/include/access/amapi.h +3 -1
- data/ext/pg_query/include/access/attmap.h +5 -3
- data/ext/pg_query/include/access/attnum.h +1 -1
- data/ext/pg_query/include/access/clog.h +1 -1
- data/ext/pg_query/include/access/commit_ts.h +1 -1
- data/ext/pg_query/include/access/detoast.h +1 -1
- data/ext/pg_query/include/access/genam.h +7 -5
- data/ext/pg_query/include/access/gin.h +16 -3
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +6 -2
- data/ext/pg_query/include/access/itup.h +61 -58
- 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 +1 -1
- data/ext/pg_query/include/access/rmgrlist.h +2 -2
- data/ext/pg_query/include/access/sdir.h +12 -3
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +1 -1
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +1 -1
- data/ext/pg_query/include/access/tableam.h +68 -45
- data/ext/pg_query/include/access/toast_compression.h +1 -1
- data/ext/pg_query/include/access/transam.h +1 -1
- data/ext/pg_query/include/access/tsmapi.h +82 -0
- data/ext/pg_query/include/access/tupconvert.h +5 -2
- data/ext/pg_query/include/access/tupdesc.h +2 -2
- data/ext/pg_query/include/access/tupmacs.h +58 -98
- data/ext/pg_query/include/access/twophase.h +2 -2
- data/ext/pg_query/include/access/xact.h +25 -18
- data/ext/pg_query/include/access/xlog.h +15 -16
- data/ext/pg_query/include/access/xlog_internal.h +100 -62
- data/ext/pg_query/include/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/access/xlogdefs.h +6 -25
- data/ext/pg_query/include/access/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/access/xlogreader.h +7 -6
- data/ext/pg_query/include/access/xlogrecord.h +17 -5
- data/ext/pg_query/include/access/xlogrecovery.h +4 -3
- data/ext/pg_query/include/archive/archive_module.h +59 -0
- data/ext/pg_query/include/c.h +144 -156
- data/ext/pg_query/include/catalog/catalog.h +4 -3
- data/ext/pg_query/include/catalog/catversion.h +6 -2
- data/ext/pg_query/include/catalog/dependency.h +5 -4
- data/ext/pg_query/include/catalog/genbki.h +7 -6
- data/ext/pg_query/include/catalog/index.h +4 -4
- data/ext/pg_query/include/catalog/indexing.h +1 -1
- data/ext/pg_query/include/catalog/namespace.h +2 -2
- data/ext/pg_query/include/catalog/objectaccess.h +10 -8
- data/ext/pg_query/include/catalog/objectaddress.h +3 -3
- data/ext/pg_query/include/catalog/pg_aggregate.h +1 -1
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_am.h +1 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +19 -17
- data/ext/pg_query/include/catalog/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/catalog/pg_authid.h +1 -1
- data/ext/pg_query/include/catalog/pg_authid_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_class.h +1 -1
- data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_collation.h +3 -1
- data/ext/pg_query/include/catalog/pg_collation_d.h +4 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +2 -2
- data/ext/pg_query/include/catalog/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_control.h +9 -1
- data/ext/pg_query/include/catalog/pg_conversion.h +2 -2
- data/ext/pg_query/include/catalog/pg_conversion_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/catalog/pg_depend.h +1 -1
- data/ext/pg_query/include/catalog/pg_depend_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_index.h +1 -1
- data/ext/pg_query/include/catalog/pg_index_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_language.h +1 -1
- data/ext/pg_query/include/catalog/pg_language_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +1 -1
- data/ext/pg_query/include/catalog/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +1 -1
- data/ext/pg_query/include/catalog/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_operator.h +1 -1
- data/ext/pg_query/include/catalog/pg_operator_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +3 -2
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_proc.h +1 -1
- data/ext/pg_query/include/catalog/pg_proc_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_publication.h +2 -5
- data/ext/pg_query/include/catalog/pg_publication_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_transform.h +1 -1
- data/ext/pg_query/include/catalog/pg_transform_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +1 -1
- data/ext/pg_query/include/catalog/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +1 -1
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_type.h +1 -1
- data/ext/pg_query/include/catalog/pg_type_d.h +1 -1
- data/ext/pg_query/include/catalog/storage.h +6 -6
- data/ext/pg_query/include/commands/async.h +1 -1
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +2 -1
- data/ext/pg_query/include/commands/event_trigger.h +1 -1
- data/ext/pg_query/include/commands/explain.h +3 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +4 -4
- data/ext/pg_query/include/commands/trigger.h +15 -14
- data/ext/pg_query/include/commands/user.h +9 -3
- data/ext/pg_query/include/commands/vacuum.h +60 -14
- data/ext/pg_query/include/common/cryptohash.h +39 -0
- data/ext/pg_query/include/common/file_perm.h +1 -1
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/int.h +437 -0
- data/ext/pg_query/include/common/ip.h +4 -2
- data/ext/pg_query/include/common/keywords.h +1 -1
- data/ext/pg_query/include/common/kwlookup.h +2 -2
- data/ext/pg_query/include/common/pg_prng.h +3 -2
- data/ext/pg_query/include/common/relpath.h +20 -13
- data/ext/pg_query/include/common/scram-common.h +70 -0
- data/ext/pg_query/include/common/sha2.h +32 -0
- data/ext/pg_query/include/common/string.h +5 -3
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/common/{unicode_combining_table.h → unicode_nonspacing_table.h} +31 -13
- data/ext/pg_query/include/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/datatype/timestamp.h +11 -4
- data/ext/pg_query/include/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +34 -17
- data/ext/pg_query/include/executor/functions.h +1 -1
- data/ext/pg_query/include/executor/instrument.h +1 -1
- data/ext/pg_query/include/executor/spi.h +2 -2
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +18 -11
- data/ext/pg_query/include/fmgr.h +21 -2
- data/ext/pg_query/include/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/funcapi.h +12 -12
- data/ext/pg_query/include/gram.h +1127 -0
- data/ext/pg_query/include/{parser/gramparse.h → gramparse.h} +4 -4
- data/ext/pg_query/include/jit/jit.h +2 -2
- data/ext/pg_query/include/kwlist_d.h +534 -510
- data/ext/pg_query/include/lib/dshash.h +4 -1
- data/ext/pg_query/include/lib/ilist.h +435 -22
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +9 -9
- data/ext/pg_query/include/lib/sort_template.h +1 -1
- data/ext/pg_query/include/lib/stringinfo.h +3 -3
- data/ext/pg_query/include/libpq/auth.h +8 -2
- data/ext/pg_query/include/libpq/crypt.h +1 -1
- data/ext/pg_query/include/libpq/hba.h +24 -17
- data/ext/pg_query/include/libpq/libpq-be.h +36 -25
- data/ext/pg_query/include/libpq/libpq.h +1 -1
- data/ext/pg_query/include/libpq/pqcomm.h +10 -41
- data/ext/pg_query/include/libpq/pqformat.h +2 -2
- data/ext/pg_query/include/libpq/pqsignal.h +22 -10
- data/ext/pg_query/include/libpq/sasl.h +136 -0
- data/ext/pg_query/include/libpq/scram.h +37 -0
- data/ext/pg_query/include/mb/pg_wchar.h +35 -18
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +26 -14
- data/ext/pg_query/include/nodes/bitmapset.h +11 -7
- data/ext/pg_query/include/nodes/execnodes.h +83 -30
- data/ext/pg_query/include/nodes/extensible.h +5 -3
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +14 -2
- data/ext/pg_query/include/nodes/memnodes.h +7 -4
- data/ext/pg_query/include/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/nodes/nodeFuncs.h +89 -29
- data/ext/pg_query/include/nodes/nodes.h +95 -510
- data/ext/pg_query/include/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/nodes/params.h +3 -3
- data/ext/pg_query/include/nodes/parsenodes.h +377 -139
- data/ext/pg_query/include/nodes/pathnodes.h +1090 -440
- data/ext/pg_query/include/nodes/pg_list.h +30 -7
- data/ext/pg_query/include/nodes/plannodes.h +367 -124
- data/ext/pg_query/include/nodes/primnodes.h +670 -222
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/{utils → nodes}/queryjumble.h +5 -7
- data/ext/pg_query/include/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +12 -2
- data/ext/pg_query/include/optimizer/cost.h +6 -4
- data/ext/pg_query/include/optimizer/geqo.h +1 -1
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +8 -8
- data/ext/pg_query/include/optimizer/paths.h +16 -7
- data/ext/pg_query/include/optimizer/planmain.h +3 -6
- data/ext/pg_query/include/parser/analyze.h +4 -3
- data/ext/pg_query/include/parser/kwlist.h +12 -1
- data/ext/pg_query/include/parser/parse_agg.h +4 -2
- data/ext/pg_query/include/parser/parse_coerce.h +3 -1
- data/ext/pg_query/include/parser/parse_expr.h +1 -1
- data/ext/pg_query/include/parser/parse_func.h +1 -1
- data/ext/pg_query/include/parser/parse_node.h +22 -4
- data/ext/pg_query/include/parser/parse_oper.h +3 -3
- data/ext/pg_query/include/parser/parse_relation.h +8 -3
- data/ext/pg_query/include/parser/parse_type.h +4 -3
- data/ext/pg_query/include/parser/parser.h +1 -1
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +2 -2
- data/ext/pg_query/include/parser/scansup.h +1 -1
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +21 -216
- data/ext/pg_query/include/pg_config_manual.h +8 -46
- data/ext/pg_query/include/pg_getopt.h +1 -1
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +172 -93
- data/ext/pg_query/include/pgtime.h +3 -3
- data/ext/pg_query/include/pl_gram.h +64 -62
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -1
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/include/plpgsql.h +17 -22
- data/ext/pg_query/include/port/atomics/arch-arm.h +3 -3
- data/ext/pg_query/include/port/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/port/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/port/atomics/fallback.h +3 -3
- data/ext/pg_query/include/port/atomics/generic-gcc.h +1 -1
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +2 -7
- data/ext/pg_query/include/port/pg_bitutils.h +62 -25
- 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/simd.h +375 -0
- data/ext/pg_query/include/port.h +42 -75
- data/ext/pg_query/include/portability/instr_time.h +81 -140
- data/ext/pg_query/include/postgres.h +205 -434
- data/ext/pg_query/include/postgres_ext.h +0 -1
- data/ext/pg_query/include/postmaster/autovacuum.h +1 -4
- data/ext/pg_query/include/postmaster/auxprocess.h +1 -1
- data/ext/pg_query/include/postmaster/bgworker.h +2 -2
- data/ext/pg_query/include/postmaster/bgworker_internals.h +1 -1
- data/ext/pg_query/include/postmaster/bgwriter.h +2 -2
- 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 +1 -38
- data/ext/pg_query/include/postmaster/postmaster.h +5 -2
- data/ext/pg_query/include/postmaster/startup.h +3 -1
- data/ext/pg_query/include/postmaster/syslogger.h +2 -2
- data/ext/pg_query/include/postmaster/walwriter.h +3 -1
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/include/regex/regex.h +9 -6
- data/ext/pg_query/include/replication/logicallauncher.h +6 -1
- data/ext/pg_query/include/replication/logicalproto.h +30 -10
- data/ext/pg_query/include/replication/logicalworker.h +14 -1
- data/ext/pg_query/include/replication/origin.h +4 -4
- data/ext/pg_query/include/replication/reorderbuffer.h +113 -45
- data/ext/pg_query/include/replication/slot.h +25 -6
- data/ext/pg_query/include/replication/syncrep.h +2 -8
- data/ext/pg_query/include/replication/walreceiver.h +15 -9
- data/ext/pg_query/include/replication/walsender.h +13 -13
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -4
- data/ext/pg_query/include/rewrite/rewriteManip.h +11 -2
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +5321 -0
- data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +3354 -0
- data/ext/pg_query/include/storage/backendid.h +1 -1
- data/ext/pg_query/include/storage/block.h +24 -31
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +183 -87
- data/ext/pg_query/include/storage/bufpage.h +146 -93
- data/ext/pg_query/include/storage/condition_variable.h +2 -2
- data/ext/pg_query/include/storage/dsm.h +3 -6
- data/ext/pg_query/include/storage/dsm_impl.h +4 -1
- data/ext/pg_query/include/storage/fd.h +24 -20
- data/ext/pg_query/include/storage/fileset.h +1 -1
- data/ext/pg_query/include/storage/ipc.h +1 -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 +94 -57
- data/ext/pg_query/include/storage/large_object.h +1 -1
- data/ext/pg_query/include/storage/latch.h +9 -1
- data/ext/pg_query/include/storage/lmgr.h +6 -1
- data/ext/pg_query/include/storage/lock.h +21 -13
- data/ext/pg_query/include/storage/lockdefs.h +3 -3
- data/ext/pg_query/include/storage/lwlock.h +16 -2
- 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 +1 -1
- data/ext/pg_query/include/storage/pmsignal.h +1 -1
- data/ext/pg_query/include/storage/predicate.h +2 -2
- data/ext/pg_query/include/storage/proc.h +22 -17
- data/ext/pg_query/include/storage/procarray.h +3 -2
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -1
- data/ext/pg_query/include/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/storage/s_lock.h +66 -309
- data/ext/pg_query/include/storage/sharedfileset.h +1 -1
- data/ext/pg_query/include/storage/shm_mq.h +1 -1
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -23
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +4 -2
- data/ext/pg_query/include/storage/smgr.h +12 -10
- data/ext/pg_query/include/storage/spin.h +1 -1
- data/ext/pg_query/include/storage/standby.h +9 -8
- data/ext/pg_query/include/storage/standbydefs.h +1 -1
- data/ext/pg_query/include/storage/sync.h +3 -3
- data/ext/pg_query/include/tcop/cmdtag.h +7 -2
- data/ext/pg_query/include/tcop/cmdtaglist.h +1 -1
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -3
- data/ext/pg_query/include/tcop/fastpath.h +1 -1
- data/ext/pg_query/include/tcop/pquery.h +1 -1
- data/ext/pg_query/include/tcop/tcopprot.h +1 -4
- data/ext/pg_query/include/tcop/utility.h +1 -1
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -4
- data/ext/pg_query/include/utils/acl.h +26 -81
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +19 -1
- data/ext/pg_query/include/utils/backend_progress.h +2 -1
- data/ext/pg_query/include/utils/backend_status.h +24 -3
- data/ext/pg_query/include/utils/builtins.h +14 -5
- data/ext/pg_query/include/utils/bytea.h +1 -1
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +37 -9
- data/ext/pg_query/include/utils/datetime.h +41 -21
- data/ext/pg_query/include/utils/datum.h +1 -1
- data/ext/pg_query/include/utils/dsa.h +5 -1
- data/ext/pg_query/include/utils/elog.h +101 -26
- data/ext/pg_query/include/utils/expandeddatum.h +14 -3
- data/ext/pg_query/include/utils/expandedrecord.h +14 -4
- data/ext/pg_query/include/utils/float.h +7 -6
- data/ext/pg_query/include/utils/fmgroids.h +54 -1
- data/ext/pg_query/include/utils/fmgrprotos.h +45 -3
- data/ext/pg_query/include/utils/fmgrtab.h +1 -1
- data/ext/pg_query/include/utils/guc.h +55 -82
- data/ext/pg_query/include/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/utils/guc_tables.h +49 -3
- data/ext/pg_query/include/utils/hsearch.h +1 -1
- data/ext/pg_query/include/utils/inval.h +3 -3
- data/ext/pg_query/include/utils/logtape.h +77 -0
- data/ext/pg_query/include/utils/lsyscache.h +5 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +5 -49
- data/ext/pg_query/include/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/utils/numeric.h +20 -5
- data/ext/pg_query/include/utils/palloc.h +8 -1
- data/ext/pg_query/include/utils/partcache.h +3 -2
- data/ext/pg_query/include/utils/pg_locale.h +22 -14
- data/ext/pg_query/include/utils/pgstat_internal.h +37 -7
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +1 -1
- data/ext/pg_query/include/utils/portal.h +1 -1
- data/ext/pg_query/include/utils/probes.h +6 -6
- data/ext/pg_query/include/utils/ps_status.h +23 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/regproc.h +3 -3
- data/ext/pg_query/include/utils/rel.h +60 -43
- data/ext/pg_query/include/utils/relcache.h +13 -8
- 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/ruleutils.h +6 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +4 -2
- data/ext/pg_query/include/utils/snapshot.h +1 -1
- data/ext/pg_query/include/utils/sortsupport.h +2 -2
- data/ext/pg_query/include/utils/syscache.h +4 -1
- data/ext/pg_query/include/utils/timeout.h +1 -1
- data/ext/pg_query/include/utils/timestamp.h +41 -11
- data/ext/pg_query/include/utils/tuplesort.h +189 -35
- data/ext/pg_query/include/utils/tuplestore.h +1 -1
- data/ext/pg_query/include/utils/typcache.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +13 -1
- data/ext/pg_query/include/utils/wait_event.h +9 -4
- data/ext/pg_query/include/utils/xml.h +15 -5
- data/ext/pg_query/include/varatt.h +358 -0
- data/ext/pg_query/pg_query.c +1 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_fingerprint.c +8 -3
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +2 -2
- data/ext/pg_query/pg_query_parse.c +46 -4
- data/ext/pg_query/pg_query_parse_plpgsql.c +1 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +2 -2
- data/ext/pg_query/postgres_deparse.c +503 -105
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_postmaster_postmaster.c +129 -110
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- 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 +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +354 -97
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -2
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +13 -4
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +494 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- 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 +534 -510
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- 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 +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +3 -7
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +7 -2
- data/lib/pg_query/version.rb +1 -1
- metadata +43 -24
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Definitions for the PostgreSQL cumulative statistics system.
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2001-
|
|
6
|
+
* Copyright (c) 2001-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/pgstat.h
|
|
9
9
|
* ----------
|
|
@@ -48,6 +48,7 @@ typedef enum PgStat_Kind
|
|
|
48
48
|
PGSTAT_KIND_ARCHIVER,
|
|
49
49
|
PGSTAT_KIND_BGWRITER,
|
|
50
50
|
PGSTAT_KIND_CHECKPOINTER,
|
|
51
|
+
PGSTAT_KIND_IO,
|
|
51
52
|
PGSTAT_KIND_SLRU,
|
|
52
53
|
PGSTAT_KIND_WAL,
|
|
53
54
|
} PgStat_Kind;
|
|
@@ -105,20 +106,11 @@ typedef int64 PgStat_Counter;
|
|
|
105
106
|
*/
|
|
106
107
|
typedef struct PgStat_FunctionCounts
|
|
107
108
|
{
|
|
108
|
-
PgStat_Counter
|
|
109
|
-
instr_time
|
|
110
|
-
instr_time
|
|
109
|
+
PgStat_Counter numcalls;
|
|
110
|
+
instr_time total_time;
|
|
111
|
+
instr_time self_time;
|
|
111
112
|
} PgStat_FunctionCounts;
|
|
112
113
|
|
|
113
|
-
/* ----------
|
|
114
|
-
* PgStat_BackendFunctionEntry Non-flushed function stats.
|
|
115
|
-
* ----------
|
|
116
|
-
*/
|
|
117
|
-
typedef struct PgStat_BackendFunctionEntry
|
|
118
|
-
{
|
|
119
|
-
PgStat_FunctionCounts f_counts;
|
|
120
|
-
} PgStat_BackendFunctionEntry;
|
|
121
|
-
|
|
122
114
|
/*
|
|
123
115
|
* Working state needed to accumulate per-function-call timing statistics.
|
|
124
116
|
*/
|
|
@@ -132,7 +124,7 @@ typedef struct PgStat_FunctionCallUsage
|
|
|
132
124
|
/* Backend-wide total time as of function start */
|
|
133
125
|
instr_time save_total;
|
|
134
126
|
/* system clock as of function start */
|
|
135
|
-
instr_time
|
|
127
|
+
instr_time start;
|
|
136
128
|
} PgStat_FunctionCallUsage;
|
|
137
129
|
|
|
138
130
|
/* ----------
|
|
@@ -159,31 +151,32 @@ typedef struct PgStat_BackendSubEntry
|
|
|
159
151
|
* the index AM, while tuples_fetched is the number of tuples successfully
|
|
160
152
|
* fetched by heap_fetch under the control of simple indexscans for this index.
|
|
161
153
|
*
|
|
162
|
-
* tuples_inserted/updated/deleted/hot_updated count attempted
|
|
163
|
-
* regardless of whether the transaction committed. delta_live_tuples,
|
|
154
|
+
* tuples_inserted/updated/deleted/hot_updated/newpage_updated count attempted
|
|
155
|
+
* actions, regardless of whether the transaction committed. delta_live_tuples,
|
|
164
156
|
* delta_dead_tuples, and changed_tuples are set depending on commit or abort.
|
|
165
157
|
* Note that delta_live_tuples and delta_dead_tuples can be negative!
|
|
166
158
|
* ----------
|
|
167
159
|
*/
|
|
168
160
|
typedef struct PgStat_TableCounts
|
|
169
161
|
{
|
|
170
|
-
PgStat_Counter
|
|
162
|
+
PgStat_Counter numscans;
|
|
171
163
|
|
|
172
|
-
PgStat_Counter
|
|
173
|
-
PgStat_Counter
|
|
164
|
+
PgStat_Counter tuples_returned;
|
|
165
|
+
PgStat_Counter tuples_fetched;
|
|
174
166
|
|
|
175
|
-
PgStat_Counter
|
|
176
|
-
PgStat_Counter
|
|
177
|
-
PgStat_Counter
|
|
178
|
-
PgStat_Counter
|
|
179
|
-
|
|
167
|
+
PgStat_Counter tuples_inserted;
|
|
168
|
+
PgStat_Counter tuples_updated;
|
|
169
|
+
PgStat_Counter tuples_deleted;
|
|
170
|
+
PgStat_Counter tuples_hot_updated;
|
|
171
|
+
PgStat_Counter tuples_newpage_updated;
|
|
172
|
+
bool truncdropped;
|
|
180
173
|
|
|
181
|
-
PgStat_Counter
|
|
182
|
-
PgStat_Counter
|
|
183
|
-
PgStat_Counter
|
|
174
|
+
PgStat_Counter delta_live_tuples;
|
|
175
|
+
PgStat_Counter delta_dead_tuples;
|
|
176
|
+
PgStat_Counter changed_tuples;
|
|
184
177
|
|
|
185
|
-
PgStat_Counter
|
|
186
|
-
PgStat_Counter
|
|
178
|
+
PgStat_Counter blocks_fetched;
|
|
179
|
+
PgStat_Counter blocks_hit;
|
|
187
180
|
} PgStat_TableCounts;
|
|
188
181
|
|
|
189
182
|
/* ----------
|
|
@@ -203,10 +196,10 @@ typedef struct PgStat_TableCounts
|
|
|
203
196
|
*/
|
|
204
197
|
typedef struct PgStat_TableStatus
|
|
205
198
|
{
|
|
206
|
-
Oid
|
|
207
|
-
bool
|
|
199
|
+
Oid id; /* table's OID */
|
|
200
|
+
bool shared; /* is it a shared catalog? */
|
|
208
201
|
struct PgStat_TableXactStatus *trans; /* lowest subxact's counts */
|
|
209
|
-
PgStat_TableCounts
|
|
202
|
+
PgStat_TableCounts counts; /* event counts to be sent */
|
|
210
203
|
Relation relation; /* rel that is using this entry */
|
|
211
204
|
} PgStat_TableStatus;
|
|
212
205
|
|
|
@@ -242,7 +235,7 @@ typedef struct PgStat_TableXactStatus
|
|
|
242
235
|
* ------------------------------------------------------------
|
|
243
236
|
*/
|
|
244
237
|
|
|
245
|
-
#define PGSTAT_FILE_FORMAT_ID
|
|
238
|
+
#define PGSTAT_FILE_FORMAT_ID 0x01A5BCAC
|
|
246
239
|
|
|
247
240
|
typedef struct PgStat_ArchiverStats
|
|
248
241
|
{
|
|
@@ -276,56 +269,101 @@ typedef struct PgStat_CheckpointerStats
|
|
|
276
269
|
PgStat_Counter buf_fsync_backend;
|
|
277
270
|
} PgStat_CheckpointerStats;
|
|
278
271
|
|
|
272
|
+
|
|
273
|
+
/*
|
|
274
|
+
* Types related to counting IO operations
|
|
275
|
+
*/
|
|
276
|
+
typedef enum IOObject
|
|
277
|
+
{
|
|
278
|
+
IOOBJECT_RELATION,
|
|
279
|
+
IOOBJECT_TEMP_RELATION,
|
|
280
|
+
} IOObject;
|
|
281
|
+
|
|
282
|
+
#define IOOBJECT_NUM_TYPES (IOOBJECT_TEMP_RELATION + 1)
|
|
283
|
+
|
|
284
|
+
typedef enum IOContext
|
|
285
|
+
{
|
|
286
|
+
IOCONTEXT_BULKREAD,
|
|
287
|
+
IOCONTEXT_BULKWRITE,
|
|
288
|
+
IOCONTEXT_NORMAL,
|
|
289
|
+
IOCONTEXT_VACUUM,
|
|
290
|
+
} IOContext;
|
|
291
|
+
|
|
292
|
+
#define IOCONTEXT_NUM_TYPES (IOCONTEXT_VACUUM + 1)
|
|
293
|
+
|
|
294
|
+
typedef enum IOOp
|
|
295
|
+
{
|
|
296
|
+
IOOP_EVICT,
|
|
297
|
+
IOOP_EXTEND,
|
|
298
|
+
IOOP_FSYNC,
|
|
299
|
+
IOOP_HIT,
|
|
300
|
+
IOOP_READ,
|
|
301
|
+
IOOP_REUSE,
|
|
302
|
+
IOOP_WRITE,
|
|
303
|
+
IOOP_WRITEBACK,
|
|
304
|
+
} IOOp;
|
|
305
|
+
|
|
306
|
+
#define IOOP_NUM_TYPES (IOOP_WRITEBACK + 1)
|
|
307
|
+
|
|
308
|
+
typedef struct PgStat_BktypeIO
|
|
309
|
+
{
|
|
310
|
+
PgStat_Counter counts[IOOBJECT_NUM_TYPES][IOCONTEXT_NUM_TYPES][IOOP_NUM_TYPES];
|
|
311
|
+
PgStat_Counter times[IOOBJECT_NUM_TYPES][IOCONTEXT_NUM_TYPES][IOOP_NUM_TYPES];
|
|
312
|
+
} PgStat_BktypeIO;
|
|
313
|
+
|
|
314
|
+
typedef struct PgStat_IO
|
|
315
|
+
{
|
|
316
|
+
TimestampTz stat_reset_timestamp;
|
|
317
|
+
PgStat_BktypeIO stats[BACKEND_NUM_TYPES];
|
|
318
|
+
} PgStat_IO;
|
|
319
|
+
|
|
320
|
+
|
|
279
321
|
typedef struct PgStat_StatDBEntry
|
|
280
322
|
{
|
|
281
|
-
PgStat_Counter
|
|
282
|
-
PgStat_Counter
|
|
283
|
-
PgStat_Counter
|
|
284
|
-
PgStat_Counter
|
|
285
|
-
PgStat_Counter
|
|
286
|
-
PgStat_Counter
|
|
287
|
-
PgStat_Counter
|
|
288
|
-
PgStat_Counter
|
|
289
|
-
PgStat_Counter
|
|
323
|
+
PgStat_Counter xact_commit;
|
|
324
|
+
PgStat_Counter xact_rollback;
|
|
325
|
+
PgStat_Counter blocks_fetched;
|
|
326
|
+
PgStat_Counter blocks_hit;
|
|
327
|
+
PgStat_Counter tuples_returned;
|
|
328
|
+
PgStat_Counter tuples_fetched;
|
|
329
|
+
PgStat_Counter tuples_inserted;
|
|
330
|
+
PgStat_Counter tuples_updated;
|
|
331
|
+
PgStat_Counter tuples_deleted;
|
|
290
332
|
TimestampTz last_autovac_time;
|
|
291
|
-
PgStat_Counter
|
|
292
|
-
PgStat_Counter
|
|
293
|
-
PgStat_Counter
|
|
294
|
-
PgStat_Counter
|
|
295
|
-
PgStat_Counter
|
|
296
|
-
PgStat_Counter
|
|
297
|
-
PgStat_Counter
|
|
298
|
-
PgStat_Counter
|
|
299
|
-
PgStat_Counter
|
|
333
|
+
PgStat_Counter conflict_tablespace;
|
|
334
|
+
PgStat_Counter conflict_lock;
|
|
335
|
+
PgStat_Counter conflict_snapshot;
|
|
336
|
+
PgStat_Counter conflict_logicalslot;
|
|
337
|
+
PgStat_Counter conflict_bufferpin;
|
|
338
|
+
PgStat_Counter conflict_startup_deadlock;
|
|
339
|
+
PgStat_Counter temp_files;
|
|
340
|
+
PgStat_Counter temp_bytes;
|
|
341
|
+
PgStat_Counter deadlocks;
|
|
342
|
+
PgStat_Counter checksum_failures;
|
|
300
343
|
TimestampTz last_checksum_failure;
|
|
301
|
-
PgStat_Counter
|
|
302
|
-
PgStat_Counter
|
|
303
|
-
PgStat_Counter
|
|
304
|
-
PgStat_Counter
|
|
305
|
-
PgStat_Counter
|
|
306
|
-
PgStat_Counter
|
|
307
|
-
PgStat_Counter
|
|
308
|
-
PgStat_Counter
|
|
309
|
-
PgStat_Counter
|
|
344
|
+
PgStat_Counter blk_read_time; /* times in microseconds */
|
|
345
|
+
PgStat_Counter blk_write_time;
|
|
346
|
+
PgStat_Counter sessions;
|
|
347
|
+
PgStat_Counter session_time;
|
|
348
|
+
PgStat_Counter active_time;
|
|
349
|
+
PgStat_Counter idle_in_transaction_time;
|
|
350
|
+
PgStat_Counter sessions_abandoned;
|
|
351
|
+
PgStat_Counter sessions_fatal;
|
|
352
|
+
PgStat_Counter sessions_killed;
|
|
310
353
|
|
|
311
354
|
TimestampTz stat_reset_timestamp;
|
|
312
355
|
} PgStat_StatDBEntry;
|
|
313
356
|
|
|
314
357
|
typedef struct PgStat_StatFuncEntry
|
|
315
358
|
{
|
|
316
|
-
PgStat_Counter
|
|
359
|
+
PgStat_Counter numcalls;
|
|
317
360
|
|
|
318
|
-
PgStat_Counter
|
|
319
|
-
PgStat_Counter
|
|
361
|
+
PgStat_Counter total_time; /* times in microseconds */
|
|
362
|
+
PgStat_Counter self_time;
|
|
320
363
|
} PgStat_StatFuncEntry;
|
|
321
364
|
|
|
322
365
|
typedef struct PgStat_StatReplSlotEntry
|
|
323
366
|
{
|
|
324
|
-
/*
|
|
325
|
-
* In PG 15 this field is unused, but not removed, to avoid changing
|
|
326
|
-
* PGSTAT_FILE_FORMAT_ID.
|
|
327
|
-
*/
|
|
328
|
-
NameData slotname_unused;
|
|
329
367
|
PgStat_Counter spill_txns;
|
|
330
368
|
PgStat_Counter spill_count;
|
|
331
369
|
PgStat_Counter spill_bytes;
|
|
@@ -359,6 +397,7 @@ typedef struct PgStat_StatSubEntry
|
|
|
359
397
|
typedef struct PgStat_StatTabEntry
|
|
360
398
|
{
|
|
361
399
|
PgStat_Counter numscans;
|
|
400
|
+
TimestampTz lastscan;
|
|
362
401
|
|
|
363
402
|
PgStat_Counter tuples_returned;
|
|
364
403
|
PgStat_Counter tuples_fetched;
|
|
@@ -367,23 +406,24 @@ typedef struct PgStat_StatTabEntry
|
|
|
367
406
|
PgStat_Counter tuples_updated;
|
|
368
407
|
PgStat_Counter tuples_deleted;
|
|
369
408
|
PgStat_Counter tuples_hot_updated;
|
|
409
|
+
PgStat_Counter tuples_newpage_updated;
|
|
370
410
|
|
|
371
|
-
PgStat_Counter
|
|
372
|
-
PgStat_Counter
|
|
373
|
-
PgStat_Counter
|
|
374
|
-
PgStat_Counter
|
|
411
|
+
PgStat_Counter live_tuples;
|
|
412
|
+
PgStat_Counter dead_tuples;
|
|
413
|
+
PgStat_Counter mod_since_analyze;
|
|
414
|
+
PgStat_Counter ins_since_vacuum;
|
|
375
415
|
|
|
376
416
|
PgStat_Counter blocks_fetched;
|
|
377
417
|
PgStat_Counter blocks_hit;
|
|
378
418
|
|
|
379
|
-
TimestampTz
|
|
419
|
+
TimestampTz last_vacuum_time; /* user initiated vacuum */
|
|
380
420
|
PgStat_Counter vacuum_count;
|
|
381
|
-
TimestampTz
|
|
382
|
-
PgStat_Counter
|
|
383
|
-
TimestampTz
|
|
421
|
+
TimestampTz last_autovacuum_time; /* autovacuum initiated */
|
|
422
|
+
PgStat_Counter autovacuum_count;
|
|
423
|
+
TimestampTz last_analyze_time; /* user initiated */
|
|
384
424
|
PgStat_Counter analyze_count;
|
|
385
|
-
TimestampTz
|
|
386
|
-
PgStat_Counter
|
|
425
|
+
TimestampTz last_autoanalyze_time; /* autovacuum initiated */
|
|
426
|
+
PgStat_Counter autoanalyze_count;
|
|
387
427
|
} PgStat_StatTabEntry;
|
|
388
428
|
|
|
389
429
|
typedef struct PgStat_WalStats
|
|
@@ -399,6 +439,21 @@ typedef struct PgStat_WalStats
|
|
|
399
439
|
TimestampTz stat_reset_timestamp;
|
|
400
440
|
} PgStat_WalStats;
|
|
401
441
|
|
|
442
|
+
/*
|
|
443
|
+
* This struct stores wal-related durations as instr_time, which makes it
|
|
444
|
+
* cheaper and easier to accumulate them, by not requiring type
|
|
445
|
+
* conversions. During stats flush instr_time will be converted into
|
|
446
|
+
* microseconds.
|
|
447
|
+
*/
|
|
448
|
+
typedef struct PgStat_PendingWalStats
|
|
449
|
+
{
|
|
450
|
+
PgStat_Counter wal_buffers_full;
|
|
451
|
+
PgStat_Counter wal_write;
|
|
452
|
+
PgStat_Counter wal_sync;
|
|
453
|
+
instr_time wal_write_time;
|
|
454
|
+
instr_time wal_sync_time;
|
|
455
|
+
} PgStat_PendingWalStats;
|
|
456
|
+
|
|
402
457
|
|
|
403
458
|
/*
|
|
404
459
|
* Functions in pgstat.c
|
|
@@ -421,7 +476,7 @@ extern long pgstat_report_stat(bool force);
|
|
|
421
476
|
extern void pgstat_force_next_flush(void);
|
|
422
477
|
|
|
423
478
|
extern void pgstat_reset_counters(void);
|
|
424
|
-
extern void pgstat_reset(PgStat_Kind kind, Oid dboid, Oid
|
|
479
|
+
extern void pgstat_reset(PgStat_Kind kind, Oid dboid, Oid objoid);
|
|
425
480
|
extern void pgstat_reset_of_kind(PgStat_Kind kind);
|
|
426
481
|
|
|
427
482
|
/* stats accessors */
|
|
@@ -457,6 +512,29 @@ extern void pgstat_report_checkpointer(void);
|
|
|
457
512
|
extern PgStat_CheckpointerStats *pgstat_fetch_stat_checkpointer(void);
|
|
458
513
|
|
|
459
514
|
|
|
515
|
+
/*
|
|
516
|
+
* Functions in pgstat_io.c
|
|
517
|
+
*/
|
|
518
|
+
|
|
519
|
+
extern bool pgstat_bktype_io_stats_valid(PgStat_BktypeIO *backend_io,
|
|
520
|
+
BackendType bktype);
|
|
521
|
+
extern void pgstat_count_io_op(IOObject io_object, IOContext io_context, IOOp io_op);
|
|
522
|
+
extern void pgstat_count_io_op_n(IOObject io_object, IOContext io_context, IOOp io_op, uint32 cnt);
|
|
523
|
+
extern instr_time pgstat_prepare_io_time(void);
|
|
524
|
+
extern void pgstat_count_io_op_time(IOObject io_object, IOContext io_context,
|
|
525
|
+
IOOp io_op, instr_time start_time, uint32 cnt);
|
|
526
|
+
|
|
527
|
+
extern PgStat_IO *pgstat_fetch_stat_io(void);
|
|
528
|
+
extern const char *pgstat_get_io_context_name(IOContext io_context);
|
|
529
|
+
extern const char *pgstat_get_io_object_name(IOObject io_object);
|
|
530
|
+
|
|
531
|
+
extern bool pgstat_tracks_io_bktype(BackendType bktype);
|
|
532
|
+
extern bool pgstat_tracks_io_object(BackendType bktype,
|
|
533
|
+
IOObject io_object, IOContext io_context);
|
|
534
|
+
extern bool pgstat_tracks_io_op(BackendType bktype, IOObject io_object,
|
|
535
|
+
IOContext io_context, IOOp io_op);
|
|
536
|
+
|
|
537
|
+
|
|
460
538
|
/*
|
|
461
539
|
* Functions in pgstat_database.c
|
|
462
540
|
*/
|
|
@@ -478,7 +556,8 @@ extern void pgstat_report_connect(Oid dboid);
|
|
|
478
556
|
#define pgstat_count_conn_txn_idle_time(n) \
|
|
479
557
|
(pgStatTransactionIdleTime += (n))
|
|
480
558
|
|
|
481
|
-
extern PgStat_StatDBEntry *pgstat_fetch_stat_dbentry(Oid
|
|
559
|
+
extern PgStat_StatDBEntry *pgstat_fetch_stat_dbentry(Oid dboid);
|
|
560
|
+
|
|
482
561
|
|
|
483
562
|
/*
|
|
484
563
|
* Functions in pgstat_function.c
|
|
@@ -493,8 +572,8 @@ extern void pgstat_init_function_usage(struct FunctionCallInfoBaseData *fcinfo,
|
|
|
493
572
|
extern void pgstat_end_function_usage(PgStat_FunctionCallUsage *fcu,
|
|
494
573
|
bool finalize);
|
|
495
574
|
|
|
496
|
-
extern PgStat_StatFuncEntry *pgstat_fetch_stat_funcentry(Oid
|
|
497
|
-
extern
|
|
575
|
+
extern PgStat_StatFuncEntry *pgstat_fetch_stat_funcentry(Oid func_id);
|
|
576
|
+
extern PgStat_FunctionCounts *find_funcstat_entry(Oid func_id);
|
|
498
577
|
|
|
499
578
|
|
|
500
579
|
/*
|
|
@@ -503,7 +582,7 @@ extern PgStat_BackendFunctionEntry *find_funcstat_entry(Oid func_id);
|
|
|
503
582
|
|
|
504
583
|
extern void pgstat_create_relation(Relation rel);
|
|
505
584
|
extern void pgstat_drop_relation(Relation rel);
|
|
506
|
-
extern void pgstat_copy_relation_stats(Relation
|
|
585
|
+
extern void pgstat_copy_relation_stats(Relation dst, Relation src);
|
|
507
586
|
|
|
508
587
|
extern void pgstat_init_relation(Relation rel);
|
|
509
588
|
extern void pgstat_assoc_relation(Relation rel);
|
|
@@ -529,41 +608,41 @@ extern void pgstat_report_analyze(Relation rel,
|
|
|
529
608
|
#define pgstat_count_heap_scan(rel) \
|
|
530
609
|
do { \
|
|
531
610
|
if (pgstat_should_count_relation(rel)) \
|
|
532
|
-
(rel)->pgstat_info->
|
|
611
|
+
(rel)->pgstat_info->counts.numscans++; \
|
|
533
612
|
} while (0)
|
|
534
613
|
#define pgstat_count_heap_getnext(rel) \
|
|
535
614
|
do { \
|
|
536
615
|
if (pgstat_should_count_relation(rel)) \
|
|
537
|
-
(rel)->pgstat_info->
|
|
616
|
+
(rel)->pgstat_info->counts.tuples_returned++; \
|
|
538
617
|
} while (0)
|
|
539
618
|
#define pgstat_count_heap_fetch(rel) \
|
|
540
619
|
do { \
|
|
541
620
|
if (pgstat_should_count_relation(rel)) \
|
|
542
|
-
(rel)->pgstat_info->
|
|
621
|
+
(rel)->pgstat_info->counts.tuples_fetched++; \
|
|
543
622
|
} while (0)
|
|
544
623
|
#define pgstat_count_index_scan(rel) \
|
|
545
624
|
do { \
|
|
546
625
|
if (pgstat_should_count_relation(rel)) \
|
|
547
|
-
(rel)->pgstat_info->
|
|
626
|
+
(rel)->pgstat_info->counts.numscans++; \
|
|
548
627
|
} while (0)
|
|
549
628
|
#define pgstat_count_index_tuples(rel, n) \
|
|
550
629
|
do { \
|
|
551
630
|
if (pgstat_should_count_relation(rel)) \
|
|
552
|
-
(rel)->pgstat_info->
|
|
631
|
+
(rel)->pgstat_info->counts.tuples_returned += (n); \
|
|
553
632
|
} while (0)
|
|
554
633
|
#define pgstat_count_buffer_read(rel) \
|
|
555
634
|
do { \
|
|
556
635
|
if (pgstat_should_count_relation(rel)) \
|
|
557
|
-
(rel)->pgstat_info->
|
|
636
|
+
(rel)->pgstat_info->counts.blocks_fetched++; \
|
|
558
637
|
} while (0)
|
|
559
638
|
#define pgstat_count_buffer_hit(rel) \
|
|
560
639
|
do { \
|
|
561
640
|
if (pgstat_should_count_relation(rel)) \
|
|
562
|
-
(rel)->pgstat_info->
|
|
641
|
+
(rel)->pgstat_info->counts.blocks_hit++; \
|
|
563
642
|
} while (0)
|
|
564
643
|
|
|
565
644
|
extern void pgstat_count_heap_insert(Relation rel, PgStat_Counter n);
|
|
566
|
-
extern void pgstat_count_heap_update(Relation rel, bool hot);
|
|
645
|
+
extern void pgstat_count_heap_update(Relation rel, bool hot, bool newpage);
|
|
567
646
|
extern void pgstat_count_heap_delete(Relation rel);
|
|
568
647
|
extern void pgstat_count_truncate(Relation rel);
|
|
569
648
|
extern void pgstat_update_heap_dead_tuples(Relation rel, int delta);
|
|
@@ -575,7 +654,7 @@ extern void pgstat_twophase_postabort(TransactionId xid, uint16 info,
|
|
|
575
654
|
|
|
576
655
|
extern PgStat_StatTabEntry *pgstat_fetch_stat_tabentry(Oid relid);
|
|
577
656
|
extern PgStat_StatTabEntry *pgstat_fetch_stat_tabentry_ext(bool shared,
|
|
578
|
-
Oid
|
|
657
|
+
Oid reloid);
|
|
579
658
|
extern PgStat_TableStatus *find_tabstat_entry(Oid rel_id);
|
|
580
659
|
|
|
581
660
|
|
|
@@ -693,7 +772,7 @@ extern PGDLLIMPORT __thread SessionEndType pgStatSessionEndCause;
|
|
|
693
772
|
*/
|
|
694
773
|
|
|
695
774
|
/* updated directly by backends and background processes */
|
|
696
|
-
extern PGDLLIMPORT
|
|
775
|
+
extern PGDLLIMPORT PgStat_PendingWalStats PendingWalStats;
|
|
697
776
|
|
|
698
777
|
|
|
699
778
|
#endif /* PGSTAT_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pgtime.h
|
|
4
4
|
* PostgreSQL internal timezone library
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* IDENTIFICATION
|
|
9
9
|
* src/include/pgtime.h
|
|
@@ -75,8 +75,8 @@ extern bool pg_tz_acceptable(pg_tz *tz);
|
|
|
75
75
|
|
|
76
76
|
/* these functions are in strftime.c */
|
|
77
77
|
|
|
78
|
-
extern size_t pg_strftime(char *s, size_t
|
|
79
|
-
const struct pg_tm *
|
|
78
|
+
extern size_t pg_strftime(char *s, size_t maxsize, const char *format,
|
|
79
|
+
const struct pg_tm *t);
|
|
80
80
|
|
|
81
81
|
/* these functions and variables are in pgtz.c */
|
|
82
82
|
|
|
@@ -138,36 +138,37 @@
|
|
|
138
138
|
K_PG_EXCEPTION_CONTEXT = 354,
|
|
139
139
|
K_PG_EXCEPTION_DETAIL = 355,
|
|
140
140
|
K_PG_EXCEPTION_HINT = 356,
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
141
|
+
K_PG_ROUTINE_OID = 357,
|
|
142
|
+
K_PRINT_STRICT_PARAMS = 358,
|
|
143
|
+
K_PRIOR = 359,
|
|
144
|
+
K_QUERY = 360,
|
|
145
|
+
K_RAISE = 361,
|
|
146
|
+
K_RELATIVE = 362,
|
|
147
|
+
K_RETURN = 363,
|
|
148
|
+
K_RETURNED_SQLSTATE = 364,
|
|
149
|
+
K_REVERSE = 365,
|
|
150
|
+
K_ROLLBACK = 366,
|
|
151
|
+
K_ROW_COUNT = 367,
|
|
152
|
+
K_ROWTYPE = 368,
|
|
153
|
+
K_SCHEMA = 369,
|
|
154
|
+
K_SCHEMA_NAME = 370,
|
|
155
|
+
K_SCROLL = 371,
|
|
156
|
+
K_SLICE = 372,
|
|
157
|
+
K_SQLSTATE = 373,
|
|
158
|
+
K_STACKED = 374,
|
|
159
|
+
K_STRICT = 375,
|
|
160
|
+
K_TABLE = 376,
|
|
161
|
+
K_TABLE_NAME = 377,
|
|
162
|
+
K_THEN = 378,
|
|
163
|
+
K_TO = 379,
|
|
164
|
+
K_TYPE = 380,
|
|
165
|
+
K_USE_COLUMN = 381,
|
|
166
|
+
K_USE_VARIABLE = 382,
|
|
167
|
+
K_USING = 383,
|
|
168
|
+
K_VARIABLE_CONFLICT = 384,
|
|
169
|
+
K_WARNING = 385,
|
|
170
|
+
K_WHEN = 386,
|
|
171
|
+
K_WHILE = 387
|
|
171
172
|
};
|
|
172
173
|
#endif
|
|
173
174
|
/* Tokens. */
|
|
@@ -270,43 +271,44 @@
|
|
|
270
271
|
#define K_PG_EXCEPTION_CONTEXT 354
|
|
271
272
|
#define K_PG_EXCEPTION_DETAIL 355
|
|
272
273
|
#define K_PG_EXCEPTION_HINT 356
|
|
273
|
-
#define
|
|
274
|
-
#define
|
|
275
|
-
#define
|
|
276
|
-
#define
|
|
277
|
-
#define
|
|
278
|
-
#define
|
|
279
|
-
#define
|
|
280
|
-
#define
|
|
281
|
-
#define
|
|
282
|
-
#define
|
|
283
|
-
#define
|
|
284
|
-
#define
|
|
285
|
-
#define
|
|
286
|
-
#define
|
|
287
|
-
#define
|
|
288
|
-
#define
|
|
289
|
-
#define
|
|
290
|
-
#define
|
|
291
|
-
#define
|
|
292
|
-
#define
|
|
293
|
-
#define
|
|
294
|
-
#define
|
|
295
|
-
#define
|
|
296
|
-
#define
|
|
297
|
-
#define
|
|
298
|
-
#define
|
|
299
|
-
#define
|
|
300
|
-
#define
|
|
301
|
-
#define
|
|
302
|
-
#define
|
|
274
|
+
#define K_PG_ROUTINE_OID 357
|
|
275
|
+
#define K_PRINT_STRICT_PARAMS 358
|
|
276
|
+
#define K_PRIOR 359
|
|
277
|
+
#define K_QUERY 360
|
|
278
|
+
#define K_RAISE 361
|
|
279
|
+
#define K_RELATIVE 362
|
|
280
|
+
#define K_RETURN 363
|
|
281
|
+
#define K_RETURNED_SQLSTATE 364
|
|
282
|
+
#define K_REVERSE 365
|
|
283
|
+
#define K_ROLLBACK 366
|
|
284
|
+
#define K_ROW_COUNT 367
|
|
285
|
+
#define K_ROWTYPE 368
|
|
286
|
+
#define K_SCHEMA 369
|
|
287
|
+
#define K_SCHEMA_NAME 370
|
|
288
|
+
#define K_SCROLL 371
|
|
289
|
+
#define K_SLICE 372
|
|
290
|
+
#define K_SQLSTATE 373
|
|
291
|
+
#define K_STACKED 374
|
|
292
|
+
#define K_STRICT 375
|
|
293
|
+
#define K_TABLE 376
|
|
294
|
+
#define K_TABLE_NAME 377
|
|
295
|
+
#define K_THEN 378
|
|
296
|
+
#define K_TO 379
|
|
297
|
+
#define K_TYPE 380
|
|
298
|
+
#define K_USE_COLUMN 381
|
|
299
|
+
#define K_USE_VARIABLE 382
|
|
300
|
+
#define K_USING 383
|
|
301
|
+
#define K_VARIABLE_CONFLICT 384
|
|
302
|
+
#define K_WARNING 385
|
|
303
|
+
#define K_WHEN 386
|
|
304
|
+
#define K_WHILE 387
|
|
303
305
|
|
|
304
306
|
|
|
305
307
|
|
|
306
308
|
|
|
307
309
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
308
310
|
typedef union YYSTYPE
|
|
309
|
-
#line
|
|
311
|
+
#line 117 "pl_gram.y"
|
|
310
312
|
{
|
|
311
313
|
core_YYSTYPE core_yystype;
|
|
312
314
|
/* these fields must match core_YYSTYPE: */
|
|
@@ -358,7 +360,7 @@ typedef union YYSTYPE
|
|
|
358
360
|
PLpgSQL_case_when *casewhen;
|
|
359
361
|
}
|
|
360
362
|
/* Line 1529 of yacc.c. */
|
|
361
|
-
#line
|
|
363
|
+
#line 364 "pl_gram.h"
|
|
362
364
|
YYSTYPE;
|
|
363
365
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
364
366
|
# define YYSTYPE_IS_DECLARED 1
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* by the PG_KEYWORD macro, which is not defined in this file; it can
|
|
8
8
|
* be defined by the caller for special purposes.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/pl/plpgsql/src/pl_reserved_kwlist.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pl_reserved_kwlist_d.h
|
|
4
4
|
* List of keywords represented as a ScanKeywordList.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* NOTES
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* by the PG_KEYWORD macro, which is not defined in this file; it can
|
|
8
8
|
* be defined by the caller for special purposes.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/pl/plpgsql/src/pl_unreserved_kwlist.h
|
|
@@ -85,6 +85,7 @@ PG_KEYWORD("pg_datatype_name", K_PG_DATATYPE_NAME)
|
|
|
85
85
|
PG_KEYWORD("pg_exception_context", K_PG_EXCEPTION_CONTEXT)
|
|
86
86
|
PG_KEYWORD("pg_exception_detail", K_PG_EXCEPTION_DETAIL)
|
|
87
87
|
PG_KEYWORD("pg_exception_hint", K_PG_EXCEPTION_HINT)
|
|
88
|
+
PG_KEYWORD("pg_routine_oid", K_PG_ROUTINE_OID)
|
|
88
89
|
PG_KEYWORD("print_strict_params", K_PRINT_STRICT_PARAMS)
|
|
89
90
|
PG_KEYWORD("prior", K_PRIOR)
|
|
90
91
|
PG_KEYWORD("query", K_QUERY)
|