pg_query 2.2.1 → 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 +21 -1
- data/README.md +29 -33
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/amapi.h +45 -1
- data/ext/pg_query/include/access/attmap.h +1 -1
- data/ext/pg_query/include/access/attnum.h +2 -2
- data/ext/pg_query/include/access/clog.h +4 -2
- data/ext/pg_query/include/access/commit_ts.h +6 -9
- data/ext/pg_query/include/access/detoast.h +1 -11
- data/ext/pg_query/include/access/genam.h +15 -12
- data/ext/pg_query/include/access/gin.h +2 -2
- data/ext/pg_query/include/access/htup.h +1 -1
- data/ext/pg_query/include/access/htup_details.h +75 -87
- data/ext/pg_query/include/access/itup.h +7 -1
- data/ext/pg_query/include/access/parallel.h +2 -2
- data/ext/pg_query/include/access/printtup.h +1 -1
- data/ext/pg_query/include/access/relation.h +1 -1
- data/ext/pg_query/include/access/relscan.h +17 -2
- data/ext/pg_query/include/access/rmgr.h +30 -3
- data/ext/pg_query/include/access/rmgrlist.h +23 -23
- data/ext/pg_query/include/access/sdir.h +1 -1
- data/ext/pg_query/include/access/skey.h +1 -1
- data/ext/pg_query/include/access/stratnum.h +4 -2
- data/ext/pg_query/include/access/sysattr.h +1 -1
- data/ext/pg_query/include/access/table.h +2 -1
- data/ext/pg_query/include/access/tableam.h +272 -20
- data/ext/pg_query/include/access/toast_compression.h +73 -0
- data/ext/pg_query/include/access/transam.h +123 -13
- data/ext/pg_query/include/access/tupconvert.h +1 -1
- data/ext/pg_query/include/access/tupdesc.h +1 -1
- data/ext/pg_query/include/access/tupmacs.h +3 -3
- data/ext/pg_query/include/access/twophase.h +3 -1
- data/ext/pg_query/include/access/xact.h +73 -19
- data/ext/pg_query/include/access/xlog.h +60 -155
- data/ext/pg_query/include/access/xlog_internal.h +40 -13
- data/ext/pg_query/include/access/xlogdefs.h +8 -16
- data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/access/xlogreader.h +145 -39
- data/ext/pg_query/include/access/xlogrecord.h +18 -9
- data/ext/pg_query/include/access/xlogrecovery.h +157 -0
- data/ext/pg_query/include/c.h +101 -44
- data/ext/pg_query/include/catalog/catalog.h +3 -1
- data/ext/pg_query/include/catalog/catversion.h +2 -2
- data/ext/pg_query/include/catalog/dependency.h +8 -16
- data/ext/pg_query/include/catalog/genbki.h +83 -5
- data/ext/pg_query/include/catalog/index.h +18 -3
- data/ext/pg_query/include/catalog/indexing.h +12 -324
- data/ext/pg_query/include/catalog/namespace.h +4 -2
- data/ext/pg_query/include/catalog/objectaccess.h +70 -2
- data/ext/pg_query/include/catalog/objectaddress.h +11 -6
- data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_am.h +4 -1
- data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
- data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
- data/ext/pg_query/include/catalog/pg_authid.h +7 -2
- data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
- data/ext/pg_query/include/catalog/pg_class.h +44 -14
- data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
- data/ext/pg_query/include/catalog/pg_collation.h +33 -8
- data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
- data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
- data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/catalog/pg_control.h +3 -5
- data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
- data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_depend.h +11 -7
- data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_index.h +17 -7
- data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
- data/ext/pg_query/include/catalog/pg_language.h +10 -5
- data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
- data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
- data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_operator.h +18 -15
- data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
- data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_proc.h +20 -11
- data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
- data/ext/pg_query/include/catalog/pg_publication.h +50 -7
- data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
- data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/catalog/pg_transform.h +8 -5
- data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
- data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/catalog/pg_type.h +55 -24
- data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
- data/ext/pg_query/include/catalog/storage.h +5 -3
- data/ext/pg_query/include/commands/async.h +3 -4
- data/ext/pg_query/include/commands/dbcommands.h +2 -1
- data/ext/pg_query/include/commands/defrem.h +11 -24
- data/ext/pg_query/include/commands/event_trigger.h +2 -2
- data/ext/pg_query/include/commands/explain.h +1 -1
- data/ext/pg_query/include/commands/prepare.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -2
- data/ext/pg_query/include/commands/trigger.h +18 -16
- data/ext/pg_query/include/commands/user.h +2 -2
- data/ext/pg_query/include/commands/vacuum.h +88 -41
- data/ext/pg_query/include/commands/variable.h +1 -1
- data/ext/pg_query/include/common/file_perm.h +4 -4
- data/ext/pg_query/include/common/hashfn.h +1 -1
- data/ext/pg_query/include/common/ip.h +1 -7
- data/ext/pg_query/include/common/keywords.h +2 -6
- data/ext/pg_query/include/common/kwlookup.h +1 -1
- data/ext/pg_query/include/common/pg_prng.h +60 -0
- data/ext/pg_query/include/common/relpath.h +2 -2
- data/ext/pg_query/include/common/string.h +24 -1
- data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
- data/ext/pg_query/include/datatype/timestamp.h +40 -1
- data/ext/pg_query/include/executor/execdesc.h +1 -1
- data/ext/pg_query/include/executor/executor.h +65 -22
- data/ext/pg_query/include/executor/functions.h +17 -3
- data/ext/pg_query/include/executor/instrument.h +33 -16
- data/ext/pg_query/include/executor/spi.h +41 -3
- data/ext/pg_query/include/executor/tablefunc.h +1 -1
- data/ext/pg_query/include/executor/tuptable.h +1 -1
- data/ext/pg_query/include/fmgr.h +13 -7
- data/ext/pg_query/include/funcapi.h +16 -4
- data/ext/pg_query/include/getaddrinfo.h +1 -1
- data/ext/pg_query/include/jit/jit.h +11 -11
- data/ext/pg_query/include/kwlist_d.h +517 -494
- data/ext/pg_query/include/lib/dshash.h +112 -0
- data/ext/pg_query/include/lib/ilist.h +20 -1
- data/ext/pg_query/include/lib/pairingheap.h +1 -1
- data/ext/pg_query/include/lib/simplehash.h +140 -15
- data/ext/pg_query/include/lib/sort_template.h +432 -0
- data/ext/pg_query/include/lib/stringinfo.h +1 -1
- data/ext/pg_query/include/libpq/auth.h +6 -4
- data/ext/pg_query/include/libpq/crypt.h +5 -4
- data/ext/pg_query/include/libpq/hba.h +43 -4
- data/ext/pg_query/include/libpq/libpq-be.h +23 -6
- data/ext/pg_query/include/libpq/libpq.h +30 -20
- data/ext/pg_query/include/libpq/pqcomm.h +17 -31
- data/ext/pg_query/include/libpq/pqformat.h +1 -1
- data/ext/pg_query/include/libpq/pqsignal.h +4 -4
- data/ext/pg_query/include/mb/pg_wchar.h +105 -23
- data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/miscadmin.h +47 -41
- data/ext/pg_query/include/nodes/bitmapset.h +1 -1
- data/ext/pg_query/include/nodes/execnodes.h +270 -78
- data/ext/pg_query/include/nodes/extensible.h +4 -2
- data/ext/pg_query/include/nodes/lockoptions.h +1 -1
- data/ext/pg_query/include/nodes/makefuncs.h +7 -6
- data/ext/pg_query/include/nodes/memnodes.h +5 -3
- data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
- data/ext/pg_query/include/nodes/nodes.h +30 -11
- data/ext/pg_query/include/nodes/params.h +1 -1
- data/ext/pg_query/include/nodes/parsenodes.h +322 -90
- data/ext/pg_query/include/nodes/pathnodes.h +243 -66
- data/ext/pg_query/include/nodes/pg_list.h +75 -69
- data/ext/pg_query/include/nodes/plannodes.h +111 -28
- data/ext/pg_query/include/nodes/primnodes.h +99 -47
- data/ext/pg_query/include/nodes/print.h +1 -1
- data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
- data/ext/pg_query/include/nodes/value.h +58 -39
- data/ext/pg_query/include/optimizer/cost.h +9 -2
- data/ext/pg_query/include/optimizer/geqo.h +9 -7
- data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
- data/ext/pg_query/include/optimizer/optimizer.h +25 -17
- data/ext/pg_query/include/optimizer/paths.h +6 -6
- data/ext/pg_query/include/optimizer/planmain.h +15 -14
- data/ext/pg_query/include/parser/analyze.h +19 -5
- data/ext/pg_query/include/parser/gram.h +947 -913
- data/ext/pg_query/include/parser/gramparse.h +1 -1
- data/ext/pg_query/include/parser/kwlist.h +463 -453
- data/ext/pg_query/include/parser/parse_agg.h +2 -7
- data/ext/pg_query/include/parser/parse_coerce.h +3 -1
- data/ext/pg_query/include/parser/parse_expr.h +2 -3
- data/ext/pg_query/include/parser/parse_func.h +2 -1
- data/ext/pg_query/include/parser/parse_node.h +21 -9
- data/ext/pg_query/include/parser/parse_oper.h +1 -3
- data/ext/pg_query/include/parser/parse_relation.h +5 -4
- data/ext/pg_query/include/parser/parse_type.h +1 -1
- data/ext/pg_query/include/parser/parser.h +31 -4
- data/ext/pg_query/include/parser/parsetree.h +1 -1
- data/ext/pg_query/include/parser/scanner.h +1 -1
- data/ext/pg_query/include/parser/scansup.h +2 -5
- data/ext/pg_query/include/partitioning/partdefs.h +1 -1
- data/ext/pg_query/include/pg_config.h +83 -41
- data/ext/pg_query/include/pg_config_manual.h +74 -21
- data/ext/pg_query/include/pg_getopt.h +6 -6
- data/ext/pg_query/include/pg_query.h +5 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
- data/ext/pg_query/include/pg_trace.h +1 -1
- data/ext/pg_query/include/pgstat.h +449 -1238
- data/ext/pg_query/include/pgtime.h +14 -4
- data/ext/pg_query/include/pl_gram.h +126 -128
- data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/include/plerrcodes.h +9 -1
- data/ext/pg_query/include/plpgsql.h +52 -54
- data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
- data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
- data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
- data/ext/pg_query/include/port/atomics/fallback.h +1 -1
- data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/port/atomics/generic.h +1 -1
- data/ext/pg_query/include/port/atomics.h +1 -1
- data/ext/pg_query/include/port/pg_bitutils.h +40 -10
- data/ext/pg_query/include/port/pg_bswap.h +1 -1
- data/ext/pg_query/include/port/pg_crc32c.h +1 -1
- data/ext/pg_query/include/port.h +71 -46
- data/ext/pg_query/include/portability/instr_time.h +1 -1
- data/ext/pg_query/include/postgres.h +60 -16
- data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
- data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
- data/ext/pg_query/include/postmaster/bgworker.h +2 -1
- data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
- data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
- data/ext/pg_query/include/postmaster/fork_process.h +1 -1
- data/ext/pg_query/include/postmaster/interrupt.h +1 -1
- data/ext/pg_query/include/postmaster/pgarch.h +42 -8
- data/ext/pg_query/include/postmaster/postmaster.h +18 -17
- data/ext/pg_query/include/postmaster/startup.h +39 -0
- data/ext/pg_query/include/postmaster/syslogger.h +15 -10
- data/ext/pg_query/include/postmaster/walwriter.h +3 -3
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
- data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
- data/ext/pg_query/include/regex/regex.h +18 -16
- data/ext/pg_query/include/replication/logicallauncher.h +3 -5
- data/ext/pg_query/include/replication/logicalproto.h +161 -17
- data/ext/pg_query/include/replication/logicalworker.h +1 -1
- data/ext/pg_query/include/replication/origin.h +7 -7
- data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
- data/ext/pg_query/include/replication/slot.h +22 -11
- data/ext/pg_query/include/replication/syncrep.h +5 -5
- data/ext/pg_query/include/replication/walreceiver.h +145 -13
- data/ext/pg_query/include/replication/walsender.h +8 -8
- data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
- data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
- data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
- data/ext/pg_query/include/storage/backendid.h +3 -3
- data/ext/pg_query/include/storage/block.h +4 -10
- data/ext/pg_query/include/storage/buf.h +1 -1
- data/ext/pg_query/include/storage/bufmgr.h +19 -14
- data/ext/pg_query/include/storage/bufpage.h +6 -8
- data/ext/pg_query/include/storage/condition_variable.h +13 -2
- data/ext/pg_query/include/storage/dsm.h +4 -1
- data/ext/pg_query/include/storage/dsm_impl.h +3 -2
- data/ext/pg_query/include/storage/fd.h +33 -3
- data/ext/pg_query/include/storage/fileset.h +40 -0
- data/ext/pg_query/include/storage/ipc.h +4 -1
- data/ext/pg_query/include/storage/item.h +1 -1
- data/ext/pg_query/include/storage/itemid.h +1 -1
- data/ext/pg_query/include/storage/itemptr.h +3 -1
- data/ext/pg_query/include/storage/large_object.h +2 -2
- data/ext/pg_query/include/storage/latch.h +9 -13
- data/ext/pg_query/include/storage/lmgr.h +2 -1
- data/ext/pg_query/include/storage/lock.h +11 -8
- data/ext/pg_query/include/storage/lockdefs.h +2 -2
- data/ext/pg_query/include/storage/lwlock.h +5 -32
- data/ext/pg_query/include/storage/lwlocknames.h +0 -1
- data/ext/pg_query/include/storage/off.h +1 -1
- data/ext/pg_query/include/storage/pg_sema.h +1 -1
- data/ext/pg_query/include/storage/pg_shmem.h +9 -7
- data/ext/pg_query/include/storage/pmsignal.h +15 -4
- data/ext/pg_query/include/storage/predicate.h +4 -4
- data/ext/pg_query/include/storage/proc.h +173 -59
- data/ext/pg_query/include/storage/procarray.h +98 -0
- data/ext/pg_query/include/storage/proclist_types.h +1 -1
- data/ext/pg_query/include/storage/procsignal.h +3 -7
- data/ext/pg_query/include/storage/relfilenode.h +1 -1
- data/ext/pg_query/include/storage/s_lock.h +60 -21
- data/ext/pg_query/include/storage/sharedfileset.h +3 -11
- data/ext/pg_query/include/storage/shm_mq.h +5 -4
- data/ext/pg_query/include/storage/shm_toc.h +1 -1
- data/ext/pg_query/include/storage/shmem.h +1 -1
- data/ext/pg_query/include/storage/sinval.h +3 -3
- data/ext/pg_query/include/storage/sinvaladt.h +1 -1
- data/ext/pg_query/include/storage/smgr.h +10 -8
- data/ext/pg_query/include/storage/spin.h +2 -2
- data/ext/pg_query/include/storage/standby.h +13 -6
- data/ext/pg_query/include/storage/standbydefs.h +2 -2
- data/ext/pg_query/include/storage/sync.h +7 -3
- data/ext/pg_query/include/tcop/cmdtag.h +1 -1
- data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
- data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
- data/ext/pg_query/include/tcop/dest.h +1 -1
- data/ext/pg_query/include/tcop/fastpath.h +1 -2
- data/ext/pg_query/include/tcop/pquery.h +1 -1
- data/ext/pg_query/include/tcop/tcopprot.h +19 -11
- data/ext/pg_query/include/tcop/utility.h +7 -3
- data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
- data/ext/pg_query/include/utils/acl.h +24 -3
- data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
- data/ext/pg_query/include/utils/array.h +7 -2
- data/ext/pg_query/include/utils/backend_progress.h +44 -0
- data/ext/pg_query/include/utils/backend_status.h +321 -0
- data/ext/pg_query/include/utils/builtins.h +10 -11
- data/ext/pg_query/include/utils/bytea.h +3 -2
- data/ext/pg_query/include/utils/catcache.h +1 -1
- data/ext/pg_query/include/utils/date.h +1 -1
- data/ext/pg_query/include/utils/datetime.h +8 -7
- data/ext/pg_query/include/utils/datum.h +9 -1
- data/ext/pg_query/include/utils/dsa.h +1 -1
- data/ext/pg_query/include/utils/dynahash.h +4 -3
- data/ext/pg_query/include/utils/elog.h +52 -21
- data/ext/pg_query/include/utils/errcodes.h +2 -0
- data/ext/pg_query/include/utils/expandeddatum.h +1 -1
- data/ext/pg_query/include/utils/expandedrecord.h +1 -1
- data/ext/pg_query/include/utils/float.h +7 -7
- data/ext/pg_query/include/utils/fmgroids.h +1300 -696
- data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
- data/ext/pg_query/include/utils/fmgrtab.h +6 -5
- data/ext/pg_query/include/utils/guc.h +69 -43
- data/ext/pg_query/include/utils/guc_tables.h +23 -19
- data/ext/pg_query/include/utils/hsearch.h +15 -11
- data/ext/pg_query/include/utils/inval.h +4 -1
- data/ext/pg_query/include/utils/lsyscache.h +11 -1
- data/ext/pg_query/include/utils/memdebug.h +1 -1
- data/ext/pg_query/include/utils/memutils.h +8 -3
- data/ext/pg_query/include/utils/numeric.h +19 -5
- data/ext/pg_query/include/utils/palloc.h +25 -3
- data/ext/pg_query/include/utils/partcache.h +1 -1
- data/ext/pg_query/include/utils/pg_locale.h +17 -9
- data/ext/pg_query/include/utils/pg_lsn.h +1 -1
- data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
- data/ext/pg_query/include/utils/pidfile.h +1 -1
- data/ext/pg_query/include/utils/plancache.h +6 -5
- data/ext/pg_query/include/utils/portal.h +10 -12
- data/ext/pg_query/include/utils/ps_status.h +1 -1
- data/ext/pg_query/include/utils/queryenvironment.h +1 -1
- data/ext/pg_query/include/utils/queryjumble.h +88 -0
- data/ext/pg_query/include/utils/regproc.h +14 -3
- data/ext/pg_query/include/utils/rel.h +71 -19
- data/ext/pg_query/include/utils/relcache.h +8 -5
- data/ext/pg_query/include/utils/reltrigger.h +1 -1
- data/ext/pg_query/include/utils/resowner.h +1 -1
- data/ext/pg_query/include/utils/rls.h +2 -2
- data/ext/pg_query/include/utils/ruleutils.h +4 -1
- data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/utils/snapmgr.h +34 -14
- data/ext/pg_query/include/utils/snapshot.h +14 -1
- data/ext/pg_query/include/utils/sortsupport.h +117 -2
- data/ext/pg_query/include/utils/syscache.h +6 -1
- data/ext/pg_query/include/utils/timeout.h +11 -4
- data/ext/pg_query/include/utils/timestamp.h +6 -5
- data/ext/pg_query/include/utils/tuplesort.h +25 -11
- data/ext/pg_query/include/utils/tuplestore.h +2 -2
- data/ext/pg_query/include/utils/typcache.h +24 -17
- data/ext/pg_query/include/utils/tzparser.h +1 -1
- data/ext/pg_query/include/utils/varlena.h +5 -3
- data/ext/pg_query/include/utils/wait_event.h +289 -0
- data/ext/pg_query/include/utils/xml.h +4 -4
- data/ext/pg_query/pg_query.pb-c.c +4302 -2304
- data/ext/pg_query/pg_query_deparse.c +1106 -373
- data/ext/pg_query/pg_query_fingerprint.c +30 -10
- data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
- data/ext/pg_query/pg_query_scan.c +2 -1
- data/ext/pg_query/pg_query_split.c +3 -2
- data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +74 -11
- data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
- data/ext/pg_query/src_backend_parser_parser.c +26 -7
- data/ext/pg_query/src_backend_parser_scan.c +172 -209
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
- data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
- data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
- data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
- data/ext/pg_query/src_common_encnames.c +1 -1
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +517 -494
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_pg_prng.c +152 -0
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_string.c +7 -1
- data/ext/pg_query/src_common_stringinfo.c +1 -1
- data/ext/pg_query/src_common_wchar.c +701 -109
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
- data/ext/pg_query/src_port_pg_bitutils.c +41 -31
- data/ext/pg_query/src_port_pgsleep.c +1 -1
- data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +37 -13
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strnlen.c +1 -1
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +5 -1
- data/lib/pg_query/node.rb +2 -2
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +18 -8
- data/lib/pg_query/pg_query_pb.rb +1108 -942
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +28 -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/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_random.c +0 -31
@@ -26,7 +26,7 @@
|
|
26
26
|
* type.
|
27
27
|
*
|
28
28
|
*
|
29
|
-
* Portions Copyright (c) 1996-
|
29
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
30
30
|
* Portions Copyright (c) 1994, Regents of the University of California
|
31
31
|
*
|
32
32
|
* IDENTIFICATION
|
@@ -292,7 +292,8 @@ static Size AllocSetGetChunkSpace(MemoryContext context, void *pointer);
|
|
292
292
|
static bool AllocSetIsEmpty(MemoryContext context);
|
293
293
|
static void AllocSetStats(MemoryContext context,
|
294
294
|
MemoryStatsPrintFunc printfunc, void *passthru,
|
295
|
-
MemoryContextCounters *totals
|
295
|
+
MemoryContextCounters *totals,
|
296
|
+
bool print_to_stderr);
|
296
297
|
|
297
298
|
#ifdef MEMORY_CONTEXT_CHECKING
|
298
299
|
static void AllocSetCheck(MemoryContext context);
|
@@ -1356,11 +1357,12 @@ AllocSetIsEmpty(MemoryContext context)
|
|
1356
1357
|
* printfunc: if not NULL, pass a human-readable stats string to this.
|
1357
1358
|
* passthru: pass this pointer through to printfunc.
|
1358
1359
|
* totals: if not NULL, add stats about this context into *totals.
|
1360
|
+
* print_to_stderr: print stats to stderr if true, elog otherwise.
|
1359
1361
|
*/
|
1360
1362
|
static void
|
1361
1363
|
AllocSetStats(MemoryContext context,
|
1362
1364
|
MemoryStatsPrintFunc printfunc, void *passthru,
|
1363
|
-
MemoryContextCounters *totals)
|
1365
|
+
MemoryContextCounters *totals, bool print_to_stderr)
|
1364
1366
|
{
|
1365
1367
|
AllocSet set = (AllocSet) context;
|
1366
1368
|
Size nblocks = 0;
|
@@ -1396,10 +1398,10 @@ AllocSetStats(MemoryContext context,
|
|
1396
1398
|
char stats_string[200];
|
1397
1399
|
|
1398
1400
|
snprintf(stats_string, sizeof(stats_string),
|
1399
|
-
"%zu total in %
|
1401
|
+
"%zu total in %zu blocks; %zu free (%zu chunks); %zu used",
|
1400
1402
|
totalspace, nblocks, freespace, freechunks,
|
1401
1403
|
totalspace - freespace);
|
1402
|
-
printfunc(context, passthru, stats_string);
|
1404
|
+
printfunc(context, passthru, stats_string, print_to_stderr);
|
1403
1405
|
}
|
1404
1406
|
|
1405
1407
|
if (totals)
|
@@ -43,7 +43,7 @@
|
|
43
43
|
* context's MemoryContextMethods struct.
|
44
44
|
*
|
45
45
|
*
|
46
|
-
* Portions Copyright (c) 1996-
|
46
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
47
47
|
* Portions Copyright (c) 1994, Regents of the University of California
|
48
48
|
*
|
49
49
|
*
|
@@ -57,6 +57,10 @@
|
|
57
57
|
|
58
58
|
#include "mb/pg_wchar.h"
|
59
59
|
#include "miscadmin.h"
|
60
|
+
#include "storage/proc.h"
|
61
|
+
#include "storage/procarray.h"
|
62
|
+
#include "storage/procsignal.h"
|
63
|
+
#include "utils/fmgrprotos.h"
|
60
64
|
#include "utils/memdebug.h"
|
61
65
|
#include "utils/memutils.h"
|
62
66
|
|
@@ -92,9 +96,11 @@ __thread MemoryContext ErrorContext = NULL;
|
|
92
96
|
static void MemoryContextCallResetCallbacks(MemoryContext context);
|
93
97
|
static void MemoryContextStatsInternal(MemoryContext context, int level,
|
94
98
|
bool print, int max_children,
|
95
|
-
MemoryContextCounters *totals
|
99
|
+
MemoryContextCounters *totals,
|
100
|
+
bool print_to_stderr);
|
96
101
|
static void MemoryContextStatsPrint(MemoryContext context, void *passthru,
|
97
|
-
const char *stats_string
|
102
|
+
const char *stats_string,
|
103
|
+
bool print_to_stderr);
|
98
104
|
|
99
105
|
/*
|
100
106
|
* You should not do memory allocations within a critical section, because
|
@@ -104,6 +110,7 @@ static void MemoryContextStatsPrint(MemoryContext context, void *passthru,
|
|
104
110
|
#define AssertNotInCriticalSection(context) \
|
105
111
|
Assert(CritSectionCount == 0 || (context)->allowInCritSection)
|
106
112
|
|
113
|
+
|
107
114
|
/*****************************************************************************
|
108
115
|
* EXPORTED ROUTINES *
|
109
116
|
*****************************************************************************/
|
@@ -464,28 +471,52 @@ void
|
|
464
471
|
MemoryContextStats(MemoryContext context)
|
465
472
|
{
|
466
473
|
/* A hard-wired limit on the number of children is usually good enough */
|
467
|
-
MemoryContextStatsDetail(context, 100);
|
474
|
+
MemoryContextStatsDetail(context, 100, true);
|
468
475
|
}
|
469
476
|
|
470
477
|
/*
|
471
478
|
* MemoryContextStatsDetail
|
472
479
|
*
|
473
480
|
* Entry point for use if you want to vary the number of child contexts shown.
|
481
|
+
*
|
482
|
+
* If print_to_stderr is true, print statistics about the memory contexts
|
483
|
+
* with fprintf(stderr), otherwise use ereport().
|
474
484
|
*/
|
475
485
|
void
|
476
|
-
MemoryContextStatsDetail(MemoryContext context, int max_children
|
486
|
+
MemoryContextStatsDetail(MemoryContext context, int max_children,
|
487
|
+
bool print_to_stderr)
|
477
488
|
{
|
478
489
|
MemoryContextCounters grand_totals;
|
479
490
|
|
480
491
|
memset(&grand_totals, 0, sizeof(grand_totals));
|
481
492
|
|
482
|
-
MemoryContextStatsInternal(context, 0, true, max_children, &grand_totals);
|
493
|
+
MemoryContextStatsInternal(context, 0, true, max_children, &grand_totals, print_to_stderr);
|
494
|
+
|
495
|
+
if (print_to_stderr)
|
496
|
+
fprintf(stderr,
|
497
|
+
"Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used\n",
|
498
|
+
grand_totals.totalspace, grand_totals.nblocks,
|
499
|
+
grand_totals.freespace, grand_totals.freechunks,
|
500
|
+
grand_totals.totalspace - grand_totals.freespace);
|
501
|
+
else
|
483
502
|
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
503
|
+
/*
|
504
|
+
* Use LOG_SERVER_ONLY to prevent the memory contexts from being sent
|
505
|
+
* to the connected client.
|
506
|
+
*
|
507
|
+
* We don't buffer the information about all memory contexts in a
|
508
|
+
* backend into StringInfo and log it as one message. Otherwise which
|
509
|
+
* may require the buffer to be enlarged very much and lead to OOM
|
510
|
+
* error since there can be a large number of memory contexts in a
|
511
|
+
* backend. Instead, we log one message per memory context.
|
512
|
+
*/
|
513
|
+
ereport(LOG_SERVER_ONLY,
|
514
|
+
(errhidestmt(true),
|
515
|
+
errhidecontext(true),
|
516
|
+
errmsg_internal("Grand total: %zu bytes in %zu blocks; %zu free (%zu chunks); %zu used",
|
517
|
+
grand_totals.totalspace, grand_totals.nblocks,
|
518
|
+
grand_totals.freespace, grand_totals.freechunks,
|
519
|
+
grand_totals.totalspace - grand_totals.freespace)));
|
489
520
|
}
|
490
521
|
|
491
522
|
/*
|
@@ -498,7 +529,8 @@ MemoryContextStatsDetail(MemoryContext context, int max_children)
|
|
498
529
|
static void
|
499
530
|
MemoryContextStatsInternal(MemoryContext context, int level,
|
500
531
|
bool print, int max_children,
|
501
|
-
MemoryContextCounters *totals
|
532
|
+
MemoryContextCounters *totals,
|
533
|
+
bool print_to_stderr)
|
502
534
|
{
|
503
535
|
MemoryContextCounters local_totals;
|
504
536
|
MemoryContext child;
|
@@ -510,7 +542,7 @@ MemoryContextStatsInternal(MemoryContext context, int level,
|
|
510
542
|
context->methods->stats(context,
|
511
543
|
print ? MemoryContextStatsPrint : NULL,
|
512
544
|
(void *) &level,
|
513
|
-
totals);
|
545
|
+
totals, print_to_stderr);
|
514
546
|
|
515
547
|
/*
|
516
548
|
* Examine children. If there are more than max_children of them, we do
|
@@ -525,11 +557,13 @@ MemoryContextStatsInternal(MemoryContext context, int level,
|
|
525
557
|
if (ichild < max_children)
|
526
558
|
MemoryContextStatsInternal(child, level + 1,
|
527
559
|
print, max_children,
|
528
|
-
totals
|
560
|
+
totals,
|
561
|
+
print_to_stderr);
|
529
562
|
else
|
530
563
|
MemoryContextStatsInternal(child, level + 1,
|
531
564
|
false, max_children,
|
532
|
-
&local_totals
|
565
|
+
&local_totals,
|
566
|
+
print_to_stderr);
|
533
567
|
}
|
534
568
|
|
535
569
|
/* Deal with excess children */
|
@@ -537,18 +571,33 @@ MemoryContextStatsInternal(MemoryContext context, int level,
|
|
537
571
|
{
|
538
572
|
if (print)
|
539
573
|
{
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
574
|
+
if (print_to_stderr)
|
575
|
+
{
|
576
|
+
int i;
|
577
|
+
|
578
|
+
for (i = 0; i <= level; i++)
|
579
|
+
fprintf(stderr, " ");
|
580
|
+
fprintf(stderr,
|
581
|
+
"%d more child contexts containing %zu total in %zu blocks; %zu free (%zu chunks); %zu used\n",
|
582
|
+
ichild - max_children,
|
583
|
+
local_totals.totalspace,
|
584
|
+
local_totals.nblocks,
|
585
|
+
local_totals.freespace,
|
586
|
+
local_totals.freechunks,
|
587
|
+
local_totals.totalspace - local_totals.freespace);
|
588
|
+
}
|
589
|
+
else
|
590
|
+
ereport(LOG_SERVER_ONLY,
|
591
|
+
(errhidestmt(true),
|
592
|
+
errhidecontext(true),
|
593
|
+
errmsg_internal("level: %d; %d more child contexts containing %zu total in %zu blocks; %zu free (%zu chunks); %zu used",
|
594
|
+
level,
|
595
|
+
ichild - max_children,
|
596
|
+
local_totals.totalspace,
|
597
|
+
local_totals.nblocks,
|
598
|
+
local_totals.freespace,
|
599
|
+
local_totals.freechunks,
|
600
|
+
local_totals.totalspace - local_totals.freespace)));
|
552
601
|
}
|
553
602
|
|
554
603
|
if (totals)
|
@@ -570,11 +619,13 @@ MemoryContextStatsInternal(MemoryContext context, int level,
|
|
570
619
|
*/
|
571
620
|
static void
|
572
621
|
MemoryContextStatsPrint(MemoryContext context, void *passthru,
|
573
|
-
const char *stats_string
|
622
|
+
const char *stats_string,
|
623
|
+
bool print_to_stderr)
|
574
624
|
{
|
575
625
|
int level = *(int *) passthru;
|
576
626
|
const char *name = context->name;
|
577
627
|
const char *ident = context->ident;
|
628
|
+
char truncated_ident[110];
|
578
629
|
int i;
|
579
630
|
|
580
631
|
/*
|
@@ -588,9 +639,8 @@ MemoryContextStatsPrint(MemoryContext context, void *passthru,
|
|
588
639
|
ident = NULL;
|
589
640
|
}
|
590
641
|
|
591
|
-
|
592
|
-
|
593
|
-
fprintf(stderr, "%s: %s", name, stats_string);
|
642
|
+
truncated_ident[0] = '\0';
|
643
|
+
|
594
644
|
if (ident)
|
595
645
|
{
|
596
646
|
/*
|
@@ -602,24 +652,41 @@ MemoryContextStatsPrint(MemoryContext context, void *passthru,
|
|
602
652
|
int idlen = strlen(ident);
|
603
653
|
bool truncated = false;
|
604
654
|
|
655
|
+
strcpy(truncated_ident, ": ");
|
656
|
+
i = strlen(truncated_ident);
|
657
|
+
|
605
658
|
if (idlen > 100)
|
606
659
|
{
|
607
660
|
idlen = pg_mbcliplen(ident, idlen, 100);
|
608
661
|
truncated = true;
|
609
662
|
}
|
610
|
-
|
663
|
+
|
611
664
|
while (idlen-- > 0)
|
612
665
|
{
|
613
666
|
unsigned char c = *ident++;
|
614
667
|
|
615
668
|
if (c < ' ')
|
616
669
|
c = ' ';
|
617
|
-
|
670
|
+
truncated_ident[i++] = c;
|
618
671
|
}
|
672
|
+
truncated_ident[i] = '\0';
|
673
|
+
|
619
674
|
if (truncated)
|
620
|
-
|
675
|
+
strcat(truncated_ident, "...");
|
676
|
+
}
|
677
|
+
|
678
|
+
if (print_to_stderr)
|
679
|
+
{
|
680
|
+
for (i = 0; i < level; i++)
|
681
|
+
fprintf(stderr, " ");
|
682
|
+
fprintf(stderr, "%s: %s%s\n", name, stats_string, truncated_ident);
|
621
683
|
}
|
622
|
-
|
684
|
+
else
|
685
|
+
ereport(LOG_SERVER_ONLY,
|
686
|
+
(errhidestmt(true),
|
687
|
+
errhidecontext(true),
|
688
|
+
errmsg_internal("level: %d; %s: %s%s",
|
689
|
+
level, name, stats_string, truncated_ident)));
|
623
690
|
}
|
624
691
|
|
625
692
|
/*
|
@@ -878,6 +945,27 @@ MemoryContextAllocExtended(MemoryContext context, Size size, int flags)
|
|
878
945
|
return ret;
|
879
946
|
}
|
880
947
|
|
948
|
+
/*
|
949
|
+
* HandleLogMemoryContextInterrupt
|
950
|
+
* Handle receipt of an interrupt indicating logging of memory
|
951
|
+
* contexts.
|
952
|
+
*
|
953
|
+
* All the actual work is deferred to ProcessLogMemoryContextInterrupt(),
|
954
|
+
* because we cannot safely emit a log message inside the signal handler.
|
955
|
+
*/
|
956
|
+
|
957
|
+
|
958
|
+
/*
|
959
|
+
* ProcessLogMemoryContextInterrupt
|
960
|
+
* Perform logging of memory contexts of this backend process.
|
961
|
+
*
|
962
|
+
* Any backend that participates in ProcSignal signaling must arrange
|
963
|
+
* to call this function if we see LogMemoryContextPending set.
|
964
|
+
* It is called from CHECK_FOR_INTERRUPTS(), which is enough because
|
965
|
+
* the target process for logging of memory contexts is a backend.
|
966
|
+
*/
|
967
|
+
|
968
|
+
|
881
969
|
void *
|
882
970
|
palloc(Size size)
|
883
971
|
{
|
@@ -9,7 +9,7 @@
|
|
9
9
|
* encnames.c
|
10
10
|
* Encoding names and routines for working with them.
|
11
11
|
*
|
12
|
-
* Portions Copyright (c) 2001-
|
12
|
+
* Portions Copyright (c) 2001-2022, PostgreSQL Global Development Group
|
13
13
|
*
|
14
14
|
* IDENTIFICATION
|
15
15
|
* src/common/encnames.c
|
@@ -11,7 +11,7 @@
|
|
11
11
|
* hashtables
|
12
12
|
*
|
13
13
|
*
|
14
|
-
* Portions Copyright (c) 1996-
|
14
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
16
16
|
*
|
17
17
|
*
|
@@ -30,6 +30,7 @@
|
|
30
30
|
#include "postgres.h"
|
31
31
|
|
32
32
|
#include "common/hashfn.h"
|
33
|
+
#include "port/pg_bitutils.h"
|
33
34
|
|
34
35
|
|
35
36
|
/*
|
@@ -50,8 +51,7 @@
|
|
50
51
|
/* Get a bit mask of the bits set in non-uint32 aligned addresses */
|
51
52
|
#define UINT32_ALIGN_MASK (sizeof(uint32) - 1)
|
52
53
|
|
53
|
-
|
54
|
-
#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k))))
|
54
|
+
#define rot(x,k) pg_rotate_left32(x, k)
|
55
55
|
|
56
56
|
/*----------
|
57
57
|
* mix -- mix 3 32-bit values reversibly.
|
@@ -10,7 +10,7 @@
|
|
10
10
|
* PostgreSQL's list of SQL keywords
|
11
11
|
*
|
12
12
|
*
|
13
|
-
* Portions Copyright (c) 1996-
|
13
|
+
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
14
14
|
* Portions Copyright (c) 1994, Regents of the University of California
|
15
15
|
*
|
16
16
|
*
|
@@ -30,10 +30,23 @@
|
|
30
30
|
|
31
31
|
/* Keyword categories for SQL keywords */
|
32
32
|
|
33
|
-
#define PG_KEYWORD(kwname, value, category) category,
|
33
|
+
#define PG_KEYWORD(kwname, value, category, collabel) category,
|
34
34
|
|
35
35
|
const uint8 ScanKeywordCategories[SCANKEYWORDS_NUM_KEYWORDS] = {
|
36
36
|
#include "parser/kwlist.h"
|
37
37
|
};
|
38
38
|
|
39
39
|
#undef PG_KEYWORD
|
40
|
+
|
41
|
+
/* Keyword can-be-bare-label flags for SQL keywords */
|
42
|
+
|
43
|
+
#define PG_KEYWORD(kwname, value, category, collabel) collabel,
|
44
|
+
|
45
|
+
#define BARE_LABEL true
|
46
|
+
#define AS_LABEL false
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
#undef PG_KEYWORD
|
51
|
+
#undef BARE_LABEL
|
52
|
+
#undef AS_LABEL
|