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
|
* pg_am_d.h
|
|
4
4
|
* Macro definitions for pg_am
|
|
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,8 @@
|
|
|
19
19
|
#define PG_AM_D_H
|
|
20
20
|
|
|
21
21
|
#define AccessMethodRelationId 2601
|
|
22
|
+
#define AmNameIndexId 2651
|
|
23
|
+
#define AmOidIndexId 2652
|
|
22
24
|
|
|
23
25
|
#define Anum_pg_am_oid 1
|
|
24
26
|
#define Anum_pg_am_amname 2
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* relations need be included.
|
|
9
9
|
*
|
|
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/catalog/pg_attribute.h
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
*/
|
|
37
37
|
CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,AttributeRelation_Rowtype_Id) BKI_SCHEMA_MACRO
|
|
38
38
|
{
|
|
39
|
-
Oid attrelid;
|
|
39
|
+
Oid attrelid BKI_LOOKUP(pg_class); /* OID of relation containing
|
|
40
|
+
* this attribute */
|
|
40
41
|
NameData attname; /* name of attribute */
|
|
41
42
|
|
|
42
43
|
/*
|
|
@@ -44,9 +45,12 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
44
45
|
* defines the data type of this attribute (e.g. int4). Information in
|
|
45
46
|
* that instance is redundant with the attlen, attbyval, and attalign
|
|
46
47
|
* attributes of this instance, so they had better match or Postgres will
|
|
47
|
-
* fail.
|
|
48
|
+
* fail. In an entry for a dropped column, this field is set to zero
|
|
49
|
+
* since the pg_type entry may no longer exist; but we rely on attlen,
|
|
50
|
+
* attbyval, and attalign to still tell us how large the values in the
|
|
51
|
+
* table are.
|
|
48
52
|
*/
|
|
49
|
-
Oid atttypid;
|
|
53
|
+
Oid atttypid BKI_LOOKUP_OPT(pg_type);
|
|
50
54
|
|
|
51
55
|
/*
|
|
52
56
|
* attstattarget is the target number of statistics datapoints to collect
|
|
@@ -107,6 +111,12 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
107
111
|
*/
|
|
108
112
|
bool attbyval;
|
|
109
113
|
|
|
114
|
+
/*
|
|
115
|
+
* attalign is a copy of the typalign field from pg_type for this
|
|
116
|
+
* attribute. See atttypid comments above.
|
|
117
|
+
*/
|
|
118
|
+
char attalign;
|
|
119
|
+
|
|
110
120
|
/*----------
|
|
111
121
|
* attstorage tells for VARLENA attributes, what the heap access
|
|
112
122
|
* methods can do to it if a given tuple doesn't fit into a page.
|
|
@@ -116,10 +126,14 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
116
126
|
char attstorage;
|
|
117
127
|
|
|
118
128
|
/*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
129
|
+
* attcompression sets the current compression method of the attribute.
|
|
130
|
+
* Typically this is InvalidCompressionMethod ('\0') to specify use of the
|
|
131
|
+
* current default setting (see default_toast_compression). Otherwise,
|
|
132
|
+
* 'p' selects pglz compression, while 'l' selects LZ4 compression.
|
|
133
|
+
* However, this field is ignored whenever attstorage does not allow
|
|
134
|
+
* compression.
|
|
121
135
|
*/
|
|
122
|
-
char
|
|
136
|
+
char attcompression BKI_DEFAULT('\0');
|
|
123
137
|
|
|
124
138
|
/* This flag represents the "NOT NULL" constraint */
|
|
125
139
|
bool attnotnull;
|
|
@@ -153,8 +167,8 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
153
167
|
/* Number of times inherited from direct parent relation(s) */
|
|
154
168
|
int32 attinhcount BKI_DEFAULT(0);
|
|
155
169
|
|
|
156
|
-
/* attribute's collation */
|
|
157
|
-
Oid attcollation;
|
|
170
|
+
/* attribute's collation, if any */
|
|
171
|
+
Oid attcollation BKI_LOOKUP_OPT(pg_collation);
|
|
158
172
|
|
|
159
173
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
160
174
|
/* NOTE: The following fields are not present in tuple descriptors. */
|
|
@@ -180,7 +194,7 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
180
194
|
* ATTRIBUTE_FIXED_PART_SIZE is the size of the fixed-layout,
|
|
181
195
|
* guaranteed-not-null part of a pg_attribute row. This is in fact as much
|
|
182
196
|
* of the row as gets copied into tuple descriptors, so don't expect you
|
|
183
|
-
* can access
|
|
197
|
+
* can access the variable-length fields except in a real tuple!
|
|
184
198
|
*/
|
|
185
199
|
#define ATTRIBUTE_FIXED_PART_SIZE \
|
|
186
200
|
(offsetof(FormData_pg_attribute,attcollation) + sizeof(Oid))
|
|
@@ -192,6 +206,9 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
|
|
|
192
206
|
*/
|
|
193
207
|
typedef FormData_pg_attribute *Form_pg_attribute;
|
|
194
208
|
|
|
209
|
+
DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, AttributeRelidNameIndexId, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
|
|
210
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_attribute_relid_attnum_index, 2659, AttributeRelidNumIndexId, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
|
|
211
|
+
|
|
195
212
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
|
196
213
|
|
|
197
214
|
#define ATTRIBUTE_IDENTITY_ALWAYS 'a'
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pg_attribute_d.h
|
|
4
4
|
* Macro definitions for pg_attribute
|
|
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
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
|
|
21
21
|
#define AttributeRelationId 1249
|
|
22
22
|
#define AttributeRelation_Rowtype_Id 75
|
|
23
|
+
#define AttributeRelidNameIndexId 2658
|
|
24
|
+
#define AttributeRelidNumIndexId 2659
|
|
23
25
|
|
|
24
26
|
#define Anum_pg_attribute_attrelid 1
|
|
25
27
|
#define Anum_pg_attribute_attname 2
|
|
@@ -31,23 +33,24 @@
|
|
|
31
33
|
#define Anum_pg_attribute_attcacheoff 8
|
|
32
34
|
#define Anum_pg_attribute_atttypmod 9
|
|
33
35
|
#define Anum_pg_attribute_attbyval 10
|
|
34
|
-
#define
|
|
35
|
-
#define
|
|
36
|
-
#define
|
|
37
|
-
#define
|
|
38
|
-
#define
|
|
39
|
-
#define
|
|
40
|
-
#define
|
|
41
|
-
#define
|
|
42
|
-
#define
|
|
43
|
-
#define
|
|
44
|
-
#define
|
|
45
|
-
#define
|
|
46
|
-
#define
|
|
47
|
-
#define
|
|
48
|
-
#define
|
|
49
|
-
|
|
50
|
-
|
|
36
|
+
#define Anum_pg_attribute_attalign 11
|
|
37
|
+
#define Anum_pg_attribute_attstorage 12
|
|
38
|
+
#define Anum_pg_attribute_attcompression 13
|
|
39
|
+
#define Anum_pg_attribute_attnotnull 14
|
|
40
|
+
#define Anum_pg_attribute_atthasdef 15
|
|
41
|
+
#define Anum_pg_attribute_atthasmissing 16
|
|
42
|
+
#define Anum_pg_attribute_attidentity 17
|
|
43
|
+
#define Anum_pg_attribute_attgenerated 18
|
|
44
|
+
#define Anum_pg_attribute_attisdropped 19
|
|
45
|
+
#define Anum_pg_attribute_attislocal 20
|
|
46
|
+
#define Anum_pg_attribute_attinhcount 21
|
|
47
|
+
#define Anum_pg_attribute_attcollation 22
|
|
48
|
+
#define Anum_pg_attribute_attacl 23
|
|
49
|
+
#define Anum_pg_attribute_attoptions 24
|
|
50
|
+
#define Anum_pg_attribute_attfdwoptions 25
|
|
51
|
+
#define Anum_pg_attribute_attmissingval 26
|
|
52
|
+
|
|
53
|
+
#define Natts_pg_attribute 26
|
|
51
54
|
|
|
52
55
|
|
|
53
56
|
#define ATTRIBUTE_IDENTITY_ALWAYS 'a'
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* pg_shadow and pg_group are now publicly accessible views on pg_authid.
|
|
7
7
|
*
|
|
8
8
|
*
|
|
9
|
-
* Portions Copyright (c) 1996-
|
|
9
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
10
10
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
11
11
|
*
|
|
12
12
|
* src/include/catalog/pg_authid.h
|
|
@@ -38,7 +38,7 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
|
|
|
38
38
|
bool rolcreatedb; /* allowed to create databases? */
|
|
39
39
|
bool rolcanlogin; /* allowed to log in as session user? */
|
|
40
40
|
bool rolreplication; /* role used for streaming replication */
|
|
41
|
-
bool rolbypassrls; /* bypasses row
|
|
41
|
+
bool rolbypassrls; /* bypasses row-level security? */
|
|
42
42
|
int32 rolconnlimit; /* max connections allowed (-1=no limit) */
|
|
43
43
|
|
|
44
44
|
/* remaining fields may be null; use heap_getattr to read them! */
|
|
@@ -55,4 +55,9 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
|
|
|
55
55
|
*/
|
|
56
56
|
typedef FormData_pg_authid *Form_pg_authid;
|
|
57
57
|
|
|
58
|
+
DECLARE_TOAST_WITH_MACRO(pg_authid, 4175, 4176, PgAuthidToastTable, PgAuthidToastIndex);
|
|
59
|
+
|
|
60
|
+
DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId, on pg_authid using btree(rolname name_ops));
|
|
61
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId, on pg_authid using btree(oid oid_ops));
|
|
62
|
+
|
|
58
63
|
#endif /* PG_AUTHID_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pg_authid_d.h
|
|
4
4
|
* Macro definitions for pg_authid
|
|
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
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
|
|
21
21
|
#define AuthIdRelationId 1260
|
|
22
22
|
#define AuthIdRelation_Rowtype_Id 2842
|
|
23
|
+
#define PgAuthidToastTable 4175
|
|
24
|
+
#define PgAuthidToastIndex 4176
|
|
25
|
+
#define AuthIdRolnameIndexId 2676
|
|
26
|
+
#define AuthIdOidIndexId 2677
|
|
23
27
|
|
|
24
28
|
#define Anum_pg_authid_oid 1
|
|
25
29
|
#define Anum_pg_authid_rolname 2
|
|
@@ -37,13 +41,17 @@
|
|
|
37
41
|
#define Natts_pg_authid 12
|
|
38
42
|
|
|
39
43
|
#define BOOTSTRAP_SUPERUSERID 10
|
|
40
|
-
#define
|
|
41
|
-
#define
|
|
42
|
-
#define
|
|
43
|
-
#define
|
|
44
|
-
#define
|
|
45
|
-
#define
|
|
46
|
-
#define
|
|
47
|
-
#define
|
|
44
|
+
#define ROLE_PG_DATABASE_OWNER 6171
|
|
45
|
+
#define ROLE_PG_READ_ALL_DATA 6181
|
|
46
|
+
#define ROLE_PG_WRITE_ALL_DATA 6182
|
|
47
|
+
#define ROLE_PG_MONITOR 3373
|
|
48
|
+
#define ROLE_PG_READ_ALL_SETTINGS 3374
|
|
49
|
+
#define ROLE_PG_READ_ALL_STATS 3375
|
|
50
|
+
#define ROLE_PG_STAT_SCAN_TABLES 3377
|
|
51
|
+
#define ROLE_PG_READ_SERVER_FILES 4569
|
|
52
|
+
#define ROLE_PG_WRITE_SERVER_FILES 4570
|
|
53
|
+
#define ROLE_PG_EXECUTE_SERVER_PROGRAM 4571
|
|
54
|
+
#define ROLE_PG_SIGNAL_BACKEND 4200
|
|
55
|
+
#define ROLE_PG_CHECKPOINT 4544
|
|
48
56
|
|
|
49
57
|
#endif /* PG_AUTHID_D_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* definition of the "relation" system catalog (pg_class)
|
|
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_class.h
|
|
@@ -38,38 +38,38 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
|
|
|
38
38
|
NameData relname;
|
|
39
39
|
|
|
40
40
|
/* OID of namespace containing this class */
|
|
41
|
-
Oid relnamespace BKI_DEFAULT(
|
|
41
|
+
Oid relnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
|
|
42
42
|
|
|
43
|
-
/* OID of entry in pg_type for
|
|
44
|
-
Oid reltype
|
|
43
|
+
/* OID of entry in pg_type for relation's implicit row type, if any */
|
|
44
|
+
Oid reltype BKI_LOOKUP_OPT(pg_type);
|
|
45
45
|
|
|
46
|
-
/* OID of entry in pg_type for underlying composite type */
|
|
47
|
-
Oid reloftype BKI_DEFAULT(0)
|
|
46
|
+
/* OID of entry in pg_type for underlying composite type, if any */
|
|
47
|
+
Oid reloftype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
|
|
48
48
|
|
|
49
49
|
/* class owner */
|
|
50
|
-
Oid relowner BKI_DEFAULT(
|
|
50
|
+
Oid relowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
|
|
51
51
|
|
|
52
52
|
/* access method; 0 if not a table / index */
|
|
53
|
-
Oid relam BKI_DEFAULT(heap)
|
|
53
|
+
Oid relam BKI_DEFAULT(heap) BKI_LOOKUP_OPT(pg_am);
|
|
54
54
|
|
|
55
55
|
/* identifier of physical storage file */
|
|
56
56
|
/* relfilenode == 0 means it is a "mapped" relation, see relmapper.c */
|
|
57
57
|
Oid relfilenode BKI_DEFAULT(0);
|
|
58
58
|
|
|
59
59
|
/* identifier of table space for relation (0 means default for database) */
|
|
60
|
-
Oid reltablespace BKI_DEFAULT(0)
|
|
60
|
+
Oid reltablespace BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_tablespace);
|
|
61
61
|
|
|
62
62
|
/* # of blocks (not always up-to-date) */
|
|
63
63
|
int32 relpages BKI_DEFAULT(0);
|
|
64
64
|
|
|
65
|
-
/* # of tuples (not always up-to-date) */
|
|
66
|
-
float4 reltuples BKI_DEFAULT(
|
|
65
|
+
/* # of tuples (not always up-to-date; -1 means "unknown") */
|
|
66
|
+
float4 reltuples BKI_DEFAULT(-1);
|
|
67
67
|
|
|
68
68
|
/* # of all-visible blocks (not always up-to-date) */
|
|
69
69
|
int32 relallvisible BKI_DEFAULT(0);
|
|
70
70
|
|
|
71
71
|
/* OID of toast table; 0 if none */
|
|
72
|
-
Oid reltoastrelid BKI_DEFAULT(0);
|
|
72
|
+
Oid reltoastrelid BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_class);
|
|
73
73
|
|
|
74
74
|
/* T if has (or has had) any indexes */
|
|
75
75
|
bool relhasindex BKI_DEFAULT(f);
|
|
@@ -119,8 +119,8 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
|
|
|
119
119
|
/* is relation a partition? */
|
|
120
120
|
bool relispartition BKI_DEFAULT(f);
|
|
121
121
|
|
|
122
|
-
/*
|
|
123
|
-
Oid relrewrite BKI_DEFAULT(0);
|
|
122
|
+
/* link to original rel during table rewrite; otherwise 0 */
|
|
123
|
+
Oid relrewrite BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_class);
|
|
124
124
|
|
|
125
125
|
/* all Xids < this are frozen in this rel */
|
|
126
126
|
TransactionId relfrozenxid BKI_DEFAULT(3); /* FirstNormalTransactionId */
|
|
@@ -152,6 +152,10 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
|
|
|
152
152
|
*/
|
|
153
153
|
typedef FormData_pg_class *Form_pg_class;
|
|
154
154
|
|
|
155
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId, on pg_class using btree(oid oid_ops));
|
|
156
|
+
DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId, on pg_class using btree(relname name_ops, relnamespace oid_ops));
|
|
157
|
+
DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId, on pg_class using btree(reltablespace oid_ops, relfilenode oid_ops));
|
|
158
|
+
|
|
155
159
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
|
156
160
|
|
|
157
161
|
#define RELKIND_RELATION 'r' /* ordinary table */
|
|
@@ -178,7 +182,7 @@ typedef FormData_pg_class *Form_pg_class;
|
|
|
178
182
|
/*
|
|
179
183
|
* an explicitly chosen candidate key's columns are used as replica identity.
|
|
180
184
|
* Note this will still be set if the index has been dropped; in that case it
|
|
181
|
-
* has the same meaning as '
|
|
185
|
+
* has the same meaning as 'n'.
|
|
182
186
|
*/
|
|
183
187
|
#define REPLICA_IDENTITY_INDEX 'i'
|
|
184
188
|
|
|
@@ -194,6 +198,32 @@ typedef FormData_pg_class *Form_pg_class;
|
|
|
194
198
|
(relkind) == RELKIND_TOASTVALUE || \
|
|
195
199
|
(relkind) == RELKIND_MATVIEW)
|
|
196
200
|
|
|
201
|
+
#define RELKIND_HAS_PARTITIONS(relkind) \
|
|
202
|
+
((relkind) == RELKIND_PARTITIONED_TABLE || \
|
|
203
|
+
(relkind) == RELKIND_PARTITIONED_INDEX)
|
|
204
|
+
|
|
205
|
+
/*
|
|
206
|
+
* Relation kinds that support tablespaces: All relation kinds with storage
|
|
207
|
+
* support tablespaces, except that we don't support moving sequences around
|
|
208
|
+
* into different tablespaces. Partitioned tables and indexes don't have
|
|
209
|
+
* physical storage, but they have a tablespace settings so that their
|
|
210
|
+
* children can inherit it.
|
|
211
|
+
*/
|
|
212
|
+
#define RELKIND_HAS_TABLESPACE(relkind) \
|
|
213
|
+
((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \
|
|
214
|
+
&& (relkind) != RELKIND_SEQUENCE)
|
|
215
|
+
|
|
216
|
+
/*
|
|
217
|
+
* Relation kinds with a table access method (rd_tableam). Although sequences
|
|
218
|
+
* use the heap table AM, they are enough of a special case in most uses that
|
|
219
|
+
* they are not included here.
|
|
220
|
+
*/
|
|
221
|
+
#define RELKIND_HAS_TABLE_AM(relkind) \
|
|
222
|
+
((relkind) == RELKIND_RELATION || \
|
|
223
|
+
(relkind) == RELKIND_TOASTVALUE || \
|
|
224
|
+
(relkind) == RELKIND_MATVIEW)
|
|
225
|
+
|
|
226
|
+
extern int errdetail_relkind_not_supported(char relkind);
|
|
197
227
|
|
|
198
228
|
#endif /* EXPOSE_TO_CLIENT_CODE */
|
|
199
229
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pg_class_d.h
|
|
4
4
|
* Macro definitions for pg_class
|
|
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
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
#define RelationRelationId 1259
|
|
22
22
|
#define RelationRelation_Rowtype_Id 83
|
|
23
|
+
#define ClassOidIndexId 2662
|
|
24
|
+
#define ClassNameNspIndexId 2663
|
|
25
|
+
#define ClassTblspcRelfilenodeIndexId 3455
|
|
23
26
|
|
|
24
27
|
#define Anum_pg_class_oid 1
|
|
25
28
|
#define Anum_pg_class_relname 2
|
|
@@ -82,7 +85,7 @@
|
|
|
82
85
|
/*
|
|
83
86
|
* an explicitly chosen candidate key's columns are used as replica identity.
|
|
84
87
|
* Note this will still be set if the index has been dropped; in that case it
|
|
85
|
-
* has the same meaning as '
|
|
88
|
+
* has the same meaning as 'n'.
|
|
86
89
|
*/
|
|
87
90
|
#define REPLICA_IDENTITY_INDEX 'i'
|
|
88
91
|
|
|
@@ -98,6 +101,32 @@
|
|
|
98
101
|
(relkind) == RELKIND_TOASTVALUE || \
|
|
99
102
|
(relkind) == RELKIND_MATVIEW)
|
|
100
103
|
|
|
104
|
+
#define RELKIND_HAS_PARTITIONS(relkind) \
|
|
105
|
+
((relkind) == RELKIND_PARTITIONED_TABLE || \
|
|
106
|
+
(relkind) == RELKIND_PARTITIONED_INDEX)
|
|
107
|
+
|
|
108
|
+
/*
|
|
109
|
+
* Relation kinds that support tablespaces: All relation kinds with storage
|
|
110
|
+
* support tablespaces, except that we don't support moving sequences around
|
|
111
|
+
* into different tablespaces. Partitioned tables and indexes don't have
|
|
112
|
+
* physical storage, but they have a tablespace settings so that their
|
|
113
|
+
* children can inherit it.
|
|
114
|
+
*/
|
|
115
|
+
#define RELKIND_HAS_TABLESPACE(relkind) \
|
|
116
|
+
((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \
|
|
117
|
+
&& (relkind) != RELKIND_SEQUENCE)
|
|
118
|
+
|
|
119
|
+
/*
|
|
120
|
+
* Relation kinds with a table access method (rd_tableam). Although sequences
|
|
121
|
+
* use the heap table AM, they are enough of a special case in most uses that
|
|
122
|
+
* they are not included here.
|
|
123
|
+
*/
|
|
124
|
+
#define RELKIND_HAS_TABLE_AM(relkind) \
|
|
125
|
+
((relkind) == RELKIND_RELATION || \
|
|
126
|
+
(relkind) == RELKIND_TOASTVALUE || \
|
|
127
|
+
(relkind) == RELKIND_MATVIEW)
|
|
128
|
+
|
|
129
|
+
extern int errdetail_relkind_not_supported(char relkind);
|
|
101
130
|
|
|
102
131
|
|
|
103
132
|
#endif /* PG_CLASS_D_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* definition of the "collation" system catalog (pg_collation)
|
|
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_collation.h
|
|
@@ -30,16 +30,22 @@ CATALOG(pg_collation,3456,CollationRelationId)
|
|
|
30
30
|
{
|
|
31
31
|
Oid oid; /* oid */
|
|
32
32
|
NameData collname; /* collation name */
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
|
|
34
|
+
/* OID of namespace containing this collation */
|
|
35
|
+
Oid collnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
|
|
36
|
+
|
|
37
|
+
/* owner of collation */
|
|
38
|
+
Oid collowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
|
|
35
39
|
char collprovider; /* see constants below */
|
|
36
40
|
bool collisdeterministic BKI_DEFAULT(t);
|
|
37
41
|
int32 collencoding; /* encoding for this collation; -1 = "all" */
|
|
38
|
-
NameData collcollate; /* LC_COLLATE setting */
|
|
39
|
-
NameData collctype; /* LC_CTYPE setting */
|
|
40
42
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
41
|
-
text
|
|
42
|
-
|
|
43
|
+
text collcollate BKI_DEFAULT(_null_); /* LC_COLLATE setting */
|
|
44
|
+
text collctype BKI_DEFAULT(_null_); /* LC_CTYPE setting */
|
|
45
|
+
text colliculocale BKI_DEFAULT(_null_); /* ICU locale ID */
|
|
46
|
+
text collversion BKI_DEFAULT(_null_); /* provider-dependent
|
|
47
|
+
* version of collation
|
|
48
|
+
* data */
|
|
43
49
|
#endif
|
|
44
50
|
} FormData_pg_collation;
|
|
45
51
|
|
|
@@ -50,12 +56,31 @@ CATALOG(pg_collation,3456,CollationRelationId)
|
|
|
50
56
|
*/
|
|
51
57
|
typedef FormData_pg_collation *Form_pg_collation;
|
|
52
58
|
|
|
59
|
+
DECLARE_TOAST(pg_collation, 6175, 6176);
|
|
60
|
+
|
|
61
|
+
DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId, on pg_collation using btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
|
|
62
|
+
DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId, on pg_collation using btree(oid oid_ops));
|
|
63
|
+
|
|
53
64
|
#ifdef EXPOSE_TO_CLIENT_CODE
|
|
54
65
|
|
|
55
66
|
#define COLLPROVIDER_DEFAULT 'd'
|
|
56
67
|
#define COLLPROVIDER_ICU 'i'
|
|
57
68
|
#define COLLPROVIDER_LIBC 'c'
|
|
58
69
|
|
|
70
|
+
static inline const char *
|
|
71
|
+
collprovider_name(char c)
|
|
72
|
+
{
|
|
73
|
+
switch (c)
|
|
74
|
+
{
|
|
75
|
+
case COLLPROVIDER_ICU:
|
|
76
|
+
return "icu";
|
|
77
|
+
case COLLPROVIDER_LIBC:
|
|
78
|
+
return "libc";
|
|
79
|
+
default:
|
|
80
|
+
return "???";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
59
84
|
#endif /* EXPOSE_TO_CLIENT_CODE */
|
|
60
85
|
|
|
61
86
|
|
|
@@ -65,9 +90,9 @@ extern Oid CollationCreate(const char *collname, Oid collnamespace,
|
|
|
65
90
|
bool collisdeterministic,
|
|
66
91
|
int32 collencoding,
|
|
67
92
|
const char *collcollate, const char *collctype,
|
|
93
|
+
const char *colliculocale,
|
|
68
94
|
const char *collversion,
|
|
69
95
|
bool if_not_exists,
|
|
70
96
|
bool quiet);
|
|
71
|
-
extern void RemoveCollationById(Oid collationOid);
|
|
72
97
|
|
|
73
98
|
#endif /* PG_COLLATION_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pg_collation_d.h
|
|
4
4
|
* Macro definitions for pg_collation
|
|
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,8 @@
|
|
|
19
19
|
#define PG_COLLATION_D_H
|
|
20
20
|
|
|
21
21
|
#define CollationRelationId 3456
|
|
22
|
+
#define CollationNameEncNspIndexId 3164
|
|
23
|
+
#define CollationOidIndexId 3085
|
|
22
24
|
|
|
23
25
|
#define Anum_pg_collation_oid 1
|
|
24
26
|
#define Anum_pg_collation_collname 2
|
|
@@ -29,15 +31,30 @@
|
|
|
29
31
|
#define Anum_pg_collation_collencoding 7
|
|
30
32
|
#define Anum_pg_collation_collcollate 8
|
|
31
33
|
#define Anum_pg_collation_collctype 9
|
|
32
|
-
#define
|
|
34
|
+
#define Anum_pg_collation_colliculocale 10
|
|
35
|
+
#define Anum_pg_collation_collversion 11
|
|
33
36
|
|
|
34
|
-
#define Natts_pg_collation
|
|
37
|
+
#define Natts_pg_collation 11
|
|
35
38
|
|
|
36
39
|
|
|
37
40
|
#define COLLPROVIDER_DEFAULT 'd'
|
|
38
41
|
#define COLLPROVIDER_ICU 'i'
|
|
39
42
|
#define COLLPROVIDER_LIBC 'c'
|
|
40
43
|
|
|
44
|
+
static inline const char *
|
|
45
|
+
collprovider_name(char c)
|
|
46
|
+
{
|
|
47
|
+
switch (c)
|
|
48
|
+
{
|
|
49
|
+
case COLLPROVIDER_ICU:
|
|
50
|
+
return "icu";
|
|
51
|
+
case COLLPROVIDER_LIBC:
|
|
52
|
+
return "libc";
|
|
53
|
+
default:
|
|
54
|
+
return "???";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
41
58
|
#define DEFAULT_COLLATION_OID 100
|
|
42
59
|
#define C_COLLATION_OID 950
|
|
43
60
|
#define POSIX_COLLATION_OID 951
|