pg_query 2.1.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 +104 -0
- data/README.md +59 -31
- data/Rakefile +2 -2
- data/ext/pg_query/extconf.rb +8 -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 +5 -1
- data/ext/pg_query/include/access/xact.h +79 -19
- data/ext/pg_query/include/access/xlog.h +60 -155
- data/ext/pg_query/include/access/xlog_internal.h +50 -14
- 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 +148 -32
- 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 +10 -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 +45 -15
- data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
- 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 +5 -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 +21 -16
- 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 -4
- 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 +56 -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 +4 -5
- 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 +3 -1
- data/ext/pg_query/include/commands/trigger.h +27 -17
- 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 +150 -25
- 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 +31 -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 +106 -23
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +71 -52
- data/ext/pg_query/include/nodes/bitmapset.h +1 -1
- data/ext/pg_query/include/nodes/execnodes.h +272 -80
- 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 +327 -94
- data/ext/pg_query/include/nodes/pathnodes.h +245 -67
- data/ext/pg_query/include/nodes/pg_list.h +75 -68
- data/ext/pg_query/include/nodes/plannodes.h +128 -30
- 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 -22
- 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 +4 -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 +94 -46
- 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 +1220 -422
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +449 -1237
- 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 +88 -12
- 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 +72 -43
- 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 +1422 -916
- 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 +262 -44
- data/ext/pg_query/include/replication/slot.h +23 -12
- 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 +17 -13
- data/ext/pg_query/include/storage/lockdefs.h +2 -2
- data/ext/pg_query/include/storage/lwlock.h +6 -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 +183 -55
- 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 +67 -4
- 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 +7 -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 +11 -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 +5 -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 +12 -1
- 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 -20
- data/ext/pg_query/include/utils/relcache.h +9 -7
- 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 +35 -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 +4318 -2307
- data/ext/pg_query/pg_query_deparse.c +1114 -381
- data/ext/pg_query/pg_query_fingerprint.c +46 -10
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
- data/ext/pg_query/pg_query_normalize.c +163 -20
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +65 -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_parse_plpgsql.c +79 -16
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
- data/ext/pg_query/pg_query_ruby.c +1 -1
- 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 +21 -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 +424 -109
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +86 -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 +33890 -31262
- data/ext/pg_query/src_backend_parser_parser.c +26 -7
- data/ext/pg_query/src_backend_parser_scan.c +644 -441
- 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 +73 -24
- 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 +109 -15
- 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 +207 -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 +712 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
- 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 -52
- 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 +46 -20
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +6 -4
- data/lib/pg_query/fingerprint.rb +18 -3
- data/lib/pg_query/node.rb +2 -2
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +87 -51
- data/lib/pg_query/pg_query_pb.rb +1109 -942
- data/lib/pg_query/treewalker.rb +6 -0
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- metadata +29 -18
- 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/src_backend_libpq_pqcomm.c +0 -651
- 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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* shm_mq.h
|
|
4
4
|
* single-reader, single-writer shared memory message queue
|
|
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/storage/shm_mq.h
|
|
@@ -70,9 +70,10 @@ extern shm_mq *shm_mq_get_queue(shm_mq_handle *mqh);
|
|
|
70
70
|
|
|
71
71
|
/* Send or receive messages. */
|
|
72
72
|
extern shm_mq_result shm_mq_send(shm_mq_handle *mqh,
|
|
73
|
-
Size nbytes, const void *data, bool nowait
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
Size nbytes, const void *data, bool nowait,
|
|
74
|
+
bool force_flush);
|
|
75
|
+
extern shm_mq_result shm_mq_sendv(shm_mq_handle *mqh, shm_mq_iovec *iov,
|
|
76
|
+
int iovcnt, bool nowait, bool force_flush);
|
|
76
77
|
extern shm_mq_result shm_mq_receive(shm_mq_handle *mqh,
|
|
77
78
|
Size *nbytesp, void **datap, bool nowait);
|
|
78
79
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* other data structure within the segment and only put the pointer to
|
|
13
13
|
* the data structure itself in the table of contents.
|
|
14
14
|
*
|
|
15
|
-
* Portions Copyright (c) 1996-
|
|
15
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
17
17
|
*
|
|
18
18
|
* src/include/storage/shm_toc.h
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* at the same address. This means shared memory pointers can be passed
|
|
12
12
|
* around directly between different processes.
|
|
13
13
|
*
|
|
14
|
-
* Portions Copyright (c) 1996-
|
|
14
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
16
|
*
|
|
17
17
|
* src/include/storage/shmem.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES shared cache invalidation communication definitions.
|
|
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/storage/sinval.h
|
|
@@ -123,9 +123,9 @@ typedef union
|
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
/* Counter of messages processed; don't worry about overflow. */
|
|
126
|
-
extern uint64 SharedInvalidMessageCounter;
|
|
126
|
+
extern PGDLLIMPORT uint64 SharedInvalidMessageCounter;
|
|
127
127
|
|
|
128
|
-
extern volatile sig_atomic_t catchupInterruptPending;
|
|
128
|
+
extern PGDLLIMPORT volatile sig_atomic_t catchupInterruptPending;
|
|
129
129
|
|
|
130
130
|
extern void SendSharedInvalidMessages(const SharedInvalidationMessage *msgs,
|
|
131
131
|
int n);
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* The struct type SharedInvalidationMessage, defining the contents of
|
|
13
13
|
* a single message, is defined in sinval.h.
|
|
14
14
|
*
|
|
15
|
-
* Portions Copyright (c) 1996-
|
|
15
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
16
16
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
17
17
|
*
|
|
18
18
|
* src/include/storage/sinvaladt.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* storage manager switch public interface declarations.
|
|
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/storage/smgr.h
|
|
@@ -45,15 +45,13 @@ typedef struct SMgrRelationData
|
|
|
45
45
|
struct SMgrRelationData **smgr_owner;
|
|
46
46
|
|
|
47
47
|
/*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* happens. In all three cases, InvalidBlockNumber means "unknown".
|
|
48
|
+
* The following fields are reset to InvalidBlockNumber upon a cache flush
|
|
49
|
+
* event, and hold the last known size for each fork. This information is
|
|
50
|
+
* currently only reliable during recovery, since there is no cache
|
|
51
|
+
* invalidation for fork extension.
|
|
53
52
|
*/
|
|
54
53
|
BlockNumber smgr_targblock; /* current insertion target block */
|
|
55
|
-
BlockNumber
|
|
56
|
-
BlockNumber smgr_vm_nblocks; /* last known size of vm fork */
|
|
54
|
+
BlockNumber smgr_cached_nblocks[MAX_FORKNUM + 1]; /* last known size */
|
|
57
55
|
|
|
58
56
|
/* additional public fields may someday exist here */
|
|
59
57
|
|
|
@@ -87,6 +85,8 @@ extern void smgrclearowner(SMgrRelation *owner, SMgrRelation reln);
|
|
|
87
85
|
extern void smgrclose(SMgrRelation reln);
|
|
88
86
|
extern void smgrcloseall(void);
|
|
89
87
|
extern void smgrclosenode(RelFileNodeBackend rnode);
|
|
88
|
+
extern void smgrrelease(SMgrRelation reln);
|
|
89
|
+
extern void smgrreleaseall(void);
|
|
90
90
|
extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
|
|
91
91
|
extern void smgrdosyncall(SMgrRelation *rels, int nrels);
|
|
92
92
|
extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
|
|
@@ -101,9 +101,11 @@ extern void smgrwrite(SMgrRelation reln, ForkNumber forknum,
|
|
|
101
101
|
extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
|
|
102
102
|
BlockNumber blocknum, BlockNumber nblocks);
|
|
103
103
|
extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
|
|
104
|
+
extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
|
|
104
105
|
extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum,
|
|
105
106
|
int nforks, BlockNumber *nblocks);
|
|
106
107
|
extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
|
|
107
108
|
extern void AtEOXact_SMgr(void);
|
|
109
|
+
extern bool ProcessBarrierSmgrRelease(void);
|
|
108
110
|
|
|
109
111
|
#endif /* SMGR_H */
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* be again.
|
|
42
42
|
*
|
|
43
43
|
*
|
|
44
|
-
* Portions Copyright (c) 1996-
|
|
44
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
45
45
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
46
46
|
*
|
|
47
47
|
* src/include/storage/spin.h
|
|
@@ -71,7 +71,7 @@ extern Size SpinlockSemaSize(void);
|
|
|
71
71
|
|
|
72
72
|
#ifndef HAVE_SPINLOCKS
|
|
73
73
|
extern void SpinlockSemaInit(void);
|
|
74
|
-
extern PGSemaphore *SpinlockSemaArray;
|
|
74
|
+
extern PGDLLIMPORT PGSemaphore *SpinlockSemaArray;
|
|
75
75
|
#endif
|
|
76
76
|
|
|
77
77
|
#endif /* SPIN_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Definitions for hot standby mode.
|
|
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/storage/standby.h
|
|
@@ -14,30 +14,37 @@
|
|
|
14
14
|
#ifndef STANDBY_H
|
|
15
15
|
#define STANDBY_H
|
|
16
16
|
|
|
17
|
+
#include "datatype/timestamp.h"
|
|
17
18
|
#include "storage/lock.h"
|
|
18
19
|
#include "storage/procsignal.h"
|
|
19
20
|
#include "storage/relfilenode.h"
|
|
20
21
|
#include "storage/standbydefs.h"
|
|
21
22
|
|
|
22
23
|
/* User-settable GUC parameters */
|
|
23
|
-
extern int
|
|
24
|
-
extern int
|
|
25
|
-
extern int
|
|
24
|
+
extern PGDLLIMPORT int vacuum_defer_cleanup_age;
|
|
25
|
+
extern PGDLLIMPORT int max_standby_archive_delay;
|
|
26
|
+
extern PGDLLIMPORT int max_standby_streaming_delay;
|
|
27
|
+
extern PGDLLIMPORT bool log_recovery_conflict_waits;
|
|
26
28
|
|
|
27
29
|
extern void InitRecoveryTransactionEnvironment(void);
|
|
28
30
|
extern void ShutdownRecoveryTransactionEnvironment(void);
|
|
29
31
|
|
|
30
32
|
extern void ResolveRecoveryConflictWithSnapshot(TransactionId latestRemovedXid,
|
|
31
33
|
RelFileNode node);
|
|
34
|
+
extern void ResolveRecoveryConflictWithSnapshotFullXid(FullTransactionId latestRemovedFullXid,
|
|
35
|
+
RelFileNode node);
|
|
32
36
|
extern void ResolveRecoveryConflictWithTablespace(Oid tsid);
|
|
33
37
|
extern void ResolveRecoveryConflictWithDatabase(Oid dbid);
|
|
34
38
|
|
|
35
|
-
extern void ResolveRecoveryConflictWithLock(LOCKTAG locktag);
|
|
39
|
+
extern void ResolveRecoveryConflictWithLock(LOCKTAG locktag, bool logging_conflict);
|
|
36
40
|
extern void ResolveRecoveryConflictWithBufferPin(void);
|
|
37
41
|
extern void CheckRecoveryConflictDeadlock(void);
|
|
38
42
|
extern void StandbyDeadLockHandler(void);
|
|
39
43
|
extern void StandbyTimeoutHandler(void);
|
|
40
44
|
extern void StandbyLockTimeoutHandler(void);
|
|
45
|
+
extern void LogRecoveryConflict(ProcSignalReason reason, TimestampTz wait_start,
|
|
46
|
+
TimestampTz cur_ts, VirtualTransactionId *wait_list,
|
|
47
|
+
bool still_waiting);
|
|
41
48
|
|
|
42
49
|
/*
|
|
43
50
|
* Standby Rmgr (RM_STANDBY_ID)
|
|
@@ -72,7 +79,7 @@ typedef struct RunningTransactionsData
|
|
|
72
79
|
int xcnt; /* # of xact ids in xids[] */
|
|
73
80
|
int subxcnt; /* # of subxact ids in xids[] */
|
|
74
81
|
bool subxid_overflow; /* snapshot overflowed, subxids missing */
|
|
75
|
-
TransactionId nextXid; /* xid from ShmemVariableCache->
|
|
82
|
+
TransactionId nextXid; /* xid from ShmemVariableCache->nextXid */
|
|
76
83
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
|
77
84
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
|
78
85
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Frontend exposed definitions for hot standby mode.
|
|
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/storage/standbydefs.h
|
|
@@ -49,7 +49,7 @@ typedef struct xl_running_xacts
|
|
|
49
49
|
int xcnt; /* # of xact ids in xids[] */
|
|
50
50
|
int subxcnt; /* # of subxact ids in xids[] */
|
|
51
51
|
bool subxid_overflow; /* snapshot overflowed, subxids missing */
|
|
52
|
-
TransactionId nextXid; /* xid from ShmemVariableCache->
|
|
52
|
+
TransactionId nextXid; /* xid from ShmemVariableCache->nextXid */
|
|
53
53
|
TransactionId oldestRunningXid; /* *not* oldestXmin */
|
|
54
54
|
TransactionId latestCompletedXid; /* so we can set xmax */
|
|
55
55
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* sync.h
|
|
4
4
|
* File synchronization management code.
|
|
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/storage/sync.h
|
|
@@ -34,7 +34,12 @@ typedef enum SyncRequestType
|
|
|
34
34
|
*/
|
|
35
35
|
typedef enum SyncRequestHandler
|
|
36
36
|
{
|
|
37
|
-
SYNC_HANDLER_MD = 0
|
|
37
|
+
SYNC_HANDLER_MD = 0,
|
|
38
|
+
SYNC_HANDLER_CLOG,
|
|
39
|
+
SYNC_HANDLER_COMMIT_TS,
|
|
40
|
+
SYNC_HANDLER_MULTIXACT_OFFSET,
|
|
41
|
+
SYNC_HANDLER_MULTIXACT_MEMBER,
|
|
42
|
+
SYNC_HANDLER_NONE
|
|
38
43
|
} SyncRequestHandler;
|
|
39
44
|
|
|
40
45
|
/*
|
|
@@ -55,7 +60,6 @@ extern void SyncPreCheckpoint(void);
|
|
|
55
60
|
extern void SyncPostCheckpoint(void);
|
|
56
61
|
extern void ProcessSyncRequests(void);
|
|
57
62
|
extern void RememberSyncRequest(const FileTag *ftag, SyncRequestType type);
|
|
58
|
-
extern void EnableSyncRequestForwarding(void);
|
|
59
63
|
extern bool RegisterSyncRequest(const FileTag *ftag, SyncRequestType type,
|
|
60
64
|
bool retryOnError);
|
|
61
65
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* cmdtag.h
|
|
4
4
|
* Declarations for commandtag names and enumeration.
|
|
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/tcop/cmdtag.h
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* determined by the PG_CMDTAG macro, which is not defined in this file;
|
|
9
9
|
* it can be defined by the caller for special purposes.
|
|
10
10
|
*
|
|
11
|
-
* Portions Copyright (c) 1996-
|
|
11
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
12
12
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
13
13
|
*
|
|
14
14
|
* src/include/tcop/cmdtaglist.h
|
|
@@ -42,7 +42,7 @@ PG_CMDTAG(CMDTAG_ALTER_FUNCTION, "ALTER FUNCTION", true, false, false)
|
|
|
42
42
|
PG_CMDTAG(CMDTAG_ALTER_INDEX, "ALTER INDEX", true, false, false)
|
|
43
43
|
PG_CMDTAG(CMDTAG_ALTER_LANGUAGE, "ALTER LANGUAGE", true, false, false)
|
|
44
44
|
PG_CMDTAG(CMDTAG_ALTER_LARGE_OBJECT, "ALTER LARGE OBJECT", true, false, false)
|
|
45
|
-
PG_CMDTAG(CMDTAG_ALTER_MATERIALIZED_VIEW, "ALTER MATERIALIZED VIEW", true,
|
|
45
|
+
PG_CMDTAG(CMDTAG_ALTER_MATERIALIZED_VIEW, "ALTER MATERIALIZED VIEW", true, true, false)
|
|
46
46
|
PG_CMDTAG(CMDTAG_ALTER_OPERATOR, "ALTER OPERATOR", true, false, false)
|
|
47
47
|
PG_CMDTAG(CMDTAG_ALTER_OPERATOR_CLASS, "ALTER OPERATOR CLASS", true, false, false)
|
|
48
48
|
PG_CMDTAG(CMDTAG_ALTER_OPERATOR_FAMILY, "ALTER OPERATOR FAMILY", true, false, false)
|
|
@@ -186,6 +186,7 @@ PG_CMDTAG(CMDTAG_INSERT, "INSERT", false, false, true)
|
|
|
186
186
|
PG_CMDTAG(CMDTAG_LISTEN, "LISTEN", false, false, false)
|
|
187
187
|
PG_CMDTAG(CMDTAG_LOAD, "LOAD", false, false, false)
|
|
188
188
|
PG_CMDTAG(CMDTAG_LOCK_TABLE, "LOCK TABLE", false, false, false)
|
|
189
|
+
PG_CMDTAG(CMDTAG_MERGE, "MERGE", false, false, true)
|
|
189
190
|
PG_CMDTAG(CMDTAG_MOVE, "MOVE", false, false, true)
|
|
190
191
|
PG_CMDTAG(CMDTAG_NOTIFY, "NOTIFY", false, false, false)
|
|
191
192
|
PG_CMDTAG(CMDTAG_PREPARE, "PREPARE", false, false, false)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* deparse_utility.h
|
|
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
|
* src/include/tcop/deparse_utility.h
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* calls in portal and cursor manipulations.
|
|
58
58
|
*
|
|
59
59
|
*
|
|
60
|
-
* Portions Copyright (c) 1996-
|
|
60
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
61
61
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
62
62
|
*
|
|
63
63
|
* src/include/tcop/dest.h
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* fastpath.h
|
|
4
4
|
*
|
|
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/tcop/fastpath.h
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
|
|
16
16
|
#include "lib/stringinfo.h"
|
|
17
17
|
|
|
18
|
-
extern int GetOldFunctionMessage(StringInfo buf);
|
|
19
18
|
extern void HandleFunctionRequest(StringInfo msgBuf);
|
|
20
19
|
|
|
21
20
|
#endif /* FASTPATH_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for pquery.c.
|
|
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/tcop/pquery.h
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
#include "nodes/parsenodes.h"
|
|
18
18
|
#include "utils/portal.h"
|
|
19
19
|
|
|
20
|
+
struct PlannedStmt; /* avoid including plannodes.h here */
|
|
21
|
+
|
|
20
22
|
|
|
21
23
|
extern PGDLLIMPORT Portal ActivePortal;
|
|
22
24
|
|
|
@@ -42,4 +44,8 @@ extern uint64 PortalRunFetch(Portal portal,
|
|
|
42
44
|
long count,
|
|
43
45
|
DestReceiver *dest);
|
|
44
46
|
|
|
47
|
+
extern bool PlannedStmtRequiresSnapshot(struct PlannedStmt *pstmt);
|
|
48
|
+
|
|
49
|
+
extern void EnsurePortalSnapshotExists(void);
|
|
50
|
+
|
|
45
51
|
#endif /* PQUERY_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for postgres.c.
|
|
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/tcop/tcopprot.h
|
|
@@ -25,10 +25,11 @@
|
|
|
25
25
|
/* Required daylight between max_stack_depth and the kernel limit, in bytes */
|
|
26
26
|
#define STACK_DEPTH_SLOP (512 * 1024L)
|
|
27
27
|
|
|
28
|
-
extern __thread CommandDest whereToSendOutput;
|
|
28
|
+
extern PGDLLIMPORT __thread CommandDest whereToSendOutput;
|
|
29
29
|
extern PGDLLIMPORT __thread const char *debug_query_string;
|
|
30
|
-
extern __thread int max_stack_depth;
|
|
31
|
-
extern int
|
|
30
|
+
extern PGDLLIMPORT __thread int max_stack_depth;
|
|
31
|
+
extern PGDLLIMPORT int PostAuthDelay;
|
|
32
|
+
extern PGDLLIMPORT int client_connection_check_interval;
|
|
32
33
|
|
|
33
34
|
/* GUC-configurable parameters */
|
|
34
35
|
|
|
@@ -43,11 +44,17 @@ typedef enum
|
|
|
43
44
|
extern PGDLLIMPORT int log_statement;
|
|
44
45
|
|
|
45
46
|
extern List *pg_parse_query(const char *query_string);
|
|
46
|
-
extern List *
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
extern List *pg_rewrite_query(Query *query);
|
|
48
|
+
extern List *pg_analyze_and_rewrite_fixedparams(RawStmt *parsetree,
|
|
49
|
+
const char *query_string,
|
|
50
|
+
const Oid *paramTypes, int numParams,
|
|
51
|
+
QueryEnvironment *queryEnv);
|
|
52
|
+
extern List *pg_analyze_and_rewrite_varparams(RawStmt *parsetree,
|
|
53
|
+
const char *query_string,
|
|
54
|
+
Oid **paramTypes,
|
|
55
|
+
int *numParams,
|
|
56
|
+
QueryEnvironment *queryEnv);
|
|
57
|
+
extern List *pg_analyze_and_rewrite_withcb(RawStmt *parsetree,
|
|
51
58
|
const char *query_string,
|
|
52
59
|
ParserSetupHook parserSetup,
|
|
53
60
|
void *parserSetupArg,
|
|
@@ -73,8 +80,9 @@ extern void ProcessClientWriteInterrupt(bool blocked);
|
|
|
73
80
|
|
|
74
81
|
extern void process_postgres_switches(int argc, char *argv[],
|
|
75
82
|
GucContext ctx, const char **dbname);
|
|
76
|
-
extern void
|
|
77
|
-
|
|
83
|
+
extern void PostgresSingleUserMain(int argc, char *argv[],
|
|
84
|
+
const char *username) pg_attribute_noreturn();
|
|
85
|
+
extern void PostgresMain(const char *dbname,
|
|
78
86
|
const char *username) pg_attribute_noreturn();
|
|
79
87
|
extern long get_stack_depth_rlimit(void);
|
|
80
88
|
extern void ResetUsage(void);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* prototypes for utility.c.
|
|
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/tcop/utility.h
|
|
@@ -51,7 +51,7 @@ typedef struct AlterTableUtilityContext
|
|
|
51
51
|
*
|
|
52
52
|
* COMMAND_OK_IN_RECOVERY means that the command is permissible even when in
|
|
53
53
|
* recovery. It can't write WAL, nor can it do things that would imperil
|
|
54
|
-
* replay of future WAL received from the
|
|
54
|
+
* replay of future WAL received from the primary.
|
|
55
55
|
*/
|
|
56
56
|
#define COMMAND_OK_IN_READ_ONLY_TXN 0x0001
|
|
57
57
|
#define COMMAND_OK_IN_PARALLEL_MODE 0x0002
|
|
@@ -69,17 +69,21 @@ typedef struct AlterTableUtilityContext
|
|
|
69
69
|
|
|
70
70
|
/* Hook for plugins to get control in ProcessUtility() */
|
|
71
71
|
typedef void (*ProcessUtility_hook_type) (PlannedStmt *pstmt,
|
|
72
|
-
const char *queryString,
|
|
72
|
+
const char *queryString,
|
|
73
|
+
bool readOnlyTree,
|
|
74
|
+
ProcessUtilityContext context,
|
|
73
75
|
ParamListInfo params,
|
|
74
76
|
QueryEnvironment *queryEnv,
|
|
75
77
|
DestReceiver *dest, QueryCompletion *qc);
|
|
76
78
|
extern PGDLLIMPORT ProcessUtility_hook_type ProcessUtility_hook;
|
|
77
79
|
|
|
78
80
|
extern void ProcessUtility(PlannedStmt *pstmt, const char *queryString,
|
|
81
|
+
bool readOnlyTree,
|
|
79
82
|
ProcessUtilityContext context, ParamListInfo params,
|
|
80
83
|
QueryEnvironment *queryEnv,
|
|
81
84
|
DestReceiver *dest, QueryCompletion *qc);
|
|
82
85
|
extern void standard_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
|
|
86
|
+
bool readOnlyTree,
|
|
83
87
|
ProcessUtilityContext context, ParamListInfo params,
|
|
84
88
|
QueryEnvironment *queryEnv,
|
|
85
89
|
DestReceiver *dest, QueryCompletion *qc);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* ts_cache.h
|
|
4
4
|
* Tsearch related object caches.
|
|
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/tsearch/ts_cache.h
|
|
@@ -84,7 +84,7 @@ typedef struct
|
|
|
84
84
|
/*
|
|
85
85
|
* GUC variable for current configuration
|
|
86
86
|
*/
|
|
87
|
-
extern char *TSCurrentConfig;
|
|
87
|
+
extern PGDLLIMPORT char *TSCurrentConfig;
|
|
88
88
|
|
|
89
89
|
|
|
90
90
|
extern TSParserCacheEntry *lookup_ts_parser_cache(Oid prsId);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Definition of (and support for) access control list data structures.
|
|
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/utils/acl.h
|
|
@@ -146,9 +146,11 @@ typedef struct ArrayType Acl;
|
|
|
146
146
|
#define ACL_CREATE_CHR 'C'
|
|
147
147
|
#define ACL_CREATE_TEMP_CHR 'T'
|
|
148
148
|
#define ACL_CONNECT_CHR 'c'
|
|
149
|
+
#define ACL_SET_CHR 's'
|
|
150
|
+
#define ACL_ALTER_SYSTEM_CHR 'A'
|
|
149
151
|
|
|
150
152
|
/* string holding all privilege code chars, in order by bitmask position */
|
|
151
|
-
#define ACL_ALL_RIGHTS_STR "
|
|
153
|
+
#define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsA"
|
|
152
154
|
|
|
153
155
|
/*
|
|
154
156
|
* Bitmasks defining "all rights" for each supported object type
|
|
@@ -162,6 +164,7 @@ typedef struct ArrayType Acl;
|
|
|
162
164
|
#define ACL_ALL_RIGHTS_FUNCTION (ACL_EXECUTE)
|
|
163
165
|
#define ACL_ALL_RIGHTS_LANGUAGE (ACL_USAGE)
|
|
164
166
|
#define ACL_ALL_RIGHTS_LARGEOBJECT (ACL_SELECT|ACL_UPDATE)
|
|
167
|
+
#define ACL_ALL_RIGHTS_PARAMETER_ACL (ACL_SET|ACL_ALTER_SYSTEM)
|
|
165
168
|
#define ACL_ALL_RIGHTS_SCHEMA (ACL_USAGE|ACL_CREATE)
|
|
166
169
|
#define ACL_ALL_RIGHTS_TABLESPACE (ACL_CREATE)
|
|
167
170
|
#define ACL_ALL_RIGHTS_TYPE (ACL_USAGE)
|
|
@@ -230,14 +233,23 @@ extern void ExecuteGrantStmt(GrantStmt *stmt);
|
|
|
230
233
|
extern void ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivilegesStmt *stmt);
|
|
231
234
|
|
|
232
235
|
extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid);
|
|
233
|
-
extern void RemoveDefaultACLById(Oid defaclOid);
|
|
234
236
|
|
|
235
237
|
extern AclMode pg_attribute_aclmask(Oid table_oid, AttrNumber attnum,
|
|
236
238
|
Oid roleid, AclMode mask, AclMaskHow how);
|
|
239
|
+
extern AclMode pg_attribute_aclmask_ext(Oid table_oid, AttrNumber attnum,
|
|
240
|
+
Oid roleid, AclMode mask,
|
|
241
|
+
AclMaskHow how, bool *is_missing);
|
|
237
242
|
extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
|
|
238
243
|
AclMode mask, AclMaskHow how);
|
|
244
|
+
extern AclMode pg_class_aclmask_ext(Oid table_oid, Oid roleid,
|
|
245
|
+
AclMode mask, AclMaskHow how,
|
|
246
|
+
bool *is_missing);
|
|
239
247
|
extern AclMode pg_database_aclmask(Oid db_oid, Oid roleid,
|
|
240
248
|
AclMode mask, AclMaskHow how);
|
|
249
|
+
extern AclMode pg_parameter_aclmask(const char *name, Oid roleid,
|
|
250
|
+
AclMode mask, AclMaskHow how);
|
|
251
|
+
extern AclMode pg_parameter_acl_aclmask(Oid acl_oid, Oid roleid,
|
|
252
|
+
AclMode mask, AclMaskHow how);
|
|
241
253
|
extern AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid,
|
|
242
254
|
AclMode mask, AclMaskHow how);
|
|
243
255
|
extern AclMode pg_language_aclmask(Oid lang_oid, Oid roleid,
|
|
@@ -257,10 +269,19 @@ extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid,
|
|
|
257
269
|
|
|
258
270
|
extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
|
|
259
271
|
Oid roleid, AclMode mode);
|
|
272
|
+
extern AclResult pg_attribute_aclcheck_ext(Oid table_oid, AttrNumber attnum,
|
|
273
|
+
Oid roleid, AclMode mode,
|
|
274
|
+
bool *is_missing);
|
|
260
275
|
extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid,
|
|
261
276
|
AclMode mode, AclMaskHow how);
|
|
262
277
|
extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode);
|
|
278
|
+
extern AclResult pg_class_aclcheck_ext(Oid table_oid, Oid roleid,
|
|
279
|
+
AclMode mode, bool *is_missing);
|
|
263
280
|
extern AclResult pg_database_aclcheck(Oid db_oid, Oid roleid, AclMode mode);
|
|
281
|
+
extern AclResult pg_parameter_aclcheck(const char *name, Oid roleid,
|
|
282
|
+
AclMode mode);
|
|
283
|
+
extern AclResult pg_parameter_acl_aclcheck(Oid acl_oid, Oid roleid,
|
|
284
|
+
AclMode mode);
|
|
264
285
|
extern AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode);
|
|
265
286
|
extern AclResult pg_language_aclcheck(Oid lang_oid, Oid roleid, AclMode mode);
|
|
266
287
|
extern AclResult pg_largeobject_aclcheck_snapshot(Oid lang_oid, Oid roleid,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* aclchk_internal.h
|
|
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
|
* src/include/utils/aclchk_internal.h
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
* arrays holding the elements.
|
|
52
52
|
*
|
|
53
53
|
*
|
|
54
|
-
* Portions Copyright (c) 1996-
|
|
54
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
55
55
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
56
56
|
*
|
|
57
57
|
* src/include/utils/array.h
|
|
@@ -69,6 +69,11 @@ struct ExprState;
|
|
|
69
69
|
struct ExprContext;
|
|
70
70
|
|
|
71
71
|
|
|
72
|
+
/*
|
|
73
|
+
* Maximum number of array subscripts (arbitrary limit)
|
|
74
|
+
*/
|
|
75
|
+
#define MAXDIM 6
|
|
76
|
+
|
|
72
77
|
/*
|
|
73
78
|
* Arrays are varlena objects, so must meet the varlena convention that
|
|
74
79
|
* the first int32 of the object contains the total object size in bytes.
|
|
@@ -334,7 +339,7 @@ typedef struct ArrayIteratorData *ArrayIterator;
|
|
|
334
339
|
/*
|
|
335
340
|
* GUC parameter
|
|
336
341
|
*/
|
|
337
|
-
extern bool Array_nulls;
|
|
342
|
+
extern PGDLLIMPORT bool Array_nulls;
|
|
338
343
|
|
|
339
344
|
/*
|
|
340
345
|
* prototypes for functions defined in arrayfuncs.c
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* ----------
|
|
2
|
+
* backend_progress.h
|
|
3
|
+
* Command progress reporting definition.
|
|
4
|
+
*
|
|
5
|
+
* Note that this file provides the infrastructure for storing a single
|
|
6
|
+
* backend's command progress counters, without ascribing meaning to the
|
|
7
|
+
* individual fields. See commands/progress.h and system_views.sql for that.
|
|
8
|
+
*
|
|
9
|
+
* Copyright (c) 2001-2022, PostgreSQL Global Development Group
|
|
10
|
+
*
|
|
11
|
+
* src/include/utils/backend_progress.h
|
|
12
|
+
* ----------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef BACKEND_PROGRESS_H
|
|
15
|
+
#define BACKEND_PROGRESS_H
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/* ----------
|
|
19
|
+
* Command type for progress reporting purposes
|
|
20
|
+
* ----------
|
|
21
|
+
*/
|
|
22
|
+
typedef enum ProgressCommandType
|
|
23
|
+
{
|
|
24
|
+
PROGRESS_COMMAND_INVALID,
|
|
25
|
+
PROGRESS_COMMAND_VACUUM,
|
|
26
|
+
PROGRESS_COMMAND_ANALYZE,
|
|
27
|
+
PROGRESS_COMMAND_CLUSTER,
|
|
28
|
+
PROGRESS_COMMAND_CREATE_INDEX,
|
|
29
|
+
PROGRESS_COMMAND_BASEBACKUP,
|
|
30
|
+
PROGRESS_COMMAND_COPY
|
|
31
|
+
} ProgressCommandType;
|
|
32
|
+
|
|
33
|
+
#define PGSTAT_NUM_PROGRESS_PARAM 20
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
extern void pgstat_progress_start_command(ProgressCommandType cmdtype,
|
|
37
|
+
Oid relid);
|
|
38
|
+
extern void pgstat_progress_update_param(int index, int64 val);
|
|
39
|
+
extern void pgstat_progress_update_multi_param(int nparam, const int *index,
|
|
40
|
+
const int64 *val);
|
|
41
|
+
extern void pgstat_progress_end_command(void);
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
#endif /* BACKEND_PROGRESS_H */
|