pg_query 2.2.1 → 4.2.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 +5 -0
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/amapi.h +45 -1
- data/ext/pg_query/include/access/attmap.h +1 -1
- data/ext/pg_query/include/access/attnum.h +2 -2
- data/ext/pg_query/include/access/clog.h +4 -2
- data/ext/pg_query/include/access/commit_ts.h +6 -9
- data/ext/pg_query/include/access/detoast.h +1 -11
- data/ext/pg_query/include/access/genam.h +15 -12
- data/ext/pg_query/include/access/gin.h +2 -2
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +75 -87
- data/ext/pg_query/include/access/itup.h +7 -1
- data/ext/pg_query/include/access/parallel.h +2 -2
- data/ext/pg_query/include/access/printtup.h +1 -1
- data/ext/pg_query/include/access/relation.h +1 -1
- data/ext/pg_query/include/access/relscan.h +17 -2
- data/ext/pg_query/include/access/rmgr.h +30 -3
- data/ext/pg_query/include/access/rmgrlist.h +23 -23
- data/ext/pg_query/include/access/sdir.h +1 -1
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +4 -2
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +2 -1
- data/ext/pg_query/include/access/tableam.h +272 -20
- data/ext/pg_query/include/access/toast_compression.h +73 -0
- data/ext/pg_query/include/access/transam.h +123 -13
- data/ext/pg_query/include/access/tupconvert.h +1 -1
- data/ext/pg_query/include/access/tupdesc.h +1 -1
- data/ext/pg_query/include/access/tupmacs.h +3 -3
- data/ext/pg_query/include/access/twophase.h +3 -1
- data/ext/pg_query/include/access/xact.h +73 -19
- data/ext/pg_query/include/access/xlog.h +60 -155
- data/ext/pg_query/include/access/xlog_internal.h +40 -13
- data/ext/pg_query/include/access/xlogdefs.h +8 -16
- data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/access/xlogreader.h +145 -39
- data/ext/pg_query/include/access/xlogrecord.h +18 -9
- data/ext/pg_query/include/access/xlogrecovery.h +157 -0
- data/ext/pg_query/include/c.h +101 -44
- data/ext/pg_query/include/catalog/catalog.h +3 -1
- data/ext/pg_query/include/catalog/catversion.h +2 -2
- data/ext/pg_query/include/catalog/dependency.h +8 -16
- data/ext/pg_query/include/catalog/genbki.h +83 -5
- data/ext/pg_query/include/catalog/index.h +18 -3
- data/ext/pg_query/include/catalog/indexing.h +12 -324
- data/ext/pg_query/include/catalog/namespace.h +4 -2
- data/ext/pg_query/include/catalog/objectaccess.h +70 -2
- data/ext/pg_query/include/catalog/objectaddress.h +11 -6
- data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_am.h +4 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
- data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
- data/ext/pg_query/include/catalog/pg_authid.h +7 -2
- data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
- data/ext/pg_query/include/catalog/pg_class.h +44 -14
- data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
- data/ext/pg_query/include/catalog/pg_collation.h +33 -8
- data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
- data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/catalog/pg_control.h +3 -5
- data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
- data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_depend.h +11 -7
- data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_index.h +17 -7
- data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
- data/ext/pg_query/include/catalog/pg_language.h +10 -5
- data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
- data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
- data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_operator.h +18 -15
- data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_proc.h +20 -11
- data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
- data/ext/pg_query/include/catalog/pg_publication.h +50 -7
- data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
- data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/catalog/pg_transform.h +8 -5
- data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
- data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_type.h +55 -24
- data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
- data/ext/pg_query/include/catalog/storage.h +5 -3
- data/ext/pg_query/include/commands/async.h +3 -4
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +11 -24
- data/ext/pg_query/include/commands/event_trigger.h +2 -2
- data/ext/pg_query/include/commands/explain.h +1 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -2
- data/ext/pg_query/include/commands/trigger.h +18 -16
- data/ext/pg_query/include/commands/user.h +2 -2
- data/ext/pg_query/include/commands/vacuum.h +88 -41
- data/ext/pg_query/include/commands/variable.h +1 -1
- data/ext/pg_query/include/common/file_perm.h +4 -4
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/ip.h +1 -7
- data/ext/pg_query/include/common/keywords.h +2 -6
- data/ext/pg_query/include/common/kwlookup.h +1 -1
- data/ext/pg_query/include/common/pg_prng.h +60 -0
- data/ext/pg_query/include/common/relpath.h +2 -2
- data/ext/pg_query/include/common/string.h +24 -1
- data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/datatype/timestamp.h +40 -1
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +65 -22
- data/ext/pg_query/include/executor/functions.h +17 -3
- data/ext/pg_query/include/executor/instrument.h +33 -16
- data/ext/pg_query/include/executor/spi.h +41 -3
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +1 -1
- data/ext/pg_query/include/fmgr.h +13 -7
- data/ext/pg_query/include/funcapi.h +16 -4
- data/ext/pg_query/include/getaddrinfo.h +1 -1
- data/ext/pg_query/include/jit/jit.h +11 -11
- data/ext/pg_query/include/kwlist_d.h +517 -494
- data/ext/pg_query/include/lib/dshash.h +112 -0
- data/ext/pg_query/include/lib/ilist.h +20 -1
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +140 -15
- data/ext/pg_query/include/lib/sort_template.h +432 -0
- data/ext/pg_query/include/lib/stringinfo.h +1 -1
- data/ext/pg_query/include/libpq/auth.h +6 -4
- data/ext/pg_query/include/libpq/crypt.h +5 -4
- data/ext/pg_query/include/libpq/hba.h +43 -4
- data/ext/pg_query/include/libpq/libpq-be.h +23 -6
- data/ext/pg_query/include/libpq/libpq.h +30 -20
- data/ext/pg_query/include/libpq/pqcomm.h +17 -31
- data/ext/pg_query/include/libpq/pqformat.h +1 -1
- data/ext/pg_query/include/libpq/pqsignal.h +4 -4
- data/ext/pg_query/include/mb/pg_wchar.h +105 -23
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +47 -41
- data/ext/pg_query/include/nodes/bitmapset.h +1 -1
- data/ext/pg_query/include/nodes/execnodes.h +270 -78
- data/ext/pg_query/include/nodes/extensible.h +4 -2
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +7 -6
- data/ext/pg_query/include/nodes/memnodes.h +5 -3
- data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/nodes/nodes.h +30 -11
- data/ext/pg_query/include/nodes/params.h +1 -1
- data/ext/pg_query/include/nodes/parsenodes.h +322 -90
- data/ext/pg_query/include/nodes/pathnodes.h +243 -66
- data/ext/pg_query/include/nodes/pg_list.h +75 -69
- data/ext/pg_query/include/nodes/plannodes.h +111 -28
- data/ext/pg_query/include/nodes/primnodes.h +99 -47
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +58 -39
- data/ext/pg_query/include/optimizer/cost.h +9 -2
- data/ext/pg_query/include/optimizer/geqo.h +9 -7
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +25 -17
- data/ext/pg_query/include/optimizer/paths.h +6 -6
- data/ext/pg_query/include/optimizer/planmain.h +15 -14
- data/ext/pg_query/include/parser/analyze.h +19 -5
- data/ext/pg_query/include/parser/gram.h +947 -913
- data/ext/pg_query/include/parser/gramparse.h +1 -1
- data/ext/pg_query/include/parser/kwlist.h +463 -453
- data/ext/pg_query/include/parser/parse_agg.h +2 -7
- data/ext/pg_query/include/parser/parse_coerce.h +3 -1
- data/ext/pg_query/include/parser/parse_expr.h +2 -3
- data/ext/pg_query/include/parser/parse_func.h +2 -1
- data/ext/pg_query/include/parser/parse_node.h +21 -9
- data/ext/pg_query/include/parser/parse_oper.h +1 -3
- data/ext/pg_query/include/parser/parse_relation.h +5 -4
- data/ext/pg_query/include/parser/parse_type.h +1 -1
- data/ext/pg_query/include/parser/parser.h +31 -4
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +1 -1
- data/ext/pg_query/include/parser/scansup.h +2 -5
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +83 -41
- data/ext/pg_query/include/pg_config_manual.h +74 -21
- data/ext/pg_query/include/pg_getopt.h +6 -6
- data/ext/pg_query/include/pg_query.h +5 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +449 -1238
- data/ext/pg_query/include/pgtime.h +14 -4
- data/ext/pg_query/include/pl_gram.h +126 -128
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/include/plerrcodes.h +9 -1
- data/ext/pg_query/include/plpgsql.h +52 -54
- data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
- data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
- data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
- data/ext/pg_query/include/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +1 -1
- data/ext/pg_query/include/port/pg_bitutils.h +40 -10
- data/ext/pg_query/include/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/port/pg_crc32c.h +1 -1
- data/ext/pg_query/include/port.h +71 -46
- data/ext/pg_query/include/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres.h +60 -16
- data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
- data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
- data/ext/pg_query/include/postmaster/bgworker.h +2 -1
- data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
- data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
- data/ext/pg_query/include/postmaster/fork_process.h +1 -1
- data/ext/pg_query/include/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postmaster/pgarch.h +42 -8
- data/ext/pg_query/include/postmaster/postmaster.h +18 -17
- data/ext/pg_query/include/postmaster/startup.h +39 -0
- data/ext/pg_query/include/postmaster/syslogger.h +15 -10
- data/ext/pg_query/include/postmaster/walwriter.h +3 -3
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
- data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
- data/ext/pg_query/include/regex/regex.h +18 -16
- data/ext/pg_query/include/replication/logicallauncher.h +3 -5
- data/ext/pg_query/include/replication/logicalproto.h +161 -17
- data/ext/pg_query/include/replication/logicalworker.h +1 -1
- data/ext/pg_query/include/replication/origin.h +7 -7
- data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
- data/ext/pg_query/include/replication/slot.h +22 -11
- data/ext/pg_query/include/replication/syncrep.h +5 -5
- data/ext/pg_query/include/replication/walreceiver.h +145 -13
- data/ext/pg_query/include/replication/walsender.h +8 -8
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
- data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/storage/backendid.h +3 -3
- data/ext/pg_query/include/storage/block.h +4 -10
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +19 -14
- data/ext/pg_query/include/storage/bufpage.h +6 -8
- data/ext/pg_query/include/storage/condition_variable.h +13 -2
- data/ext/pg_query/include/storage/dsm.h +4 -1
- data/ext/pg_query/include/storage/dsm_impl.h +3 -2
- data/ext/pg_query/include/storage/fd.h +33 -3
- data/ext/pg_query/include/storage/fileset.h +40 -0
- data/ext/pg_query/include/storage/ipc.h +4 -1
- data/ext/pg_query/include/storage/item.h +1 -1
- data/ext/pg_query/include/storage/itemid.h +1 -1
- data/ext/pg_query/include/storage/itemptr.h +3 -1
- data/ext/pg_query/include/storage/large_object.h +2 -2
- data/ext/pg_query/include/storage/latch.h +9 -13
- data/ext/pg_query/include/storage/lmgr.h +2 -1
- data/ext/pg_query/include/storage/lock.h +11 -8
- data/ext/pg_query/include/storage/lockdefs.h +2 -2
- data/ext/pg_query/include/storage/lwlock.h +5 -32
- data/ext/pg_query/include/storage/lwlocknames.h +0 -1
- data/ext/pg_query/include/storage/off.h +1 -1
- data/ext/pg_query/include/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/storage/pg_shmem.h +9 -7
- data/ext/pg_query/include/storage/pmsignal.h +15 -4
- data/ext/pg_query/include/storage/predicate.h +4 -4
- data/ext/pg_query/include/storage/proc.h +173 -59
- data/ext/pg_query/include/storage/procarray.h +98 -0
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -7
- data/ext/pg_query/include/storage/relfilenode.h +1 -1
- data/ext/pg_query/include/storage/s_lock.h +60 -21
- data/ext/pg_query/include/storage/sharedfileset.h +3 -11
- data/ext/pg_query/include/storage/shm_mq.h +5 -4
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -1
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +1 -1
- data/ext/pg_query/include/storage/smgr.h +10 -8
- data/ext/pg_query/include/storage/spin.h +2 -2
- data/ext/pg_query/include/storage/standby.h +13 -6
- data/ext/pg_query/include/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/storage/sync.h +7 -3
- data/ext/pg_query/include/tcop/cmdtag.h +1 -1
- data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -1
- data/ext/pg_query/include/tcop/fastpath.h +1 -2
- data/ext/pg_query/include/tcop/pquery.h +1 -1
- data/ext/pg_query/include/tcop/tcopprot.h +19 -11
- data/ext/pg_query/include/tcop/utility.h +7 -3
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
- data/ext/pg_query/include/utils/acl.h +24 -3
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +7 -2
- data/ext/pg_query/include/utils/backend_progress.h +44 -0
- data/ext/pg_query/include/utils/backend_status.h +321 -0
- data/ext/pg_query/include/utils/builtins.h +10 -11
- data/ext/pg_query/include/utils/bytea.h +3 -2
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +1 -1
- data/ext/pg_query/include/utils/datetime.h +8 -7
- data/ext/pg_query/include/utils/datum.h +9 -1
- data/ext/pg_query/include/utils/dsa.h +1 -1
- data/ext/pg_query/include/utils/dynahash.h +4 -3
- data/ext/pg_query/include/utils/elog.h +52 -21
- data/ext/pg_query/include/utils/errcodes.h +2 -0
- data/ext/pg_query/include/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/utils/float.h +7 -7
- data/ext/pg_query/include/utils/fmgroids.h +1300 -696
- data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
- data/ext/pg_query/include/utils/fmgrtab.h +6 -5
- data/ext/pg_query/include/utils/guc.h +69 -43
- data/ext/pg_query/include/utils/guc_tables.h +23 -19
- data/ext/pg_query/include/utils/hsearch.h +15 -11
- data/ext/pg_query/include/utils/inval.h +4 -1
- data/ext/pg_query/include/utils/lsyscache.h +11 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +8 -3
- data/ext/pg_query/include/utils/numeric.h +19 -5
- data/ext/pg_query/include/utils/palloc.h +25 -3
- data/ext/pg_query/include/utils/partcache.h +1 -1
- data/ext/pg_query/include/utils/pg_locale.h +17 -9
- data/ext/pg_query/include/utils/pg_lsn.h +1 -1
- data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +6 -5
- data/ext/pg_query/include/utils/portal.h +10 -12
- data/ext/pg_query/include/utils/ps_status.h +1 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/queryjumble.h +88 -0
- data/ext/pg_query/include/utils/regproc.h +14 -3
- data/ext/pg_query/include/utils/rel.h +71 -19
- data/ext/pg_query/include/utils/relcache.h +8 -5
- data/ext/pg_query/include/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/utils/resowner.h +1 -1
- data/ext/pg_query/include/utils/rls.h +2 -2
- data/ext/pg_query/include/utils/ruleutils.h +4 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +34 -14
- data/ext/pg_query/include/utils/snapshot.h +14 -1
- data/ext/pg_query/include/utils/sortsupport.h +117 -2
- data/ext/pg_query/include/utils/syscache.h +6 -1
- data/ext/pg_query/include/utils/timeout.h +11 -4
- data/ext/pg_query/include/utils/timestamp.h +6 -5
- data/ext/pg_query/include/utils/tuplesort.h +25 -11
- data/ext/pg_query/include/utils/tuplestore.h +2 -2
- data/ext/pg_query/include/utils/typcache.h +24 -17
- data/ext/pg_query/include/utils/tzparser.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +5 -3
- data/ext/pg_query/include/utils/wait_event.h +289 -0
- data/ext/pg_query/include/utils/xml.h +4 -4
- data/ext/pg_query/pg_query.pb-c.c +4302 -2304
- data/ext/pg_query/pg_query_deparse.c +986 -301
- data/ext/pg_query/pg_query_fingerprint.c +30 -10
- data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
- data/ext/pg_query/pg_query_scan.c +2 -1
- data/ext/pg_query/pg_query_split.c +3 -2
- data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +74 -11
- data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
- data/ext/pg_query/src_backend_parser_parser.c +26 -7
- data/ext/pg_query/src_backend_parser_scan.c +172 -209
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
- data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
- data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
- data/ext/pg_query/src_common_encnames.c +1 -1
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +517 -494
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_pg_prng.c +152 -0
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_string.c +7 -1
- data/ext/pg_query/src_common_stringinfo.c +1 -1
- data/ext/pg_query/src_common_wchar.c +701 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/src_port_pg_bitutils.c +41 -31
- data/ext/pg_query/src_port_pgsleep.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +37 -13
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +5 -1
- data/lib/pg_query/node.rb +2 -2
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +8 -7
- data/lib/pg_query/pg_query_pb.rb +1108 -942
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +23 -13
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_random.c +0 -31
@@ -4,11 +4,8 @@
|
|
4
4
|
* This file provides some definitions to support indexing
|
5
5
|
* on system catalogs
|
6
6
|
*
|
7
|
-
* Caution: all #define's with numeric values in this file had better be
|
8
|
-
* object OIDs, else renumber_oids.pl might change them inappropriately.
|
9
7
|
*
|
10
|
-
*
|
11
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
12
9
|
* Portions Copyright (c) 1994, Regents of the University of California
|
13
10
|
*
|
14
11
|
* src/include/catalog/indexing.h
|
@@ -19,6 +16,7 @@
|
|
19
16
|
#define INDEXING_H
|
20
17
|
|
21
18
|
#include "access/htup.h"
|
19
|
+
#include "nodes/execnodes.h"
|
22
20
|
#include "utils/relcache.h"
|
23
21
|
|
24
22
|
/*
|
@@ -28,6 +26,12 @@
|
|
28
26
|
*/
|
29
27
|
typedef struct ResultRelInfo *CatalogIndexState;
|
30
28
|
|
29
|
+
/*
|
30
|
+
* Cap the maximum amount of bytes allocated for multi-inserts with system
|
31
|
+
* catalogs, limiting the number of slots used.
|
32
|
+
*/
|
33
|
+
#define MAX_CATALOG_MULTI_INSERT_BYTES 65535
|
34
|
+
|
31
35
|
/*
|
32
36
|
* indexing.c prototypes
|
33
37
|
*/
|
@@ -36,6 +40,10 @@ extern void CatalogCloseIndexes(CatalogIndexState indstate);
|
|
36
40
|
extern void CatalogTupleInsert(Relation heapRel, HeapTuple tup);
|
37
41
|
extern void CatalogTupleInsertWithInfo(Relation heapRel, HeapTuple tup,
|
38
42
|
CatalogIndexState indstate);
|
43
|
+
extern void CatalogTuplesMultiInsertWithInfo(Relation heapRel,
|
44
|
+
TupleTableSlot **slot,
|
45
|
+
int ntuples,
|
46
|
+
CatalogIndexState indstate);
|
39
47
|
extern void CatalogTupleUpdate(Relation heapRel, ItemPointer otid,
|
40
48
|
HeapTuple tup);
|
41
49
|
extern void CatalogTupleUpdateWithInfo(Relation heapRel,
|
@@ -43,324 +51,4 @@ extern void CatalogTupleUpdateWithInfo(Relation heapRel,
|
|
43
51
|
CatalogIndexState indstate);
|
44
52
|
extern void CatalogTupleDelete(Relation heapRel, ItemPointer tid);
|
45
53
|
|
46
|
-
|
47
|
-
/*
|
48
|
-
* These macros are just to keep the C compiler from spitting up on the
|
49
|
-
* upcoming commands for Catalog.pm.
|
50
|
-
*/
|
51
|
-
#define DECLARE_INDEX(name,oid,decl) extern int no_such_variable
|
52
|
-
#define DECLARE_UNIQUE_INDEX(name,oid,decl) extern int no_such_variable
|
53
|
-
|
54
|
-
|
55
|
-
/*
|
56
|
-
* What follows are lines processed by genbki.pl to create the statements
|
57
|
-
* the bootstrap parser will turn into DefineIndex calls.
|
58
|
-
*
|
59
|
-
* The keyword is DECLARE_INDEX or DECLARE_UNIQUE_INDEX. The first two
|
60
|
-
* arguments are the index name and OID, the rest is much like a standard
|
61
|
-
* 'create index' SQL command.
|
62
|
-
*
|
63
|
-
* For each index, we also provide a #define for its OID. References to
|
64
|
-
* the index in the C code should always use these #defines, not the actual
|
65
|
-
* index name (much less the numeric OID).
|
66
|
-
*/
|
67
|
-
|
68
|
-
DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index, 2650, on pg_aggregate using btree(aggfnoid oid_ops));
|
69
|
-
#define AggregateFnoidIndexId 2650
|
70
|
-
|
71
|
-
DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, on pg_am using btree(amname name_ops));
|
72
|
-
#define AmNameIndexId 2651
|
73
|
-
DECLARE_UNIQUE_INDEX(pg_am_oid_index, 2652, on pg_am using btree(oid oid_ops));
|
74
|
-
#define AmOidIndexId 2652
|
75
|
-
|
76
|
-
DECLARE_UNIQUE_INDEX(pg_amop_fam_strat_index, 2653, on pg_amop using btree(amopfamily oid_ops, amoplefttype oid_ops, amoprighttype oid_ops, amopstrategy int2_ops));
|
77
|
-
#define AccessMethodStrategyIndexId 2653
|
78
|
-
DECLARE_UNIQUE_INDEX(pg_amop_opr_fam_index, 2654, on pg_amop using btree(amopopr oid_ops, amoppurpose char_ops, amopfamily oid_ops));
|
79
|
-
#define AccessMethodOperatorIndexId 2654
|
80
|
-
DECLARE_UNIQUE_INDEX(pg_amop_oid_index, 2756, on pg_amop using btree(oid oid_ops));
|
81
|
-
#define AccessMethodOperatorOidIndexId 2756
|
82
|
-
|
83
|
-
DECLARE_UNIQUE_INDEX(pg_amproc_fam_proc_index, 2655, on pg_amproc using btree(amprocfamily oid_ops, amproclefttype oid_ops, amprocrighttype oid_ops, amprocnum int2_ops));
|
84
|
-
#define AccessMethodProcedureIndexId 2655
|
85
|
-
DECLARE_UNIQUE_INDEX(pg_amproc_oid_index, 2757, on pg_amproc using btree(oid oid_ops));
|
86
|
-
#define AccessMethodProcedureOidIndexId 2757
|
87
|
-
|
88
|
-
DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index, 2656, on pg_attrdef using btree(adrelid oid_ops, adnum int2_ops));
|
89
|
-
#define AttrDefaultIndexId 2656
|
90
|
-
DECLARE_UNIQUE_INDEX(pg_attrdef_oid_index, 2657, on pg_attrdef using btree(oid oid_ops));
|
91
|
-
#define AttrDefaultOidIndexId 2657
|
92
|
-
|
93
|
-
DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
|
94
|
-
#define AttributeRelidNameIndexId 2658
|
95
|
-
DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnum_index, 2659, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
|
96
|
-
#define AttributeRelidNumIndexId 2659
|
97
|
-
|
98
|
-
DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, on pg_authid using btree(rolname name_ops));
|
99
|
-
#define AuthIdRolnameIndexId 2676
|
100
|
-
DECLARE_UNIQUE_INDEX(pg_authid_oid_index, 2677, on pg_authid using btree(oid oid_ops));
|
101
|
-
#define AuthIdOidIndexId 2677
|
102
|
-
|
103
|
-
DECLARE_UNIQUE_INDEX(pg_auth_members_role_member_index, 2694, on pg_auth_members using btree(roleid oid_ops, member oid_ops));
|
104
|
-
#define AuthMemRoleMemIndexId 2694
|
105
|
-
DECLARE_UNIQUE_INDEX(pg_auth_members_member_role_index, 2695, on pg_auth_members using btree(member oid_ops, roleid oid_ops));
|
106
|
-
#define AuthMemMemRoleIndexId 2695
|
107
|
-
|
108
|
-
DECLARE_UNIQUE_INDEX(pg_cast_oid_index, 2660, on pg_cast using btree(oid oid_ops));
|
109
|
-
#define CastOidIndexId 2660
|
110
|
-
DECLARE_UNIQUE_INDEX(pg_cast_source_target_index, 2661, on pg_cast using btree(castsource oid_ops, casttarget oid_ops));
|
111
|
-
#define CastSourceTargetIndexId 2661
|
112
|
-
|
113
|
-
DECLARE_UNIQUE_INDEX(pg_class_oid_index, 2662, on pg_class using btree(oid oid_ops));
|
114
|
-
#define ClassOidIndexId 2662
|
115
|
-
DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, on pg_class using btree(relname name_ops, relnamespace oid_ops));
|
116
|
-
#define ClassNameNspIndexId 2663
|
117
|
-
DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, on pg_class using btree(reltablespace oid_ops, relfilenode oid_ops));
|
118
|
-
#define ClassTblspcRelfilenodeIndexId 3455
|
119
|
-
|
120
|
-
DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, on pg_collation using btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
|
121
|
-
#define CollationNameEncNspIndexId 3164
|
122
|
-
DECLARE_UNIQUE_INDEX(pg_collation_oid_index, 3085, on pg_collation using btree(oid oid_ops));
|
123
|
-
#define CollationOidIndexId 3085
|
124
|
-
|
125
|
-
DECLARE_INDEX(pg_constraint_conname_nsp_index, 2664, on pg_constraint using btree(conname name_ops, connamespace oid_ops));
|
126
|
-
#define ConstraintNameNspIndexId 2664
|
127
|
-
DECLARE_UNIQUE_INDEX(pg_constraint_conrelid_contypid_conname_index, 2665, on pg_constraint using btree(conrelid oid_ops, contypid oid_ops, conname name_ops));
|
128
|
-
#define ConstraintRelidTypidNameIndexId 2665
|
129
|
-
DECLARE_INDEX(pg_constraint_contypid_index, 2666, on pg_constraint using btree(contypid oid_ops));
|
130
|
-
#define ConstraintTypidIndexId 2666
|
131
|
-
DECLARE_UNIQUE_INDEX(pg_constraint_oid_index, 2667, on pg_constraint using btree(oid oid_ops));
|
132
|
-
#define ConstraintOidIndexId 2667
|
133
|
-
DECLARE_INDEX(pg_constraint_conparentid_index, 2579, on pg_constraint using btree(conparentid oid_ops));
|
134
|
-
#define ConstraintParentIndexId 2579
|
135
|
-
|
136
|
-
DECLARE_UNIQUE_INDEX(pg_conversion_default_index, 2668, on pg_conversion using btree(connamespace oid_ops, conforencoding int4_ops, contoencoding int4_ops, oid oid_ops));
|
137
|
-
#define ConversionDefaultIndexId 2668
|
138
|
-
DECLARE_UNIQUE_INDEX(pg_conversion_name_nsp_index, 2669, on pg_conversion using btree(conname name_ops, connamespace oid_ops));
|
139
|
-
#define ConversionNameNspIndexId 2669
|
140
|
-
DECLARE_UNIQUE_INDEX(pg_conversion_oid_index, 2670, on pg_conversion using btree(oid oid_ops));
|
141
|
-
#define ConversionOidIndexId 2670
|
142
|
-
|
143
|
-
DECLARE_UNIQUE_INDEX(pg_database_datname_index, 2671, on pg_database using btree(datname name_ops));
|
144
|
-
#define DatabaseNameIndexId 2671
|
145
|
-
DECLARE_UNIQUE_INDEX(pg_database_oid_index, 2672, on pg_database using btree(oid oid_ops));
|
146
|
-
#define DatabaseOidIndexId 2672
|
147
|
-
|
148
|
-
DECLARE_INDEX(pg_depend_depender_index, 2673, on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
|
149
|
-
#define DependDependerIndexId 2673
|
150
|
-
DECLARE_INDEX(pg_depend_reference_index, 2674, on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
|
151
|
-
#define DependReferenceIndexId 2674
|
152
|
-
|
153
|
-
DECLARE_UNIQUE_INDEX(pg_description_o_c_o_index, 2675, on pg_description using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
|
154
|
-
#define DescriptionObjIndexId 2675
|
155
|
-
DECLARE_UNIQUE_INDEX(pg_shdescription_o_c_index, 2397, on pg_shdescription using btree(objoid oid_ops, classoid oid_ops));
|
156
|
-
#define SharedDescriptionObjIndexId 2397
|
157
|
-
|
158
|
-
DECLARE_UNIQUE_INDEX(pg_enum_oid_index, 3502, on pg_enum using btree(oid oid_ops));
|
159
|
-
#define EnumOidIndexId 3502
|
160
|
-
DECLARE_UNIQUE_INDEX(pg_enum_typid_label_index, 3503, on pg_enum using btree(enumtypid oid_ops, enumlabel name_ops));
|
161
|
-
#define EnumTypIdLabelIndexId 3503
|
162
|
-
DECLARE_UNIQUE_INDEX(pg_enum_typid_sortorder_index, 3534, on pg_enum using btree(enumtypid oid_ops, enumsortorder float4_ops));
|
163
|
-
#define EnumTypIdSortOrderIndexId 3534
|
164
|
-
|
165
|
-
DECLARE_INDEX(pg_index_indrelid_index, 2678, on pg_index using btree(indrelid oid_ops));
|
166
|
-
#define IndexIndrelidIndexId 2678
|
167
|
-
DECLARE_UNIQUE_INDEX(pg_index_indexrelid_index, 2679, on pg_index using btree(indexrelid oid_ops));
|
168
|
-
#define IndexRelidIndexId 2679
|
169
|
-
|
170
|
-
DECLARE_UNIQUE_INDEX(pg_inherits_relid_seqno_index, 2680, on pg_inherits using btree(inhrelid oid_ops, inhseqno int4_ops));
|
171
|
-
#define InheritsRelidSeqnoIndexId 2680
|
172
|
-
DECLARE_INDEX(pg_inherits_parent_index, 2187, on pg_inherits using btree(inhparent oid_ops));
|
173
|
-
#define InheritsParentIndexId 2187
|
174
|
-
|
175
|
-
DECLARE_UNIQUE_INDEX(pg_init_privs_o_c_o_index, 3395, on pg_init_privs using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
|
176
|
-
#define InitPrivsObjIndexId 3395
|
177
|
-
|
178
|
-
DECLARE_UNIQUE_INDEX(pg_language_name_index, 2681, on pg_language using btree(lanname name_ops));
|
179
|
-
#define LanguageNameIndexId 2681
|
180
|
-
DECLARE_UNIQUE_INDEX(pg_language_oid_index, 2682, on pg_language using btree(oid oid_ops));
|
181
|
-
#define LanguageOidIndexId 2682
|
182
|
-
|
183
|
-
DECLARE_UNIQUE_INDEX(pg_largeobject_loid_pn_index, 2683, on pg_largeobject using btree(loid oid_ops, pageno int4_ops));
|
184
|
-
#define LargeObjectLOidPNIndexId 2683
|
185
|
-
|
186
|
-
DECLARE_UNIQUE_INDEX(pg_largeobject_metadata_oid_index, 2996, on pg_largeobject_metadata using btree(oid oid_ops));
|
187
|
-
#define LargeObjectMetadataOidIndexId 2996
|
188
|
-
|
189
|
-
DECLARE_UNIQUE_INDEX(pg_namespace_nspname_index, 2684, on pg_namespace using btree(nspname name_ops));
|
190
|
-
#define NamespaceNameIndexId 2684
|
191
|
-
DECLARE_UNIQUE_INDEX(pg_namespace_oid_index, 2685, on pg_namespace using btree(oid oid_ops));
|
192
|
-
#define NamespaceOidIndexId 2685
|
193
|
-
|
194
|
-
DECLARE_UNIQUE_INDEX(pg_opclass_am_name_nsp_index, 2686, on pg_opclass using btree(opcmethod oid_ops, opcname name_ops, opcnamespace oid_ops));
|
195
|
-
#define OpclassAmNameNspIndexId 2686
|
196
|
-
DECLARE_UNIQUE_INDEX(pg_opclass_oid_index, 2687, on pg_opclass using btree(oid oid_ops));
|
197
|
-
#define OpclassOidIndexId 2687
|
198
|
-
|
199
|
-
DECLARE_UNIQUE_INDEX(pg_operator_oid_index, 2688, on pg_operator using btree(oid oid_ops));
|
200
|
-
#define OperatorOidIndexId 2688
|
201
|
-
DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index, 2689, on pg_operator using btree(oprname name_ops, oprleft oid_ops, oprright oid_ops, oprnamespace oid_ops));
|
202
|
-
#define OperatorNameNspIndexId 2689
|
203
|
-
|
204
|
-
DECLARE_UNIQUE_INDEX(pg_opfamily_am_name_nsp_index, 2754, on pg_opfamily using btree(opfmethod oid_ops, opfname name_ops, opfnamespace oid_ops));
|
205
|
-
#define OpfamilyAmNameNspIndexId 2754
|
206
|
-
DECLARE_UNIQUE_INDEX(pg_opfamily_oid_index, 2755, on pg_opfamily using btree(oid oid_ops));
|
207
|
-
#define OpfamilyOidIndexId 2755
|
208
|
-
|
209
|
-
DECLARE_UNIQUE_INDEX(pg_proc_oid_index, 2690, on pg_proc using btree(oid oid_ops));
|
210
|
-
#define ProcedureOidIndexId 2690
|
211
|
-
DECLARE_UNIQUE_INDEX(pg_proc_proname_args_nsp_index, 2691, on pg_proc using btree(proname name_ops, proargtypes oidvector_ops, pronamespace oid_ops));
|
212
|
-
#define ProcedureNameArgsNspIndexId 2691
|
213
|
-
|
214
|
-
DECLARE_UNIQUE_INDEX(pg_rewrite_oid_index, 2692, on pg_rewrite using btree(oid oid_ops));
|
215
|
-
#define RewriteOidIndexId 2692
|
216
|
-
DECLARE_UNIQUE_INDEX(pg_rewrite_rel_rulename_index, 2693, on pg_rewrite using btree(ev_class oid_ops, rulename name_ops));
|
217
|
-
#define RewriteRelRulenameIndexId 2693
|
218
|
-
|
219
|
-
DECLARE_UNIQUE_INDEX(pg_sequence_seqrelid_index, 5002, on pg_sequence using btree(seqrelid oid_ops));
|
220
|
-
#define SequenceRelidIndexId 5002
|
221
|
-
|
222
|
-
DECLARE_INDEX(pg_shdepend_depender_index, 1232, on pg_shdepend using btree(dbid oid_ops, classid oid_ops, objid oid_ops, objsubid int4_ops));
|
223
|
-
#define SharedDependDependerIndexId 1232
|
224
|
-
DECLARE_INDEX(pg_shdepend_reference_index, 1233, on pg_shdepend using btree(refclassid oid_ops, refobjid oid_ops));
|
225
|
-
#define SharedDependReferenceIndexId 1233
|
226
|
-
|
227
|
-
DECLARE_UNIQUE_INDEX(pg_statistic_relid_att_inh_index, 2696, on pg_statistic using btree(starelid oid_ops, staattnum int2_ops, stainherit bool_ops));
|
228
|
-
#define StatisticRelidAttnumInhIndexId 2696
|
229
|
-
|
230
|
-
DECLARE_UNIQUE_INDEX(pg_statistic_ext_oid_index, 3380, on pg_statistic_ext using btree(oid oid_ops));
|
231
|
-
#define StatisticExtOidIndexId 3380
|
232
|
-
DECLARE_UNIQUE_INDEX(pg_statistic_ext_name_index, 3997, on pg_statistic_ext using btree(stxname name_ops, stxnamespace oid_ops));
|
233
|
-
#define StatisticExtNameIndexId 3997
|
234
|
-
DECLARE_INDEX(pg_statistic_ext_relid_index, 3379, on pg_statistic_ext using btree(stxrelid oid_ops));
|
235
|
-
#define StatisticExtRelidIndexId 3379
|
236
|
-
|
237
|
-
DECLARE_UNIQUE_INDEX(pg_statistic_ext_data_stxoid_index, 3433, on pg_statistic_ext_data using btree(stxoid oid_ops));
|
238
|
-
#define StatisticExtDataStxoidIndexId 3433
|
239
|
-
|
240
|
-
DECLARE_UNIQUE_INDEX(pg_tablespace_oid_index, 2697, on pg_tablespace using btree(oid oid_ops));
|
241
|
-
#define TablespaceOidIndexId 2697
|
242
|
-
DECLARE_UNIQUE_INDEX(pg_tablespace_spcname_index, 2698, on pg_tablespace using btree(spcname name_ops));
|
243
|
-
#define TablespaceNameIndexId 2698
|
244
|
-
|
245
|
-
DECLARE_UNIQUE_INDEX(pg_transform_oid_index, 3574, on pg_transform using btree(oid oid_ops));
|
246
|
-
#define TransformOidIndexId 3574
|
247
|
-
DECLARE_UNIQUE_INDEX(pg_transform_type_lang_index, 3575, on pg_transform using btree(trftype oid_ops, trflang oid_ops));
|
248
|
-
#define TransformTypeLangIndexId 3575
|
249
|
-
|
250
|
-
DECLARE_INDEX(pg_trigger_tgconstraint_index, 2699, on pg_trigger using btree(tgconstraint oid_ops));
|
251
|
-
#define TriggerConstraintIndexId 2699
|
252
|
-
DECLARE_UNIQUE_INDEX(pg_trigger_tgrelid_tgname_index, 2701, on pg_trigger using btree(tgrelid oid_ops, tgname name_ops));
|
253
|
-
#define TriggerRelidNameIndexId 2701
|
254
|
-
DECLARE_UNIQUE_INDEX(pg_trigger_oid_index, 2702, on pg_trigger using btree(oid oid_ops));
|
255
|
-
#define TriggerOidIndexId 2702
|
256
|
-
|
257
|
-
DECLARE_UNIQUE_INDEX(pg_event_trigger_evtname_index, 3467, on pg_event_trigger using btree(evtname name_ops));
|
258
|
-
#define EventTriggerNameIndexId 3467
|
259
|
-
DECLARE_UNIQUE_INDEX(pg_event_trigger_oid_index, 3468, on pg_event_trigger using btree(oid oid_ops));
|
260
|
-
#define EventTriggerOidIndexId 3468
|
261
|
-
|
262
|
-
DECLARE_UNIQUE_INDEX(pg_ts_config_cfgname_index, 3608, on pg_ts_config using btree(cfgname name_ops, cfgnamespace oid_ops));
|
263
|
-
#define TSConfigNameNspIndexId 3608
|
264
|
-
DECLARE_UNIQUE_INDEX(pg_ts_config_oid_index, 3712, on pg_ts_config using btree(oid oid_ops));
|
265
|
-
#define TSConfigOidIndexId 3712
|
266
|
-
|
267
|
-
DECLARE_UNIQUE_INDEX(pg_ts_config_map_index, 3609, on pg_ts_config_map using btree(mapcfg oid_ops, maptokentype int4_ops, mapseqno int4_ops));
|
268
|
-
#define TSConfigMapIndexId 3609
|
269
|
-
|
270
|
-
DECLARE_UNIQUE_INDEX(pg_ts_dict_dictname_index, 3604, on pg_ts_dict using btree(dictname name_ops, dictnamespace oid_ops));
|
271
|
-
#define TSDictionaryNameNspIndexId 3604
|
272
|
-
DECLARE_UNIQUE_INDEX(pg_ts_dict_oid_index, 3605, on pg_ts_dict using btree(oid oid_ops));
|
273
|
-
#define TSDictionaryOidIndexId 3605
|
274
|
-
|
275
|
-
DECLARE_UNIQUE_INDEX(pg_ts_parser_prsname_index, 3606, on pg_ts_parser using btree(prsname name_ops, prsnamespace oid_ops));
|
276
|
-
#define TSParserNameNspIndexId 3606
|
277
|
-
DECLARE_UNIQUE_INDEX(pg_ts_parser_oid_index, 3607, on pg_ts_parser using btree(oid oid_ops));
|
278
|
-
#define TSParserOidIndexId 3607
|
279
|
-
|
280
|
-
DECLARE_UNIQUE_INDEX(pg_ts_template_tmplname_index, 3766, on pg_ts_template using btree(tmplname name_ops, tmplnamespace oid_ops));
|
281
|
-
#define TSTemplateNameNspIndexId 3766
|
282
|
-
DECLARE_UNIQUE_INDEX(pg_ts_template_oid_index, 3767, on pg_ts_template using btree(oid oid_ops));
|
283
|
-
#define TSTemplateOidIndexId 3767
|
284
|
-
|
285
|
-
DECLARE_UNIQUE_INDEX(pg_type_oid_index, 2703, on pg_type using btree(oid oid_ops));
|
286
|
-
#define TypeOidIndexId 2703
|
287
|
-
DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index, 2704, on pg_type using btree(typname name_ops, typnamespace oid_ops));
|
288
|
-
#define TypeNameNspIndexId 2704
|
289
|
-
|
290
|
-
DECLARE_UNIQUE_INDEX(pg_foreign_data_wrapper_oid_index, 112, on pg_foreign_data_wrapper using btree(oid oid_ops));
|
291
|
-
#define ForeignDataWrapperOidIndexId 112
|
292
|
-
DECLARE_UNIQUE_INDEX(pg_foreign_data_wrapper_name_index, 548, on pg_foreign_data_wrapper using btree(fdwname name_ops));
|
293
|
-
#define ForeignDataWrapperNameIndexId 548
|
294
|
-
|
295
|
-
DECLARE_UNIQUE_INDEX(pg_foreign_server_oid_index, 113, on pg_foreign_server using btree(oid oid_ops));
|
296
|
-
#define ForeignServerOidIndexId 113
|
297
|
-
DECLARE_UNIQUE_INDEX(pg_foreign_server_name_index, 549, on pg_foreign_server using btree(srvname name_ops));
|
298
|
-
#define ForeignServerNameIndexId 549
|
299
|
-
|
300
|
-
DECLARE_UNIQUE_INDEX(pg_user_mapping_oid_index, 174, on pg_user_mapping using btree(oid oid_ops));
|
301
|
-
#define UserMappingOidIndexId 174
|
302
|
-
DECLARE_UNIQUE_INDEX(pg_user_mapping_user_server_index, 175, on pg_user_mapping using btree(umuser oid_ops, umserver oid_ops));
|
303
|
-
#define UserMappingUserServerIndexId 175
|
304
|
-
|
305
|
-
DECLARE_UNIQUE_INDEX(pg_foreign_table_relid_index, 3119, on pg_foreign_table using btree(ftrelid oid_ops));
|
306
|
-
#define ForeignTableRelidIndexId 3119
|
307
|
-
|
308
|
-
DECLARE_UNIQUE_INDEX(pg_default_acl_role_nsp_obj_index, 827, on pg_default_acl using btree(defaclrole oid_ops, defaclnamespace oid_ops, defaclobjtype char_ops));
|
309
|
-
#define DefaultAclRoleNspObjIndexId 827
|
310
|
-
DECLARE_UNIQUE_INDEX(pg_default_acl_oid_index, 828, on pg_default_acl using btree(oid oid_ops));
|
311
|
-
#define DefaultAclOidIndexId 828
|
312
|
-
|
313
|
-
DECLARE_UNIQUE_INDEX(pg_db_role_setting_databaseid_rol_index, 2965, on pg_db_role_setting using btree(setdatabase oid_ops, setrole oid_ops));
|
314
|
-
#define DbRoleSettingDatidRolidIndexId 2965
|
315
|
-
|
316
|
-
DECLARE_UNIQUE_INDEX(pg_seclabel_object_index, 3597, on pg_seclabel using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops, provider text_ops));
|
317
|
-
#define SecLabelObjectIndexId 3597
|
318
|
-
|
319
|
-
DECLARE_UNIQUE_INDEX(pg_shseclabel_object_index, 3593, on pg_shseclabel using btree(objoid oid_ops, classoid oid_ops, provider text_ops));
|
320
|
-
#define SharedSecLabelObjectIndexId 3593
|
321
|
-
|
322
|
-
DECLARE_UNIQUE_INDEX(pg_extension_oid_index, 3080, on pg_extension using btree(oid oid_ops));
|
323
|
-
#define ExtensionOidIndexId 3080
|
324
|
-
DECLARE_UNIQUE_INDEX(pg_extension_name_index, 3081, on pg_extension using btree(extname name_ops));
|
325
|
-
#define ExtensionNameIndexId 3081
|
326
|
-
|
327
|
-
DECLARE_UNIQUE_INDEX(pg_range_rngtypid_index, 3542, on pg_range using btree(rngtypid oid_ops));
|
328
|
-
#define RangeTypidIndexId 3542
|
329
|
-
|
330
|
-
DECLARE_UNIQUE_INDEX(pg_policy_oid_index, 3257, on pg_policy using btree(oid oid_ops));
|
331
|
-
#define PolicyOidIndexId 3257
|
332
|
-
|
333
|
-
DECLARE_UNIQUE_INDEX(pg_policy_polrelid_polname_index, 3258, on pg_policy using btree(polrelid oid_ops, polname name_ops));
|
334
|
-
#define PolicyPolrelidPolnameIndexId 3258
|
335
|
-
|
336
|
-
DECLARE_UNIQUE_INDEX(pg_replication_origin_roiident_index, 6001, on pg_replication_origin using btree(roident oid_ops));
|
337
|
-
#define ReplicationOriginIdentIndex 6001
|
338
|
-
|
339
|
-
DECLARE_UNIQUE_INDEX(pg_replication_origin_roname_index, 6002, on pg_replication_origin using btree(roname text_ops));
|
340
|
-
#define ReplicationOriginNameIndex 6002
|
341
|
-
|
342
|
-
DECLARE_UNIQUE_INDEX(pg_partitioned_table_partrelid_index, 3351, on pg_partitioned_table using btree(partrelid oid_ops));
|
343
|
-
#define PartitionedRelidIndexId 3351
|
344
|
-
|
345
|
-
DECLARE_UNIQUE_INDEX(pg_publication_oid_index, 6110, on pg_publication using btree(oid oid_ops));
|
346
|
-
#define PublicationObjectIndexId 6110
|
347
|
-
|
348
|
-
DECLARE_UNIQUE_INDEX(pg_publication_pubname_index, 6111, on pg_publication using btree(pubname name_ops));
|
349
|
-
#define PublicationNameIndexId 6111
|
350
|
-
|
351
|
-
DECLARE_UNIQUE_INDEX(pg_publication_rel_oid_index, 6112, on pg_publication_rel using btree(oid oid_ops));
|
352
|
-
#define PublicationRelObjectIndexId 6112
|
353
|
-
|
354
|
-
DECLARE_UNIQUE_INDEX(pg_publication_rel_prrelid_prpubid_index, 6113, on pg_publication_rel using btree(prrelid oid_ops, prpubid oid_ops));
|
355
|
-
#define PublicationRelPrrelidPrpubidIndexId 6113
|
356
|
-
|
357
|
-
DECLARE_UNIQUE_INDEX(pg_subscription_oid_index, 6114, on pg_subscription using btree(oid oid_ops));
|
358
|
-
#define SubscriptionObjectIndexId 6114
|
359
|
-
|
360
|
-
DECLARE_UNIQUE_INDEX(pg_subscription_subname_index, 6115, on pg_subscription using btree(subdbid oid_ops, subname name_ops));
|
361
|
-
#define SubscriptionNameIndexId 6115
|
362
|
-
|
363
|
-
DECLARE_UNIQUE_INDEX(pg_subscription_rel_srrelid_srsubid_index, 6117, on pg_subscription_rel using btree(srrelid oid_ops, srsubid oid_ops));
|
364
|
-
#define SubscriptionRelSrrelidSrsubidIndexId 6117
|
365
|
-
|
366
54
|
#endif /* INDEXING_H */
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* prototypes for functions in backend/catalog/namespace.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/catalog/namespace.h
|
@@ -30,6 +30,7 @@ typedef struct _FuncCandidateList
|
|
30
30
|
struct _FuncCandidateList *next;
|
31
31
|
int pathpos; /* for internal use of namespace lookup */
|
32
32
|
Oid oid; /* the function or operator's OID */
|
33
|
+
int nominalnargs; /* either pronargs or length(proallargtypes) */
|
33
34
|
int nargs; /* number of arg types returned */
|
34
35
|
int nvargs; /* number of args to become variadic array */
|
35
36
|
int ndargs; /* number of defaulted args */
|
@@ -99,6 +100,7 @@ extern FuncCandidateList FuncnameGetCandidates(List *names,
|
|
99
100
|
int nargs, List *argnames,
|
100
101
|
bool expand_variadic,
|
101
102
|
bool expand_defaults,
|
103
|
+
bool include_out_arguments,
|
102
104
|
bool missing_ok);
|
103
105
|
extern bool FunctionIsVisible(Oid funcid);
|
104
106
|
|
@@ -180,7 +182,7 @@ extern void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
|
|
180
182
|
SubTransactionId parentSubid);
|
181
183
|
|
182
184
|
/* stuff for search_path GUC variable */
|
183
|
-
extern char *namespace_search_path;
|
185
|
+
extern PGDLLIMPORT char *namespace_search_path;
|
184
186
|
|
185
187
|
extern List *fetch_search_path(bool includeImplicit);
|
186
188
|
extern int fetch_search_path_array(Oid *sarray, int sarray_len);
|
@@ -3,7 +3,7 @@
|
|
3
3
|
*
|
4
4
|
* Object access hooks.
|
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
|
|
@@ -121,15 +121,23 @@ typedef struct
|
|
121
121
|
bool result;
|
122
122
|
} ObjectAccessNamespaceSearch;
|
123
123
|
|
124
|
-
/* Plugin provides a hook function matching
|
124
|
+
/* Plugin provides a hook function matching one or both of these signatures. */
|
125
125
|
typedef void (*object_access_hook_type) (ObjectAccessType access,
|
126
126
|
Oid classId,
|
127
127
|
Oid objectId,
|
128
128
|
int subId,
|
129
129
|
void *arg);
|
130
130
|
|
131
|
+
typedef void (*object_access_hook_type_str) (ObjectAccessType access,
|
132
|
+
Oid classId,
|
133
|
+
const char *objectStr,
|
134
|
+
int subId,
|
135
|
+
void *arg);
|
136
|
+
|
131
137
|
/* Plugin sets this variable to a suitable hook function. */
|
132
138
|
extern PGDLLIMPORT object_access_hook_type object_access_hook;
|
139
|
+
extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;
|
140
|
+
|
133
141
|
|
134
142
|
/* Core code uses these functions to call the hook (see macros below). */
|
135
143
|
extern void RunObjectPostCreateHook(Oid classId, Oid objectId, int subId,
|
@@ -142,6 +150,18 @@ extern void RunObjectPostAlterHook(Oid classId, Oid objectId, int subId,
|
|
142
150
|
extern bool RunNamespaceSearchHook(Oid objectId, bool ereport_on_violation);
|
143
151
|
extern void RunFunctionExecuteHook(Oid objectId);
|
144
152
|
|
153
|
+
/* String versions */
|
154
|
+
extern void RunObjectPostCreateHookStr(Oid classId, const char *objectStr, int subId,
|
155
|
+
bool is_internal);
|
156
|
+
extern void RunObjectDropHookStr(Oid classId, const char *objectStr, int subId,
|
157
|
+
int dropflags);
|
158
|
+
extern void RunObjectTruncateHookStr(const char *objectStr);
|
159
|
+
extern void RunObjectPostAlterHookStr(Oid classId, const char *objectStr, int subId,
|
160
|
+
Oid auxiliaryId, bool is_internal);
|
161
|
+
extern bool RunNamespaceSearchHookStr(const char *objectStr, bool ereport_on_violation);
|
162
|
+
extern void RunFunctionExecuteHookStr(const char *objectStr);
|
163
|
+
|
164
|
+
|
145
165
|
/*
|
146
166
|
* The following macros are wrappers around the functions above; these should
|
147
167
|
* normally be used to invoke the hook in lieu of calling the above functions
|
@@ -194,4 +214,52 @@ extern void RunFunctionExecuteHook(Oid objectId);
|
|
194
214
|
RunFunctionExecuteHook(objectId); \
|
195
215
|
} while(0)
|
196
216
|
|
217
|
+
|
218
|
+
#define InvokeObjectPostCreateHookStr(classId,objectName,subId) \
|
219
|
+
InvokeObjectPostCreateHookArgStr((classId),(objectName),(subId),false)
|
220
|
+
#define InvokeObjectPostCreateHookArgStr(classId,objectName,subId,is_internal) \
|
221
|
+
do { \
|
222
|
+
if (object_access_hook_str) \
|
223
|
+
RunObjectPostCreateHookStr((classId),(objectName),(subId), \
|
224
|
+
(is_internal)); \
|
225
|
+
} while(0)
|
226
|
+
|
227
|
+
#define InvokeObjectDropHookStr(classId,objectName,subId) \
|
228
|
+
InvokeObjectDropHookArgStr((classId),(objectName),(subId),0)
|
229
|
+
#define InvokeObjectDropHookArgStr(classId,objectName,subId,dropflags) \
|
230
|
+
do { \
|
231
|
+
if (object_access_hook_str) \
|
232
|
+
RunObjectDropHookStr((classId),(objectName),(subId), \
|
233
|
+
(dropflags)); \
|
234
|
+
} while(0)
|
235
|
+
|
236
|
+
#define InvokeObjectTruncateHookStr(objectName) \
|
237
|
+
do { \
|
238
|
+
if (object_access_hook_str) \
|
239
|
+
RunObjectTruncateHookStr(objectName); \
|
240
|
+
} while(0)
|
241
|
+
|
242
|
+
#define InvokeObjectPostAlterHookStr(classId,objectName,subId) \
|
243
|
+
InvokeObjectPostAlterHookArgStr((classId),(objectName),(subId), \
|
244
|
+
InvalidOid,false)
|
245
|
+
#define InvokeObjectPostAlterHookArgStr(classId,objectName,subId, \
|
246
|
+
auxiliaryId,is_internal) \
|
247
|
+
do { \
|
248
|
+
if (object_access_hook_str) \
|
249
|
+
RunObjectPostAlterHookStr((classId),(objectName),(subId), \
|
250
|
+
(auxiliaryId),(is_internal)); \
|
251
|
+
} while(0)
|
252
|
+
|
253
|
+
#define InvokeNamespaceSearchHookStr(objectName, ereport_on_violation) \
|
254
|
+
(!object_access_hook_str \
|
255
|
+
? true \
|
256
|
+
: RunNamespaceSearchHookStr((objectName), (ereport_on_violation)))
|
257
|
+
|
258
|
+
#define InvokeFunctionExecuteHookStr(objectName) \
|
259
|
+
do { \
|
260
|
+
if (object_access_hook_str) \
|
261
|
+
RunFunctionExecuteHookStr(objectName); \
|
262
|
+
} while(0)
|
263
|
+
|
264
|
+
|
197
265
|
#endif /* OBJECTACCESS_H */
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* objectaddress.h
|
4
4
|
* functions for working with object addresses
|
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/catalog/objectaddress.h
|
@@ -28,7 +28,7 @@ typedef struct ObjectAddress
|
|
28
28
|
int32 objectSubId; /* Subitem within object (eg column), or 0 */
|
29
29
|
} ObjectAddress;
|
30
30
|
|
31
|
-
extern const ObjectAddress InvalidObjectAddress;
|
31
|
+
extern PGDLLIMPORT const ObjectAddress InvalidObjectAddress;
|
32
32
|
|
33
33
|
#define ObjectAddressSubSet(addr, class_id, object_id, object_sub_id) \
|
34
34
|
do { \
|
@@ -55,6 +55,7 @@ extern void check_object_ownership(Oid roleid,
|
|
55
55
|
extern Oid get_object_namespace(const ObjectAddress *address);
|
56
56
|
|
57
57
|
extern bool is_objectclass_supported(Oid class_id);
|
58
|
+
extern const char *get_object_class_descr(Oid class_id);
|
58
59
|
extern Oid get_object_oid_index(Oid class_id);
|
59
60
|
extern int get_object_catcache_oid(Oid class_id);
|
60
61
|
extern int get_object_catcache_name(Oid class_id);
|
@@ -69,14 +70,18 @@ extern bool get_object_namensp_unique(Oid class_id);
|
|
69
70
|
extern HeapTuple get_catalog_object_by_oid(Relation catalog,
|
70
71
|
AttrNumber oidcol, Oid objectId);
|
71
72
|
|
72
|
-
extern char *getObjectDescription(const ObjectAddress *object
|
73
|
+
extern char *getObjectDescription(const ObjectAddress *object,
|
74
|
+
bool missing_ok);
|
73
75
|
extern char *getObjectDescriptionOids(Oid classid, Oid objid);
|
74
76
|
|
75
77
|
extern int read_objtype_from_string(const char *objtype);
|
76
|
-
extern char *getObjectTypeDescription(const ObjectAddress *object
|
77
|
-
|
78
|
+
extern char *getObjectTypeDescription(const ObjectAddress *object,
|
79
|
+
bool missing_ok);
|
80
|
+
extern char *getObjectIdentity(const ObjectAddress *address,
|
81
|
+
bool missing_ok);
|
78
82
|
extern char *getObjectIdentityParts(const ObjectAddress *address,
|
79
|
-
List **objname, List **objargs
|
83
|
+
List **objname, List **objargs,
|
84
|
+
bool missing_ok);
|
80
85
|
extern struct ArrayType *strlist_to_textarray(List *list);
|
81
86
|
|
82
87
|
extern ObjectType get_relkind_objtype(char relkind);
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "aggregate" system catalog (pg_aggregate)
|
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/catalog/pg_aggregate.h
|
@@ -44,25 +44,25 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
|
|
44
44
|
regproc aggtransfn BKI_LOOKUP(pg_proc);
|
45
45
|
|
46
46
|
/* final function (0 if none) */
|
47
|
-
regproc aggfinalfn BKI_DEFAULT(-)
|
47
|
+
regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
48
48
|
|
49
49
|
/* combine function (0 if none) */
|
50
|
-
regproc aggcombinefn BKI_DEFAULT(-)
|
50
|
+
regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
51
51
|
|
52
52
|
/* function to convert transtype to bytea (0 if none) */
|
53
|
-
regproc aggserialfn BKI_DEFAULT(-)
|
53
|
+
regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
54
54
|
|
55
55
|
/* function to convert bytea to transtype (0 if none) */
|
56
|
-
regproc aggdeserialfn BKI_DEFAULT(-)
|
56
|
+
regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
57
57
|
|
58
58
|
/* forward function for moving-aggregate mode (0 if none) */
|
59
|
-
regproc aggmtransfn BKI_DEFAULT(-)
|
59
|
+
regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
60
60
|
|
61
61
|
/* inverse function for moving-aggregate mode (0 if none) */
|
62
|
-
regproc aggminvtransfn BKI_DEFAULT(-)
|
62
|
+
regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
63
63
|
|
64
64
|
/* final function for moving-aggregate mode (0 if none) */
|
65
|
-
regproc aggmfinalfn BKI_DEFAULT(-)
|
65
|
+
regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
|
66
66
|
|
67
67
|
/* true to pass extra dummy arguments to aggfinalfn */
|
68
68
|
bool aggfinalextra BKI_DEFAULT(f);
|
@@ -77,7 +77,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
|
|
77
77
|
char aggmfinalmodify BKI_DEFAULT(r);
|
78
78
|
|
79
79
|
/* associated sort operator (0 if none) */
|
80
|
-
Oid aggsortop BKI_DEFAULT(0)
|
80
|
+
Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_operator);
|
81
81
|
|
82
82
|
/* type of aggregate's transition (state) data */
|
83
83
|
Oid aggtranstype BKI_LOOKUP(pg_type);
|
@@ -86,7 +86,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
|
|
86
86
|
int32 aggtransspace BKI_DEFAULT(0);
|
87
87
|
|
88
88
|
/* type of moving-aggregate state data (0 if none) */
|
89
|
-
Oid aggmtranstype BKI_DEFAULT(0)
|
89
|
+
Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
|
90
90
|
|
91
91
|
/* estimated size of moving-agg state (0 for default est) */
|
92
92
|
int32 aggmtransspace BKI_DEFAULT(0);
|
@@ -108,6 +108,10 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
|
|
108
108
|
*/
|
109
109
|
typedef FormData_pg_aggregate *Form_pg_aggregate;
|
110
110
|
|
111
|
+
DECLARE_TOAST(pg_aggregate, 4159, 4160);
|
112
|
+
|
113
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, on pg_aggregate using btree(aggfnoid oid_ops));
|
114
|
+
|
111
115
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
112
116
|
|
113
117
|
/*
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* pg_aggregate_d.h
|
4
4
|
* Macro definitions for pg_aggregate
|
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
|
* NOTES
|
@@ -19,6 +19,7 @@
|
|
19
19
|
#define PG_AGGREGATE_D_H
|
20
20
|
|
21
21
|
#define AggregateRelationId 2600
|
22
|
+
#define AggregateFnoidIndexId 2650
|
22
23
|
|
23
24
|
#define Anum_pg_aggregate_aggfnoid 1
|
24
25
|
#define Anum_pg_aggregate_aggkind 2
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* definition of the "access method" system catalog (pg_am)
|
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/catalog/pg_am.h
|
@@ -47,6 +47,9 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
|
|
47
47
|
*/
|
48
48
|
typedef FormData_pg_am *Form_pg_am;
|
49
49
|
|
50
|
+
DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, on pg_am using btree(amname name_ops));
|
51
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, on pg_am using btree(oid oid_ops));
|
52
|
+
|
50
53
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
51
54
|
|
52
55
|
/*
|