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
|
@@ -25,7 +25,8 @@ static const struct mbinterval combining[] = {
|
|
|
25
25
|
{0x0825, 0x0827},
|
|
26
26
|
{0x0829, 0x082D},
|
|
27
27
|
{0x0859, 0x085B},
|
|
28
|
-
{
|
|
28
|
+
{0x0898, 0x089F},
|
|
29
|
+
{0x08CA, 0x08E1},
|
|
29
30
|
{0x08E3, 0x0902},
|
|
30
31
|
{0x093A, 0x093A},
|
|
31
32
|
{0x093C, 0x093C},
|
|
@@ -59,6 +60,7 @@ static const struct mbinterval combining[] = {
|
|
|
59
60
|
{0x0BCD, 0x0BCD},
|
|
60
61
|
{0x0C00, 0x0C00},
|
|
61
62
|
{0x0C04, 0x0C04},
|
|
63
|
+
{0x0C3C, 0x0C3C},
|
|
62
64
|
{0x0C3E, 0x0C40},
|
|
63
65
|
{0x0C46, 0x0C56},
|
|
64
66
|
{0x0C62, 0x0C63},
|
|
@@ -104,7 +106,7 @@ static const struct mbinterval combining[] = {
|
|
|
104
106
|
{0x109D, 0x109D},
|
|
105
107
|
{0x135D, 0x135F},
|
|
106
108
|
{0x1712, 0x1714},
|
|
107
|
-
{0x1732,
|
|
109
|
+
{0x1732, 0x1733},
|
|
108
110
|
{0x1752, 0x1753},
|
|
109
111
|
{0x1772, 0x1773},
|
|
110
112
|
{0x17B4, 0x17B5},
|
|
@@ -113,6 +115,7 @@ static const struct mbinterval combining[] = {
|
|
|
113
115
|
{0x17C9, 0x17D3},
|
|
114
116
|
{0x17DD, 0x17DD},
|
|
115
117
|
{0x180B, 0x180D},
|
|
118
|
+
{0x180F, 0x180F},
|
|
116
119
|
{0x1885, 0x1886},
|
|
117
120
|
{0x18A9, 0x18A9},
|
|
118
121
|
{0x1920, 0x1922},
|
|
@@ -193,4 +196,113 @@ static const struct mbinterval combining[] = {
|
|
|
193
196
|
{0xFB1E, 0xFB1E},
|
|
194
197
|
{0xFE00, 0xFE0F},
|
|
195
198
|
{0xFE20, 0xFE2F},
|
|
199
|
+
{0x101FD, 0x101FD},
|
|
200
|
+
{0x102E0, 0x102E0},
|
|
201
|
+
{0x10376, 0x1037A},
|
|
202
|
+
{0x10A01, 0x10A0F},
|
|
203
|
+
{0x10A38, 0x10A3F},
|
|
204
|
+
{0x10AE5, 0x10AE6},
|
|
205
|
+
{0x10D24, 0x10D27},
|
|
206
|
+
{0x10EAB, 0x10EAC},
|
|
207
|
+
{0x10F46, 0x10F50},
|
|
208
|
+
{0x10F82, 0x10F85},
|
|
209
|
+
{0x11001, 0x11001},
|
|
210
|
+
{0x11038, 0x11046},
|
|
211
|
+
{0x11070, 0x11070},
|
|
212
|
+
{0x11073, 0x11074},
|
|
213
|
+
{0x1107F, 0x11081},
|
|
214
|
+
{0x110B3, 0x110B6},
|
|
215
|
+
{0x110B9, 0x110BA},
|
|
216
|
+
{0x110C2, 0x110C2},
|
|
217
|
+
{0x11100, 0x11102},
|
|
218
|
+
{0x11127, 0x1112B},
|
|
219
|
+
{0x1112D, 0x11134},
|
|
220
|
+
{0x11173, 0x11173},
|
|
221
|
+
{0x11180, 0x11181},
|
|
222
|
+
{0x111B6, 0x111BE},
|
|
223
|
+
{0x111C9, 0x111CC},
|
|
224
|
+
{0x111CF, 0x111CF},
|
|
225
|
+
{0x1122F, 0x11231},
|
|
226
|
+
{0x11234, 0x11234},
|
|
227
|
+
{0x11236, 0x11237},
|
|
228
|
+
{0x1123E, 0x1123E},
|
|
229
|
+
{0x112DF, 0x112DF},
|
|
230
|
+
{0x112E3, 0x112EA},
|
|
231
|
+
{0x11300, 0x11301},
|
|
232
|
+
{0x1133B, 0x1133C},
|
|
233
|
+
{0x11340, 0x11340},
|
|
234
|
+
{0x11366, 0x11374},
|
|
235
|
+
{0x11438, 0x1143F},
|
|
236
|
+
{0x11442, 0x11444},
|
|
237
|
+
{0x11446, 0x11446},
|
|
238
|
+
{0x1145E, 0x1145E},
|
|
239
|
+
{0x114B3, 0x114B8},
|
|
240
|
+
{0x114BA, 0x114BA},
|
|
241
|
+
{0x114BF, 0x114C0},
|
|
242
|
+
{0x114C2, 0x114C3},
|
|
243
|
+
{0x115B2, 0x115B5},
|
|
244
|
+
{0x115BC, 0x115BD},
|
|
245
|
+
{0x115BF, 0x115C0},
|
|
246
|
+
{0x115DC, 0x115DD},
|
|
247
|
+
{0x11633, 0x1163A},
|
|
248
|
+
{0x1163D, 0x1163D},
|
|
249
|
+
{0x1163F, 0x11640},
|
|
250
|
+
{0x116AB, 0x116AB},
|
|
251
|
+
{0x116AD, 0x116AD},
|
|
252
|
+
{0x116B0, 0x116B5},
|
|
253
|
+
{0x116B7, 0x116B7},
|
|
254
|
+
{0x1171D, 0x1171F},
|
|
255
|
+
{0x11722, 0x11725},
|
|
256
|
+
{0x11727, 0x1172B},
|
|
257
|
+
{0x1182F, 0x11837},
|
|
258
|
+
{0x11839, 0x1183A},
|
|
259
|
+
{0x1193B, 0x1193C},
|
|
260
|
+
{0x1193E, 0x1193E},
|
|
261
|
+
{0x11943, 0x11943},
|
|
262
|
+
{0x119D4, 0x119DB},
|
|
263
|
+
{0x119E0, 0x119E0},
|
|
264
|
+
{0x11A01, 0x11A0A},
|
|
265
|
+
{0x11A33, 0x11A38},
|
|
266
|
+
{0x11A3B, 0x11A3E},
|
|
267
|
+
{0x11A47, 0x11A47},
|
|
268
|
+
{0x11A51, 0x11A56},
|
|
269
|
+
{0x11A59, 0x11A5B},
|
|
270
|
+
{0x11A8A, 0x11A96},
|
|
271
|
+
{0x11A98, 0x11A99},
|
|
272
|
+
{0x11C30, 0x11C3D},
|
|
273
|
+
{0x11C3F, 0x11C3F},
|
|
274
|
+
{0x11C92, 0x11CA7},
|
|
275
|
+
{0x11CAA, 0x11CB0},
|
|
276
|
+
{0x11CB2, 0x11CB3},
|
|
277
|
+
{0x11CB5, 0x11CB6},
|
|
278
|
+
{0x11D31, 0x11D45},
|
|
279
|
+
{0x11D47, 0x11D47},
|
|
280
|
+
{0x11D90, 0x11D91},
|
|
281
|
+
{0x11D95, 0x11D95},
|
|
282
|
+
{0x11D97, 0x11D97},
|
|
283
|
+
{0x11EF3, 0x11EF4},
|
|
284
|
+
{0x16AF0, 0x16AF4},
|
|
285
|
+
{0x16B30, 0x16B36},
|
|
286
|
+
{0x16F4F, 0x16F4F},
|
|
287
|
+
{0x16F8F, 0x16F92},
|
|
288
|
+
{0x16FE4, 0x16FE4},
|
|
289
|
+
{0x1BC9D, 0x1BC9E},
|
|
290
|
+
{0x1CF00, 0x1CF46},
|
|
291
|
+
{0x1D167, 0x1D169},
|
|
292
|
+
{0x1D17B, 0x1D182},
|
|
293
|
+
{0x1D185, 0x1D18B},
|
|
294
|
+
{0x1D1AA, 0x1D1AD},
|
|
295
|
+
{0x1D242, 0x1D244},
|
|
296
|
+
{0x1DA00, 0x1DA36},
|
|
297
|
+
{0x1DA3B, 0x1DA6C},
|
|
298
|
+
{0x1DA75, 0x1DA75},
|
|
299
|
+
{0x1DA84, 0x1DA84},
|
|
300
|
+
{0x1DA9B, 0x1DAAF},
|
|
301
|
+
{0x1E000, 0x1E02A},
|
|
302
|
+
{0x1E130, 0x1E136},
|
|
303
|
+
{0x1E2AE, 0x1E2AE},
|
|
304
|
+
{0x1E2EC, 0x1E2EF},
|
|
305
|
+
{0x1E8D0, 0x1E8D6},
|
|
306
|
+
{0x1E944, 0x1E94A},
|
|
307
|
+
{0xE0100, 0xE01EF},
|
|
196
308
|
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* generated by src/common/unicode/generate-unicode_east_asian_fw_table.pl, do not edit */
|
|
2
|
+
|
|
3
|
+
static const struct mbinterval east_asian_fw[] = {
|
|
4
|
+
{0x1100, 0x115F},
|
|
5
|
+
{0x231A, 0x231B},
|
|
6
|
+
{0x2329, 0x232A},
|
|
7
|
+
{0x23E9, 0x23EC},
|
|
8
|
+
{0x23F0, 0x23F0},
|
|
9
|
+
{0x23F3, 0x23F3},
|
|
10
|
+
{0x25FD, 0x25FE},
|
|
11
|
+
{0x2614, 0x2615},
|
|
12
|
+
{0x2648, 0x2653},
|
|
13
|
+
{0x267F, 0x267F},
|
|
14
|
+
{0x2693, 0x2693},
|
|
15
|
+
{0x26A1, 0x26A1},
|
|
16
|
+
{0x26AA, 0x26AB},
|
|
17
|
+
{0x26BD, 0x26BE},
|
|
18
|
+
{0x26C4, 0x26C5},
|
|
19
|
+
{0x26CE, 0x26CE},
|
|
20
|
+
{0x26D4, 0x26D4},
|
|
21
|
+
{0x26EA, 0x26EA},
|
|
22
|
+
{0x26F2, 0x26F3},
|
|
23
|
+
{0x26F5, 0x26F5},
|
|
24
|
+
{0x26FA, 0x26FA},
|
|
25
|
+
{0x26FD, 0x26FD},
|
|
26
|
+
{0x2705, 0x2705},
|
|
27
|
+
{0x270A, 0x270B},
|
|
28
|
+
{0x2728, 0x2728},
|
|
29
|
+
{0x274C, 0x274C},
|
|
30
|
+
{0x274E, 0x274E},
|
|
31
|
+
{0x2753, 0x2755},
|
|
32
|
+
{0x2757, 0x2757},
|
|
33
|
+
{0x2795, 0x2797},
|
|
34
|
+
{0x27B0, 0x27B0},
|
|
35
|
+
{0x27BF, 0x27BF},
|
|
36
|
+
{0x2B1B, 0x2B1C},
|
|
37
|
+
{0x2B50, 0x2B50},
|
|
38
|
+
{0x2B55, 0x2B55},
|
|
39
|
+
{0x2E80, 0x2E99},
|
|
40
|
+
{0x2E9B, 0x2EF3},
|
|
41
|
+
{0x2F00, 0x2FD5},
|
|
42
|
+
{0x2FF0, 0x2FFB},
|
|
43
|
+
{0x3000, 0x303E},
|
|
44
|
+
{0x3041, 0x3096},
|
|
45
|
+
{0x3099, 0x30FF},
|
|
46
|
+
{0x3105, 0x312F},
|
|
47
|
+
{0x3131, 0x318E},
|
|
48
|
+
{0x3190, 0x31E3},
|
|
49
|
+
{0x31F0, 0x321E},
|
|
50
|
+
{0x3220, 0x3247},
|
|
51
|
+
{0x3250, 0x4DBF},
|
|
52
|
+
{0x4E00, 0xA48C},
|
|
53
|
+
{0xA490, 0xA4C6},
|
|
54
|
+
{0xA960, 0xA97C},
|
|
55
|
+
{0xAC00, 0xD7A3},
|
|
56
|
+
{0xF900, 0xFAFF},
|
|
57
|
+
{0xFE10, 0xFE19},
|
|
58
|
+
{0xFE30, 0xFE52},
|
|
59
|
+
{0xFE54, 0xFE66},
|
|
60
|
+
{0xFE68, 0xFE6B},
|
|
61
|
+
{0xFF01, 0xFF60},
|
|
62
|
+
{0xFFE0, 0xFFE6},
|
|
63
|
+
{0x16FE0, 0x16FE4},
|
|
64
|
+
{0x16FF0, 0x16FF1},
|
|
65
|
+
{0x17000, 0x187F7},
|
|
66
|
+
{0x18800, 0x18CD5},
|
|
67
|
+
{0x18D00, 0x18D08},
|
|
68
|
+
{0x1AFF0, 0x1AFF3},
|
|
69
|
+
{0x1AFF5, 0x1AFFB},
|
|
70
|
+
{0x1AFFD, 0x1AFFE},
|
|
71
|
+
{0x1B000, 0x1B122},
|
|
72
|
+
{0x1B150, 0x1B152},
|
|
73
|
+
{0x1B164, 0x1B167},
|
|
74
|
+
{0x1B170, 0x1B2FB},
|
|
75
|
+
{0x1F004, 0x1F004},
|
|
76
|
+
{0x1F0CF, 0x1F0CF},
|
|
77
|
+
{0x1F18E, 0x1F18E},
|
|
78
|
+
{0x1F191, 0x1F19A},
|
|
79
|
+
{0x1F200, 0x1F202},
|
|
80
|
+
{0x1F210, 0x1F23B},
|
|
81
|
+
{0x1F240, 0x1F248},
|
|
82
|
+
{0x1F250, 0x1F251},
|
|
83
|
+
{0x1F260, 0x1F265},
|
|
84
|
+
{0x1F300, 0x1F320},
|
|
85
|
+
{0x1F32D, 0x1F335},
|
|
86
|
+
{0x1F337, 0x1F37C},
|
|
87
|
+
{0x1F37E, 0x1F393},
|
|
88
|
+
{0x1F3A0, 0x1F3CA},
|
|
89
|
+
{0x1F3CF, 0x1F3D3},
|
|
90
|
+
{0x1F3E0, 0x1F3F0},
|
|
91
|
+
{0x1F3F4, 0x1F3F4},
|
|
92
|
+
{0x1F3F8, 0x1F43E},
|
|
93
|
+
{0x1F440, 0x1F440},
|
|
94
|
+
{0x1F442, 0x1F4FC},
|
|
95
|
+
{0x1F4FF, 0x1F53D},
|
|
96
|
+
{0x1F54B, 0x1F54E},
|
|
97
|
+
{0x1F550, 0x1F567},
|
|
98
|
+
{0x1F57A, 0x1F57A},
|
|
99
|
+
{0x1F595, 0x1F596},
|
|
100
|
+
{0x1F5A4, 0x1F5A4},
|
|
101
|
+
{0x1F5FB, 0x1F64F},
|
|
102
|
+
{0x1F680, 0x1F6C5},
|
|
103
|
+
{0x1F6CC, 0x1F6CC},
|
|
104
|
+
{0x1F6D0, 0x1F6D2},
|
|
105
|
+
{0x1F6D5, 0x1F6D7},
|
|
106
|
+
{0x1F6DD, 0x1F6DF},
|
|
107
|
+
{0x1F6EB, 0x1F6EC},
|
|
108
|
+
{0x1F6F4, 0x1F6FC},
|
|
109
|
+
{0x1F7E0, 0x1F7EB},
|
|
110
|
+
{0x1F7F0, 0x1F7F0},
|
|
111
|
+
{0x1F90C, 0x1F93A},
|
|
112
|
+
{0x1F93C, 0x1F945},
|
|
113
|
+
{0x1F947, 0x1F9FF},
|
|
114
|
+
{0x1FA70, 0x1FA74},
|
|
115
|
+
{0x1FA78, 0x1FA7C},
|
|
116
|
+
{0x1FA80, 0x1FA86},
|
|
117
|
+
{0x1FA90, 0x1FAAC},
|
|
118
|
+
{0x1FAB0, 0x1FABA},
|
|
119
|
+
{0x1FAC0, 0x1FAC5},
|
|
120
|
+
{0x1FAD0, 0x1FAD9},
|
|
121
|
+
{0x1FAE0, 0x1FAE7},
|
|
122
|
+
{0x1FAF0, 0x1FAF6},
|
|
123
|
+
{0x20000, 0x2FFFD},
|
|
124
|
+
{0x30000, 0x3FFFD},
|
|
125
|
+
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Note: this file must be includable in both frontend and backend contexts.
|
|
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/datatype/timestamp.h
|
|
@@ -40,6 +40,10 @@ typedef int64 TimestampTz;
|
|
|
40
40
|
typedef int64 TimeOffset;
|
|
41
41
|
typedef int32 fsec_t; /* fractional seconds (in microseconds) */
|
|
42
42
|
|
|
43
|
+
|
|
44
|
+
/*
|
|
45
|
+
* Storage format for type interval.
|
|
46
|
+
*/
|
|
43
47
|
typedef struct
|
|
44
48
|
{
|
|
45
49
|
TimeOffset time; /* all time units other than days, months and
|
|
@@ -48,6 +52,41 @@ typedef struct
|
|
|
48
52
|
int32 month; /* months and years, after time for alignment */
|
|
49
53
|
} Interval;
|
|
50
54
|
|
|
55
|
+
/*
|
|
56
|
+
* Data structure representing a broken-down interval.
|
|
57
|
+
*
|
|
58
|
+
* For historical reasons, this is modeled on struct pg_tm for timestamps.
|
|
59
|
+
* Unlike the situation for timestamps, there's no magic interpretation
|
|
60
|
+
* needed for months or years: they're just zero or not. Note that fields
|
|
61
|
+
* can be negative; however, because of the divisions done while converting
|
|
62
|
+
* from struct Interval, only tm_mday could be INT_MIN. This is important
|
|
63
|
+
* because we may need to negate the values in some code paths.
|
|
64
|
+
*/
|
|
65
|
+
struct pg_itm
|
|
66
|
+
{
|
|
67
|
+
int tm_usec;
|
|
68
|
+
int tm_sec;
|
|
69
|
+
int tm_min;
|
|
70
|
+
int64 tm_hour; /* needs to be wide */
|
|
71
|
+
int tm_mday;
|
|
72
|
+
int tm_mon;
|
|
73
|
+
int tm_year;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/*
|
|
77
|
+
* Data structure for decoding intervals. We could just use struct pg_itm,
|
|
78
|
+
* but then the requirement for tm_usec to be 64 bits would propagate to
|
|
79
|
+
* places where it's not really needed. Also, omitting the fields that
|
|
80
|
+
* aren't used during decoding seems like a good error-prevention measure.
|
|
81
|
+
*/
|
|
82
|
+
struct pg_itm_in
|
|
83
|
+
{
|
|
84
|
+
int64 tm_usec; /* needs to be wide */
|
|
85
|
+
int tm_mday;
|
|
86
|
+
int tm_mon;
|
|
87
|
+
int tm_year;
|
|
88
|
+
};
|
|
89
|
+
|
|
51
90
|
|
|
52
91
|
/* Limits on the "precision" option (typmod) for these data types */
|
|
53
92
|
#define MAX_TIMESTAMP_PRECISION 6
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and related modules.
|
|
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/executor/execdesc.h
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* support for the POSTGRES executor module
|
|
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/executor/executor.h
|
|
@@ -156,9 +156,6 @@ extern void ResetTupleHashTable(TupleHashTable hashtable);
|
|
|
156
156
|
*/
|
|
157
157
|
extern JunkFilter *ExecInitJunkFilter(List *targetList,
|
|
158
158
|
TupleTableSlot *slot);
|
|
159
|
-
extern JunkFilter *ExecInitJunkFilterInsertion(List *targetList,
|
|
160
|
-
TupleDesc cleanTupType,
|
|
161
|
-
TupleTableSlot *slot);
|
|
162
159
|
extern JunkFilter *ExecInitJunkFilterConversion(List *targetList,
|
|
163
160
|
TupleDesc cleanTupType,
|
|
164
161
|
TupleTableSlot *slot);
|
|
@@ -166,11 +163,24 @@ extern AttrNumber ExecFindJunkAttribute(JunkFilter *junkfilter,
|
|
|
166
163
|
const char *attrName);
|
|
167
164
|
extern AttrNumber ExecFindJunkAttributeInTlist(List *targetlist,
|
|
168
165
|
const char *attrName);
|
|
169
|
-
extern Datum ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno,
|
|
170
|
-
bool *isNull);
|
|
171
166
|
extern TupleTableSlot *ExecFilterJunk(JunkFilter *junkfilter,
|
|
172
167
|
TupleTableSlot *slot);
|
|
173
168
|
|
|
169
|
+
/*
|
|
170
|
+
* ExecGetJunkAttribute
|
|
171
|
+
*
|
|
172
|
+
* Given a junk filter's input tuple (slot) and a junk attribute's number
|
|
173
|
+
* previously found by ExecFindJunkAttribute, extract & return the value and
|
|
174
|
+
* isNull flag of the attribute.
|
|
175
|
+
*/
|
|
176
|
+
#ifndef FRONTEND
|
|
177
|
+
static inline Datum
|
|
178
|
+
ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno, bool *isNull)
|
|
179
|
+
{
|
|
180
|
+
Assert(attno > 0);
|
|
181
|
+
return slot_getattr(slot, attno, isNull);
|
|
182
|
+
}
|
|
183
|
+
#endif
|
|
174
184
|
|
|
175
185
|
/*
|
|
176
186
|
* prototypes from functions in execMain.c
|
|
@@ -193,8 +203,9 @@ extern void InitResultRelInfo(ResultRelInfo *resultRelInfo,
|
|
|
193
203
|
Index resultRelationIndex,
|
|
194
204
|
ResultRelInfo *partition_root_rri,
|
|
195
205
|
int instrument_options);
|
|
196
|
-
extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid
|
|
197
|
-
|
|
206
|
+
extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid,
|
|
207
|
+
ResultRelInfo *rootRelInfo);
|
|
208
|
+
extern List *ExecGetAncestorResultRels(EState *estate, ResultRelInfo *resultRelInfo);
|
|
198
209
|
extern void ExecConstraints(ResultRelInfo *resultRelInfo,
|
|
199
210
|
TupleTableSlot *slot, EState *estate);
|
|
200
211
|
extern bool ExecPartitionCheck(ResultRelInfo *resultRelInfo,
|
|
@@ -266,17 +277,25 @@ extern ExprState *ExecBuildGroupingEqual(TupleDesc ldesc, TupleDesc rdesc,
|
|
|
266
277
|
const Oid *eqfunctions,
|
|
267
278
|
const Oid *collations,
|
|
268
279
|
PlanState *parent);
|
|
280
|
+
extern ExprState *ExecBuildParamSetEqual(TupleDesc desc,
|
|
281
|
+
const TupleTableSlotOps *lops,
|
|
282
|
+
const TupleTableSlotOps *rops,
|
|
283
|
+
const Oid *eqfunctions,
|
|
284
|
+
const Oid *collations,
|
|
285
|
+
const List *param_exprs,
|
|
286
|
+
PlanState *parent);
|
|
269
287
|
extern ProjectionInfo *ExecBuildProjectionInfo(List *targetList,
|
|
270
288
|
ExprContext *econtext,
|
|
271
289
|
TupleTableSlot *slot,
|
|
272
290
|
PlanState *parent,
|
|
273
291
|
TupleDesc inputDesc);
|
|
274
|
-
extern ProjectionInfo *
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
292
|
+
extern ProjectionInfo *ExecBuildUpdateProjection(List *targetList,
|
|
293
|
+
bool evalTargetList,
|
|
294
|
+
List *targetColnos,
|
|
295
|
+
TupleDesc relDesc,
|
|
296
|
+
ExprContext *econtext,
|
|
297
|
+
TupleTableSlot *slot,
|
|
298
|
+
PlanState *parent);
|
|
280
299
|
extern ExprState *ExecPrepareExpr(Expr *node, EState *estate);
|
|
281
300
|
extern ExprState *ExecPrepareQual(List *qual, EState *estate);
|
|
282
301
|
extern ExprState *ExecPrepareCheck(List *qual, EState *estate);
|
|
@@ -442,7 +461,7 @@ typedef bool (*ExecScanRecheckMtd) (ScanState *node, TupleTableSlot *slot);
|
|
|
442
461
|
extern TupleTableSlot *ExecScan(ScanState *node, ExecScanAccessMtd accessMtd,
|
|
443
462
|
ExecScanRecheckMtd recheckMtd);
|
|
444
463
|
extern void ExecAssignScanProjectionInfo(ScanState *node);
|
|
445
|
-
extern void ExecAssignScanProjectionInfoWithVarno(ScanState *node,
|
|
464
|
+
extern void ExecAssignScanProjectionInfoWithVarno(ScanState *node, int varno);
|
|
446
465
|
extern void ExecScanReScan(ScanState *node);
|
|
447
466
|
|
|
448
467
|
/*
|
|
@@ -535,7 +554,7 @@ extern const TupleTableSlotOps *ExecGetResultSlotOps(PlanState *planstate,
|
|
|
535
554
|
extern void ExecAssignProjectionInfo(PlanState *planstate,
|
|
536
555
|
TupleDesc inputDesc);
|
|
537
556
|
extern void ExecConditionalAssignProjectionInfo(PlanState *planstate,
|
|
538
|
-
TupleDesc inputDesc,
|
|
557
|
+
TupleDesc inputDesc, int varno);
|
|
539
558
|
extern void ExecFreeExprContext(PlanState *planstate);
|
|
540
559
|
extern void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc);
|
|
541
560
|
extern void ExecCreateScanSlotFromOuterPlan(EState *estate,
|
|
@@ -547,6 +566,8 @@ extern bool ExecRelationIsTargetRelation(EState *estate, Index scanrelid);
|
|
|
547
566
|
extern Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags);
|
|
548
567
|
|
|
549
568
|
extern void ExecInitRangeTable(EState *estate, List *rangeTable);
|
|
569
|
+
extern void ExecCloseRangeTableRelations(EState *estate);
|
|
570
|
+
extern void ExecCloseResultRelations(EState *estate);
|
|
550
571
|
|
|
551
572
|
static inline RangeTblEntry *
|
|
552
573
|
exec_rt_fetch(Index rti, EState *estate)
|
|
@@ -555,6 +576,8 @@ exec_rt_fetch(Index rti, EState *estate)
|
|
|
555
576
|
}
|
|
556
577
|
|
|
557
578
|
extern Relation ExecGetRangeTableRelation(EState *estate, Index rti);
|
|
579
|
+
extern void ExecInitResultRelation(EState *estate, ResultRelInfo *resultRelInfo,
|
|
580
|
+
Index rti);
|
|
558
581
|
|
|
559
582
|
extern int executor_errposition(EState *estate, int location);
|
|
560
583
|
|
|
@@ -576,6 +599,7 @@ extern int ExecCleanTargetListLength(List *targetlist);
|
|
|
576
599
|
extern TupleTableSlot *ExecGetTriggerOldSlot(EState *estate, ResultRelInfo *relInfo);
|
|
577
600
|
extern TupleTableSlot *ExecGetTriggerNewSlot(EState *estate, ResultRelInfo *relInfo);
|
|
578
601
|
extern TupleTableSlot *ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo);
|
|
602
|
+
extern TupleConversionMap *ExecGetChildToRootMap(ResultRelInfo *resultRelInfo);
|
|
579
603
|
|
|
580
604
|
extern Bitmapset *ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate);
|
|
581
605
|
extern Bitmapset *ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate);
|
|
@@ -587,10 +611,15 @@ extern Bitmapset *ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate);
|
|
|
587
611
|
*/
|
|
588
612
|
extern void ExecOpenIndices(ResultRelInfo *resultRelInfo, bool speculative);
|
|
589
613
|
extern void ExecCloseIndices(ResultRelInfo *resultRelInfo);
|
|
590
|
-
extern List *ExecInsertIndexTuples(
|
|
614
|
+
extern List *ExecInsertIndexTuples(ResultRelInfo *resultRelInfo,
|
|
615
|
+
TupleTableSlot *slot, EState *estate,
|
|
616
|
+
bool update,
|
|
617
|
+
bool noDupErr,
|
|
591
618
|
bool *specConflict, List *arbiterIndexes);
|
|
592
|
-
extern bool ExecCheckIndexConstraints(
|
|
593
|
-
|
|
619
|
+
extern bool ExecCheckIndexConstraints(ResultRelInfo *resultRelInfo,
|
|
620
|
+
TupleTableSlot *slot,
|
|
621
|
+
EState *estate, ItemPointer conflictTid,
|
|
622
|
+
List *arbiterIndexes);
|
|
594
623
|
extern void check_exclusion_constraint(Relation heap, Relation index,
|
|
595
624
|
IndexInfo *indexInfo,
|
|
596
625
|
ItemPointer tupleid,
|
|
@@ -607,14 +636,28 @@ extern bool RelationFindReplTupleByIndex(Relation rel, Oid idxoid,
|
|
|
607
636
|
extern bool RelationFindReplTupleSeq(Relation rel, LockTupleMode lockmode,
|
|
608
637
|
TupleTableSlot *searchslot, TupleTableSlot *outslot);
|
|
609
638
|
|
|
610
|
-
extern void ExecSimpleRelationInsert(
|
|
611
|
-
|
|
639
|
+
extern void ExecSimpleRelationInsert(ResultRelInfo *resultRelInfo,
|
|
640
|
+
EState *estate, TupleTableSlot *slot);
|
|
641
|
+
extern void ExecSimpleRelationUpdate(ResultRelInfo *resultRelInfo,
|
|
642
|
+
EState *estate, EPQState *epqstate,
|
|
612
643
|
TupleTableSlot *searchslot, TupleTableSlot *slot);
|
|
613
|
-
extern void ExecSimpleRelationDelete(
|
|
644
|
+
extern void ExecSimpleRelationDelete(ResultRelInfo *resultRelInfo,
|
|
645
|
+
EState *estate, EPQState *epqstate,
|
|
614
646
|
TupleTableSlot *searchslot);
|
|
615
647
|
extern void CheckCmdReplicaIdentity(Relation rel, CmdType cmd);
|
|
616
648
|
|
|
617
649
|
extern void CheckSubscriptionRelkind(char relkind, const char *nspname,
|
|
618
650
|
const char *relname);
|
|
619
651
|
|
|
652
|
+
/*
|
|
653
|
+
* prototypes from functions in nodeModifyTable.c
|
|
654
|
+
*/
|
|
655
|
+
extern TupleTableSlot *ExecGetUpdateNewTuple(ResultRelInfo *relinfo,
|
|
656
|
+
TupleTableSlot *planSlot,
|
|
657
|
+
TupleTableSlot *oldSlot);
|
|
658
|
+
extern ResultRelInfo *ExecLookupResultRelByOid(ModifyTableState *node,
|
|
659
|
+
Oid resultoid,
|
|
660
|
+
bool missing_ok,
|
|
661
|
+
bool update_cache);
|
|
662
|
+
|
|
620
663
|
#endif /* EXECUTOR_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Declarations for execution of SQL-language functions.
|
|
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/executor/functions.h
|
|
@@ -17,8 +17,22 @@
|
|
|
17
17
|
#include "nodes/execnodes.h"
|
|
18
18
|
#include "tcop/dest.h"
|
|
19
19
|
|
|
20
|
-
/*
|
|
21
|
-
|
|
20
|
+
/*
|
|
21
|
+
* Data structure needed by the parser callback hooks to resolve parameter
|
|
22
|
+
* references during parsing of a SQL function's body. This is separate from
|
|
23
|
+
* SQLFunctionCache since we sometimes do parsing separately from execution.
|
|
24
|
+
*/
|
|
25
|
+
typedef struct SQLFunctionParseInfo
|
|
26
|
+
{
|
|
27
|
+
char *fname; /* function's name */
|
|
28
|
+
int nargs; /* number of input arguments */
|
|
29
|
+
Oid *argtypes; /* resolved types of input arguments */
|
|
30
|
+
char **argnames; /* names of input arguments; NULL if none */
|
|
31
|
+
/* Note that argnames[i] can be NULL, if some args are unnamed */
|
|
32
|
+
Oid collation; /* function's input collation, if known */
|
|
33
|
+
} SQLFunctionParseInfo;
|
|
34
|
+
|
|
35
|
+
typedef SQLFunctionParseInfo *SQLFunctionParseInfoPtr;
|
|
22
36
|
|
|
23
37
|
extern Datum fmgr_sql(PG_FUNCTION_ARGS);
|
|
24
38
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* definitions for run-time statistics collection
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
|
-
* Copyright (c) 2001-
|
|
7
|
+
* Copyright (c) 2001-2022, PostgreSQL Global Development Group
|
|
8
8
|
*
|
|
9
9
|
* src/include/executor/instrument.h
|
|
10
10
|
*
|
|
@@ -16,26 +16,40 @@
|
|
|
16
16
|
#include "portability/instr_time.h"
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
/*
|
|
20
|
+
* BufferUsage and WalUsage counters keep being incremented infinitely,
|
|
21
|
+
* i.e., must never be reset to zero, so that we can calculate how much
|
|
22
|
+
* the counters are incremented in an arbitrary period.
|
|
23
|
+
*/
|
|
19
24
|
typedef struct BufferUsage
|
|
20
25
|
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
instr_time blk_read_time; /* time spent reading */
|
|
32
|
-
instr_time blk_write_time; /* time spent writing */
|
|
26
|
+
int64 shared_blks_hit; /* # of shared buffer hits */
|
|
27
|
+
int64 shared_blks_read; /* # of shared disk blocks read */
|
|
28
|
+
int64 shared_blks_dirtied; /* # of shared blocks dirtied */
|
|
29
|
+
int64 shared_blks_written; /* # of shared disk blocks written */
|
|
30
|
+
int64 local_blks_hit; /* # of local buffer hits */
|
|
31
|
+
int64 local_blks_read; /* # of local disk blocks read */
|
|
32
|
+
int64 local_blks_dirtied; /* # of local blocks dirtied */
|
|
33
|
+
int64 local_blks_written; /* # of local disk blocks written */
|
|
34
|
+
int64 temp_blks_read; /* # of temp blocks read */
|
|
35
|
+
int64 temp_blks_written; /* # of temp blocks written */
|
|
36
|
+
instr_time blk_read_time; /* time spent reading blocks */
|
|
37
|
+
instr_time blk_write_time; /* time spent writing blocks */
|
|
38
|
+
instr_time temp_blk_read_time; /* time spent reading temp blocks */
|
|
39
|
+
instr_time temp_blk_write_time; /* time spent writing temp blocks */
|
|
33
40
|
} BufferUsage;
|
|
34
41
|
|
|
42
|
+
/*
|
|
43
|
+
* WalUsage tracks only WAL activity like WAL records generation that
|
|
44
|
+
* can be measured per query and is displayed by EXPLAIN command,
|
|
45
|
+
* pg_stat_statements extension, etc. It does not track other WAL activity
|
|
46
|
+
* like WAL writes that it's not worth measuring per query. That's tracked
|
|
47
|
+
* by WAL global statistics counters in WalStats, instead.
|
|
48
|
+
*/
|
|
35
49
|
typedef struct WalUsage
|
|
36
50
|
{
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
int64 wal_records; /* # of WAL records produced */
|
|
52
|
+
int64 wal_fpi; /* # of WAL full page images produced */
|
|
39
53
|
uint64 wal_bytes; /* size of WAL records produced */
|
|
40
54
|
} WalUsage;
|
|
41
55
|
|
|
@@ -55,6 +69,7 @@ typedef struct Instrumentation
|
|
|
55
69
|
bool need_timer; /* true if we need timer data */
|
|
56
70
|
bool need_bufusage; /* true if we need buffer usage data */
|
|
57
71
|
bool need_walusage; /* true if we need WAL usage data */
|
|
72
|
+
bool async_mode; /* true if node is in async mode */
|
|
58
73
|
/* Info about current plan cycle: */
|
|
59
74
|
bool running; /* true if we've completed first tuple */
|
|
60
75
|
instr_time starttime; /* start time of current iteration of node */
|
|
@@ -84,10 +99,12 @@ typedef struct WorkerInstrumentation
|
|
|
84
99
|
extern PGDLLIMPORT BufferUsage pgBufferUsage;
|
|
85
100
|
extern PGDLLIMPORT WalUsage pgWalUsage;
|
|
86
101
|
|
|
87
|
-
extern Instrumentation *InstrAlloc(int n, int instrument_options
|
|
102
|
+
extern Instrumentation *InstrAlloc(int n, int instrument_options,
|
|
103
|
+
bool async_mode);
|
|
88
104
|
extern void InstrInit(Instrumentation *instr, int instrument_options);
|
|
89
105
|
extern void InstrStartNode(Instrumentation *instr);
|
|
90
106
|
extern void InstrStopNode(Instrumentation *instr, double nTuples);
|
|
107
|
+
extern void InstrUpdateTupleCount(Instrumentation *instr, double nTuples);
|
|
91
108
|
extern void InstrEndLoop(Instrumentation *instr);
|
|
92
109
|
extern void InstrAggNode(Instrumentation *dst, Instrumentation *add);
|
|
93
110
|
extern void InstrStartParallelQuery(void);
|