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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* See src/backend/utils/misc/README for design notes.
|
|
7
7
|
*
|
|
8
|
-
* Portions Copyright (c) 1996-
|
|
8
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/guc_tables.h
|
|
11
11
|
*
|
|
@@ -48,55 +48,48 @@ typedef struct config_var_value
|
|
|
48
48
|
} config_var_value;
|
|
49
49
|
|
|
50
50
|
/*
|
|
51
|
-
* Groupings to help organize all the run-time options for display
|
|
51
|
+
* Groupings to help organize all the run-time options for display.
|
|
52
|
+
* Be sure this agrees with the way the options are categorized in config.sgml!
|
|
52
53
|
*/
|
|
53
54
|
enum config_group
|
|
54
55
|
{
|
|
55
|
-
UNGROUPED,
|
|
56
|
+
UNGROUPED, /* use for options not shown in pg_settings */
|
|
56
57
|
FILE_LOCATIONS,
|
|
57
|
-
CONN_AUTH,
|
|
58
58
|
CONN_AUTH_SETTINGS,
|
|
59
59
|
CONN_AUTH_AUTH,
|
|
60
60
|
CONN_AUTH_SSL,
|
|
61
|
-
RESOURCES,
|
|
62
61
|
RESOURCES_MEM,
|
|
63
62
|
RESOURCES_DISK,
|
|
64
63
|
RESOURCES_KERNEL,
|
|
65
64
|
RESOURCES_VACUUM_DELAY,
|
|
66
65
|
RESOURCES_BGWRITER,
|
|
67
66
|
RESOURCES_ASYNCHRONOUS,
|
|
68
|
-
WAL,
|
|
69
67
|
WAL_SETTINGS,
|
|
70
68
|
WAL_CHECKPOINTS,
|
|
71
69
|
WAL_ARCHIVING,
|
|
70
|
+
WAL_RECOVERY,
|
|
72
71
|
WAL_ARCHIVE_RECOVERY,
|
|
73
72
|
WAL_RECOVERY_TARGET,
|
|
74
|
-
REPLICATION,
|
|
75
73
|
REPLICATION_SENDING,
|
|
76
|
-
|
|
74
|
+
REPLICATION_PRIMARY,
|
|
77
75
|
REPLICATION_STANDBY,
|
|
78
76
|
REPLICATION_SUBSCRIBERS,
|
|
79
|
-
QUERY_TUNING,
|
|
80
77
|
QUERY_TUNING_METHOD,
|
|
81
78
|
QUERY_TUNING_COST,
|
|
82
79
|
QUERY_TUNING_GEQO,
|
|
83
80
|
QUERY_TUNING_OTHER,
|
|
84
|
-
LOGGING,
|
|
85
81
|
LOGGING_WHERE,
|
|
86
82
|
LOGGING_WHEN,
|
|
87
83
|
LOGGING_WHAT,
|
|
88
84
|
PROCESS_TITLE,
|
|
89
|
-
STATS,
|
|
90
85
|
STATS_MONITORING,
|
|
91
|
-
|
|
86
|
+
STATS_CUMULATIVE,
|
|
92
87
|
AUTOVACUUM,
|
|
93
|
-
CLIENT_CONN,
|
|
94
88
|
CLIENT_CONN_STATEMENT,
|
|
95
89
|
CLIENT_CONN_LOCALE,
|
|
96
90
|
CLIENT_CONN_PRELOAD,
|
|
97
91
|
CLIENT_CONN_OTHER,
|
|
98
92
|
LOCK_MANAGEMENT,
|
|
99
|
-
COMPAT_OPTIONS,
|
|
100
93
|
COMPAT_OPTIONS_PREVIOUS,
|
|
101
94
|
COMPAT_OPTIONS_CLIENT,
|
|
102
95
|
ERROR_HANDLING_OPTIONS,
|
|
@@ -127,6 +120,8 @@ typedef struct guc_stack
|
|
|
127
120
|
/* masked value's source must be PGC_S_SESSION, so no need to store it */
|
|
128
121
|
GucContext scontext; /* context that set the prior value */
|
|
129
122
|
GucContext masked_scontext; /* context that set the masked value */
|
|
123
|
+
Oid srole; /* role that set the prior value */
|
|
124
|
+
Oid masked_srole; /* role that set the masked value */
|
|
130
125
|
config_var_value prior; /* previous value of variable */
|
|
131
126
|
config_var_value masked; /* SET value in a GUC_SET_LOCAL entry */
|
|
132
127
|
} GucStack;
|
|
@@ -138,6 +133,10 @@ typedef struct guc_stack
|
|
|
138
133
|
* applications may use the long description as well, and will append
|
|
139
134
|
* it to the short description. (separated by a newline or '. ')
|
|
140
135
|
*
|
|
136
|
+
* srole is the role that set the current value, or BOOTSTRAP_SUPERUSERID
|
|
137
|
+
* if the value came from an internal source or the config file. Similarly
|
|
138
|
+
* for reset_srole (which is usually BOOTSTRAP_SUPERUSERID, but not always).
|
|
139
|
+
*
|
|
141
140
|
* Note that sourcefile/sourceline are kept here, and not pushed into stacked
|
|
142
141
|
* values, although in principle they belong with some stacked value if the
|
|
143
142
|
* active value is session- or transaction-local. This is to avoid bloating
|
|
@@ -159,8 +158,12 @@ struct config_generic
|
|
|
159
158
|
GucSource reset_source; /* source of the reset_value */
|
|
160
159
|
GucContext scontext; /* context that set the current value */
|
|
161
160
|
GucContext reset_scontext; /* context that set the reset value */
|
|
161
|
+
Oid srole; /* role that set the current value */
|
|
162
|
+
Oid reset_srole; /* role that set the reset value */
|
|
162
163
|
GucStack *stack; /* stacked prior values */
|
|
163
164
|
void *extra; /* "extra" pointer for current actual value */
|
|
165
|
+
char *last_reported; /* if variable is GUC_REPORT, value last sent
|
|
166
|
+
* to client (NULL if not yet sent) */
|
|
164
167
|
char *sourcefile; /* file current setting is from (NULL if not
|
|
165
168
|
* set in config file) */
|
|
166
169
|
int sourceline; /* line in source file */
|
|
@@ -172,7 +175,8 @@ struct config_generic
|
|
|
172
175
|
* Caution: the GUC_IS_IN_FILE bit is transient state for ProcessConfigFile.
|
|
173
176
|
* Do not assume that its value represents useful information elsewhere.
|
|
174
177
|
*/
|
|
175
|
-
#define GUC_PENDING_RESTART 0x0002
|
|
178
|
+
#define GUC_PENDING_RESTART 0x0002 /* changed value cannot be applied yet */
|
|
179
|
+
#define GUC_NEEDS_REPORT 0x0004 /* new value must be reported to client */
|
|
176
180
|
|
|
177
181
|
|
|
178
182
|
/* GUC records for specific variable types */
|
|
@@ -253,10 +257,10 @@ struct config_enum
|
|
|
253
257
|
};
|
|
254
258
|
|
|
255
259
|
/* constant tables corresponding to enums above and in guc.h */
|
|
256
|
-
extern const char *const config_group_names[];
|
|
257
|
-
extern const char *const config_type_names[];
|
|
258
|
-
extern const char *const GucContext_Names[];
|
|
259
|
-
extern const char *const GucSource_Names[];
|
|
260
|
+
extern PGDLLIMPORT const char *const config_group_names[];
|
|
261
|
+
extern PGDLLIMPORT const char *const config_type_names[];
|
|
262
|
+
extern PGDLLIMPORT const char *const GucContext_Names[];
|
|
263
|
+
extern PGDLLIMPORT const char *const GucSource_Names[];
|
|
260
264
|
|
|
261
265
|
/* get the current set of variables */
|
|
262
266
|
extern struct config_generic **get_guc_variables(void);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* exported definitions for utils/hash/dynahash.c; see notes therein
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/hsearch.h
|
|
@@ -64,27 +64,36 @@ typedef struct HTAB HTAB;
|
|
|
64
64
|
/* Only those fields indicated by hash_flags need be set */
|
|
65
65
|
typedef struct HASHCTL
|
|
66
66
|
{
|
|
67
|
+
/* Used if HASH_PARTITION flag is set: */
|
|
67
68
|
long num_partitions; /* # partitions (must be power of 2) */
|
|
69
|
+
/* Used if HASH_SEGMENT flag is set: */
|
|
68
70
|
long ssize; /* segment size */
|
|
71
|
+
/* Used if HASH_DIRSIZE flag is set: */
|
|
69
72
|
long dsize; /* (initial) directory size */
|
|
70
73
|
long max_dsize; /* limit to dsize if dir size is limited */
|
|
71
|
-
|
|
74
|
+
/* Used if HASH_ELEM flag is set (which is now required): */
|
|
72
75
|
Size keysize; /* hash key length in bytes */
|
|
73
76
|
Size entrysize; /* total user element size in bytes */
|
|
77
|
+
/* Used if HASH_FUNCTION flag is set: */
|
|
74
78
|
HashValueFunc hash; /* hash function */
|
|
79
|
+
/* Used if HASH_COMPARE flag is set: */
|
|
75
80
|
HashCompareFunc match; /* key comparison function */
|
|
81
|
+
/* Used if HASH_KEYCOPY flag is set: */
|
|
76
82
|
HashCopyFunc keycopy; /* key copying function */
|
|
83
|
+
/* Used if HASH_ALLOC flag is set: */
|
|
77
84
|
HashAllocFunc alloc; /* memory allocator */
|
|
85
|
+
/* Used if HASH_CONTEXT flag is set: */
|
|
78
86
|
MemoryContext hcxt; /* memory context to use for allocations */
|
|
87
|
+
/* Used if HASH_SHARED_MEM flag is set: */
|
|
79
88
|
HASHHDR *hctl; /* location of header in shared mem */
|
|
80
89
|
} HASHCTL;
|
|
81
90
|
|
|
82
|
-
/*
|
|
91
|
+
/* Flag bits for hash_create; most indicate which parameters are supplied */
|
|
83
92
|
#define HASH_PARTITION 0x0001 /* Hashtable is used w/partitioned locking */
|
|
84
93
|
#define HASH_SEGMENT 0x0002 /* Set segment size */
|
|
85
94
|
#define HASH_DIRSIZE 0x0004 /* Set directory size (initial and max) */
|
|
86
|
-
#define
|
|
87
|
-
#define
|
|
95
|
+
#define HASH_ELEM 0x0008 /* Set keysize and entrysize (now required!) */
|
|
96
|
+
#define HASH_STRINGS 0x0010 /* Select support functions for string keys */
|
|
88
97
|
#define HASH_BLOBS 0x0020 /* Select support functions for binary keys */
|
|
89
98
|
#define HASH_FUNCTION 0x0040 /* Set user defined hash function */
|
|
90
99
|
#define HASH_COMPARE 0x0080 /* Set user defined comparison function */
|
|
@@ -95,7 +104,6 @@ typedef struct HASHCTL
|
|
|
95
104
|
#define HASH_ATTACH 0x1000 /* Do not initialize hctl */
|
|
96
105
|
#define HASH_FIXED_SIZE 0x2000 /* Initial size is a hard limit */
|
|
97
106
|
|
|
98
|
-
|
|
99
107
|
/* max_dsize value to indicate expansible directory */
|
|
100
108
|
#define NO_MAX_DSIZE (-1)
|
|
101
109
|
|
|
@@ -118,13 +126,9 @@ typedef struct
|
|
|
118
126
|
|
|
119
127
|
/*
|
|
120
128
|
* prototypes for functions in dynahash.c
|
|
121
|
-
*
|
|
122
|
-
* Note: It is deprecated for callers of hash_create to explicitly specify
|
|
123
|
-
* string_hash, tag_hash, uint32_hash, or oid_hash. Just set HASH_BLOBS or
|
|
124
|
-
* not. Use HASH_FUNCTION only when you want something other than those.
|
|
125
129
|
*/
|
|
126
130
|
extern HTAB *hash_create(const char *tabname, long nelem,
|
|
127
|
-
HASHCTL *info, int flags);
|
|
131
|
+
const HASHCTL *info, int flags);
|
|
128
132
|
extern void hash_destroy(HTAB *hashp);
|
|
129
133
|
extern void hash_stats(const char *where, HTAB *hashp);
|
|
130
134
|
extern void *hash_search(HTAB *hashp, const void *keyPtr, HASHACTION action,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* POSTGRES cache invalidation dispatcher definitions.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/inval.h
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#include "storage/relfilenode.h"
|
|
19
19
|
#include "utils/relcache.h"
|
|
20
20
|
|
|
21
|
+
extern PGDLLIMPORT int debug_discard_caches;
|
|
21
22
|
|
|
22
23
|
typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
|
|
23
24
|
typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
|
|
@@ -61,4 +62,7 @@ extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
|
|
|
61
62
|
extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
|
|
62
63
|
|
|
63
64
|
extern void InvalidateSystemCaches(void);
|
|
65
|
+
extern void InvalidateSystemCachesExtended(bool debug_discard);
|
|
66
|
+
|
|
67
|
+
extern void LogLogicalInvalidations(void);
|
|
64
68
|
#endif /* INVAL_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* lsyscache.h
|
|
4
4
|
* Convenience routines for common queries in the system catalog cache.
|
|
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/utils/lsyscache.h
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
#include "access/htup.h"
|
|
18
18
|
#include "nodes/pg_list.h"
|
|
19
19
|
|
|
20
|
+
/* avoid including subscripting.h here */
|
|
21
|
+
struct SubscriptRoutines;
|
|
22
|
+
|
|
20
23
|
/* Result list element for get_op_btree_interpretation */
|
|
21
24
|
typedef struct OpBtreeInterpretation
|
|
22
25
|
{
|
|
@@ -97,6 +100,7 @@ extern Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok);
|
|
|
97
100
|
extern char *get_collation_name(Oid colloid);
|
|
98
101
|
extern bool get_collation_isdeterministic(Oid colloid);
|
|
99
102
|
extern char *get_constraint_name(Oid conoid);
|
|
103
|
+
extern Oid get_constraint_index(Oid conoid);
|
|
100
104
|
extern char *get_language_name(Oid langoid, bool missing_ok);
|
|
101
105
|
extern Oid get_opclass_family(Oid opclass);
|
|
102
106
|
extern Oid get_opclass_input_type(Oid opclass);
|
|
@@ -158,6 +162,7 @@ extern char get_typtype(Oid typid);
|
|
|
158
162
|
extern bool type_is_rowtype(Oid typid);
|
|
159
163
|
extern bool type_is_enum(Oid typid);
|
|
160
164
|
extern bool type_is_range(Oid typid);
|
|
165
|
+
extern bool type_is_multirange(Oid typid);
|
|
161
166
|
extern void get_type_category_preferred(Oid typid,
|
|
162
167
|
char *typcategory,
|
|
163
168
|
bool *typispreferred);
|
|
@@ -173,6 +178,9 @@ extern void getTypeBinaryOutputInfo(Oid type, Oid *typSend, bool *typIsVarlena);
|
|
|
173
178
|
extern Oid get_typmodin(Oid typid);
|
|
174
179
|
extern Oid get_typcollation(Oid typid);
|
|
175
180
|
extern bool type_is_collatable(Oid typid);
|
|
181
|
+
extern RegProcedure get_typsubscript(Oid typid, Oid *typelemp);
|
|
182
|
+
extern const struct SubscriptRoutines *getSubscriptingRoutines(Oid typid,
|
|
183
|
+
Oid *typelemp);
|
|
176
184
|
extern Oid getBaseType(Oid typid);
|
|
177
185
|
extern Oid getBaseTypeAndTypmod(Oid typid, int32 *typmod);
|
|
178
186
|
extern int32 get_typavgwidth(Oid typid, int32 typmod);
|
|
@@ -184,6 +192,8 @@ extern char *get_namespace_name(Oid nspid);
|
|
|
184
192
|
extern char *get_namespace_name_or_temp(Oid nspid);
|
|
185
193
|
extern Oid get_range_subtype(Oid rangeOid);
|
|
186
194
|
extern Oid get_range_collation(Oid rangeOid);
|
|
195
|
+
extern Oid get_range_multirange(Oid rangeOid);
|
|
196
|
+
extern Oid get_multirange_range(Oid multirangeOid);
|
|
187
197
|
extern Oid get_index_column_opclass(Oid index_oid, int attno);
|
|
188
198
|
extern bool get_index_isreplident(Oid index_oid);
|
|
189
199
|
extern bool get_index_isvalid(Oid index_oid);
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* empty definitions for Valgrind client request macros we use.
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/include/utils/memdebug.h
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* of the API of the memory management subsystem.
|
|
8
8
|
*
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* src/include/utils/memutils.h
|
|
@@ -84,7 +84,8 @@ extern MemoryContext MemoryContextGetParent(MemoryContext context);
|
|
|
84
84
|
extern bool MemoryContextIsEmpty(MemoryContext context);
|
|
85
85
|
extern Size MemoryContextMemAllocated(MemoryContext context, bool recurse);
|
|
86
86
|
extern void MemoryContextStats(MemoryContext context);
|
|
87
|
-
extern void MemoryContextStatsDetail(MemoryContext context, int max_children
|
|
87
|
+
extern void MemoryContextStatsDetail(MemoryContext context, int max_children,
|
|
88
|
+
bool print_to_stderr);
|
|
88
89
|
extern void MemoryContextAllowInCriticalSection(MemoryContext context,
|
|
89
90
|
bool allow);
|
|
90
91
|
|
|
@@ -144,6 +145,8 @@ extern void MemoryContextCreate(MemoryContext node,
|
|
|
144
145
|
MemoryContext parent,
|
|
145
146
|
const char *name);
|
|
146
147
|
|
|
148
|
+
extern void HandleLogMemoryContextInterrupt(void);
|
|
149
|
+
extern void ProcessLogMemoryContextInterrupt(void);
|
|
147
150
|
|
|
148
151
|
/*
|
|
149
152
|
* Memory-context-type-specific functions
|
|
@@ -181,7 +184,9 @@ extern MemoryContext SlabContextCreate(MemoryContext parent,
|
|
|
181
184
|
/* generation.c */
|
|
182
185
|
extern MemoryContext GenerationContextCreate(MemoryContext parent,
|
|
183
186
|
const char *name,
|
|
184
|
-
Size
|
|
187
|
+
Size minContextSize,
|
|
188
|
+
Size initBlockSize,
|
|
189
|
+
Size maxBlockSize);
|
|
185
190
|
|
|
186
191
|
/*
|
|
187
192
|
* Recommended default alloc parameters, suitable for "ordinary" contexts
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Original coding 1998, Jan Wieck. Heavily revised 2003, Tom Lane.
|
|
7
7
|
*
|
|
8
|
-
* Copyright (c) 1998-
|
|
8
|
+
* Copyright (c) 1998-2022, PostgreSQL Global Development Group
|
|
9
9
|
*
|
|
10
10
|
* src/include/utils/numeric.h
|
|
11
11
|
*
|
|
@@ -17,12 +17,22 @@
|
|
|
17
17
|
#include "fmgr.h"
|
|
18
18
|
|
|
19
19
|
/*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* Limits on the precision and scale specifiable in a NUMERIC typmod. The
|
|
21
|
+
* precision is strictly positive, but the scale may be positive or negative.
|
|
22
|
+
* A negative scale implies rounding before the decimal point.
|
|
23
|
+
*
|
|
24
|
+
* Note that the minimum display scale defined below is zero --- we always
|
|
25
|
+
* display all digits before the decimal point, even when the scale is
|
|
26
|
+
* negative.
|
|
27
|
+
*
|
|
28
|
+
* Note that the implementation limits on the precision and display scale of a
|
|
29
|
+
* numeric value are much larger --- beware of what you use these for!
|
|
23
30
|
*/
|
|
24
31
|
#define NUMERIC_MAX_PRECISION 1000
|
|
25
32
|
|
|
33
|
+
#define NUMERIC_MIN_SCALE (-1000)
|
|
34
|
+
#define NUMERIC_MAX_SCALE 1000
|
|
35
|
+
|
|
26
36
|
/*
|
|
27
37
|
* Internal limits on the scales chosen for calculation results
|
|
28
38
|
*/
|
|
@@ -57,10 +67,14 @@ typedef struct NumericData *Numeric;
|
|
|
57
67
|
* Utility functions in numeric.c
|
|
58
68
|
*/
|
|
59
69
|
extern bool numeric_is_nan(Numeric num);
|
|
60
|
-
|
|
70
|
+
extern bool numeric_is_inf(Numeric num);
|
|
71
|
+
extern int32 numeric_maximum_size(int32 typmod);
|
|
61
72
|
extern char *numeric_out_sci(Numeric num, int scale);
|
|
62
73
|
extern char *numeric_normalize(Numeric num);
|
|
63
74
|
|
|
75
|
+
extern Numeric int64_to_numeric(int64 val);
|
|
76
|
+
extern Numeric int64_div_fast_to_numeric(int64 val1, int log10val2);
|
|
77
|
+
|
|
64
78
|
extern Numeric numeric_add_opt_error(Numeric num1, Numeric num2,
|
|
65
79
|
bool *have_error);
|
|
66
80
|
extern Numeric numeric_sub_opt_error(Numeric num1, Numeric num2,
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* everything that should be freed. See utils/mmgr/README for more info.
|
|
19
19
|
*
|
|
20
20
|
*
|
|
21
|
-
* Portions Copyright (c) 1996-
|
|
21
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
22
22
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
23
23
|
*
|
|
24
24
|
* src/include/utils/palloc.h
|
|
@@ -77,9 +77,31 @@ extern void *MemoryContextAllocExtended(MemoryContext context,
|
|
|
77
77
|
extern void *palloc(Size size);
|
|
78
78
|
extern void *palloc0(Size size);
|
|
79
79
|
extern void *palloc_extended(Size size, int flags);
|
|
80
|
-
extern void *repalloc(void *pointer, Size size);
|
|
80
|
+
extern pg_nodiscard void *repalloc(void *pointer, Size size);
|
|
81
81
|
extern void pfree(void *pointer);
|
|
82
82
|
|
|
83
|
+
/*
|
|
84
|
+
* Variants with easier notation and more type safety
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Allocate space for one object of type "type"
|
|
89
|
+
*/
|
|
90
|
+
#define palloc_object(type) ((type *) palloc(sizeof(type)))
|
|
91
|
+
#define palloc0_object(type) ((type *) palloc0(sizeof(type)))
|
|
92
|
+
|
|
93
|
+
/*
|
|
94
|
+
* Allocate space for "count" objects of type "type"
|
|
95
|
+
*/
|
|
96
|
+
#define palloc_array(type, count) ((type *) palloc(sizeof(type) * (count)))
|
|
97
|
+
#define palloc0_array(type, count) ((type *) palloc0(sizeof(type) * (count)))
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
* Change size of allocation pointed to by "pointer" to have space for "count"
|
|
101
|
+
* objects of type "type"
|
|
102
|
+
*/
|
|
103
|
+
#define repalloc_array(pointer, type, count) ((type *) repalloc(pointer, sizeof(type) * (count)))
|
|
104
|
+
|
|
83
105
|
/*
|
|
84
106
|
* The result of palloc() is always word-aligned, so we can skip testing
|
|
85
107
|
* alignment of the pointer when deciding which MemSet variant to use.
|
|
@@ -95,7 +117,7 @@ extern void pfree(void *pointer);
|
|
|
95
117
|
|
|
96
118
|
/* Higher-limit allocators. */
|
|
97
119
|
extern void *MemoryContextAllocHuge(MemoryContext context, Size size);
|
|
98
|
-
extern void *repalloc_huge(void *pointer, Size size);
|
|
120
|
+
extern pg_nodiscard void *repalloc_huge(void *pointer, Size size);
|
|
99
121
|
|
|
100
122
|
/*
|
|
101
123
|
* Although this header file is nominally backend-only, certain frontend
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* src/include/utils/pg_locale.h
|
|
6
6
|
*
|
|
7
|
-
* Copyright (c) 2002-
|
|
7
|
+
* Copyright (c) 2002-2022, PostgreSQL Global Development Group
|
|
8
8
|
*
|
|
9
9
|
*-----------------------------------------------------------------------
|
|
10
10
|
*/
|
|
@@ -34,18 +34,20 @@
|
|
|
34
34
|
#endif
|
|
35
35
|
#endif
|
|
36
36
|
|
|
37
|
+
/* use for libc locale names */
|
|
38
|
+
#define LOCALE_NAME_BUFLEN 128
|
|
37
39
|
|
|
38
40
|
/* GUC settings */
|
|
39
|
-
extern char *locale_messages;
|
|
40
|
-
extern char *locale_monetary;
|
|
41
|
-
extern char *locale_numeric;
|
|
42
|
-
extern char *locale_time;
|
|
41
|
+
extern PGDLLIMPORT char *locale_messages;
|
|
42
|
+
extern PGDLLIMPORT char *locale_monetary;
|
|
43
|
+
extern PGDLLIMPORT char *locale_numeric;
|
|
44
|
+
extern PGDLLIMPORT char *locale_time;
|
|
43
45
|
|
|
44
46
|
/* lc_time localization cache */
|
|
45
|
-
extern char *localized_abbrev_days[];
|
|
46
|
-
extern char *localized_full_days[];
|
|
47
|
-
extern char *localized_abbrev_months[];
|
|
48
|
-
extern char *localized_full_months[];
|
|
47
|
+
extern PGDLLIMPORT char *localized_abbrev_days[];
|
|
48
|
+
extern PGDLLIMPORT char *localized_full_days[];
|
|
49
|
+
extern PGDLLIMPORT char *localized_abbrev_months[];
|
|
50
|
+
extern PGDLLIMPORT char *localized_full_months[];
|
|
49
51
|
|
|
50
52
|
|
|
51
53
|
extern bool check_locale_messages(char **newval, void **extra, GucSource source);
|
|
@@ -101,6 +103,11 @@ struct pg_locale_struct
|
|
|
101
103
|
|
|
102
104
|
typedef struct pg_locale_struct *pg_locale_t;
|
|
103
105
|
|
|
106
|
+
extern PGDLLIMPORT struct pg_locale_struct default_locale;
|
|
107
|
+
|
|
108
|
+
extern void make_icu_collator(const char *iculocstr,
|
|
109
|
+
struct pg_locale_struct *resultp);
|
|
110
|
+
|
|
104
111
|
extern pg_locale_t pg_newlocale_from_collation(Oid collid);
|
|
105
112
|
|
|
106
113
|
extern char *get_collation_actual_version(char collprovider, const char *collcollate);
|
|
@@ -109,6 +116,7 @@ extern char *get_collation_actual_version(char collprovider, const char *collcol
|
|
|
109
116
|
extern int32_t icu_to_uchar(UChar **buff_uchar, const char *buff, size_t nbytes);
|
|
110
117
|
extern int32_t icu_from_uchar(char **result, const UChar *buff_uchar, int32_t len_uchar);
|
|
111
118
|
#endif
|
|
119
|
+
extern void check_icu_locale(const char *icu_locale);
|
|
112
120
|
|
|
113
121
|
/* These functions convert from/to libc's wchar_t, *not* pg_wchar_t */
|
|
114
122
|
extern size_t wchar2char(char *to, const wchar_t *from, size_t tolen,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* PostgreSQL.
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
|
-
* Portions Copyright (c) 1996-
|
|
8
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
9
9
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
10
10
|
*
|
|
11
11
|
* src/include/utils/pg_lsn.h
|