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
data/lib/pg_query/treewalker.rb
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
module PgQuery
|
|
2
2
|
class ParserResult
|
|
3
|
+
def walk!
|
|
4
|
+
treewalker!(@tree) do |parent_node, parent_field, node, location|
|
|
5
|
+
yield(parent_node, parent_field, node, location)
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
3
9
|
private
|
|
4
10
|
|
|
5
11
|
def treewalker!(tree) # rubocop:disable Metrics/CyclomaticComplexity
|
data/lib/pg_query/truncate.rb
CHANGED
|
@@ -21,7 +21,7 @@ module PgQuery
|
|
|
21
21
|
next if truncation.length < 3
|
|
22
22
|
|
|
23
23
|
find_tree_location(tree, truncation.location) do |node, _k|
|
|
24
|
-
dummy_column_ref = PgQuery::Node.new(column_ref: PgQuery::ColumnRef.new(fields: [PgQuery::Node.new(string: PgQuery::String.new(
|
|
24
|
+
dummy_column_ref = PgQuery::Node.new(column_ref: PgQuery::ColumnRef.new(fields: [PgQuery::Node.new(string: PgQuery::String.new(sval: '…'))]))
|
|
25
25
|
case truncation.node_type
|
|
26
26
|
when :target_list
|
|
27
27
|
res_target_name = '…' if node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::OnConflictClause)
|
|
@@ -32,6 +32,12 @@ module PgQuery
|
|
|
32
32
|
)
|
|
33
33
|
when :where_clause
|
|
34
34
|
node.where_clause = dummy_column_ref
|
|
35
|
+
when :values_lists
|
|
36
|
+
node.values_lists.replace(
|
|
37
|
+
[
|
|
38
|
+
PgQuery::Node.new(list: PgQuery::List.new(items: [dummy_column_ref]))
|
|
39
|
+
]
|
|
40
|
+
)
|
|
35
41
|
when :ctequery
|
|
36
42
|
node.ctequery = PgQuery::Node.new(select_stmt: PgQuery::SelectStmt.new(where_clause: dummy_column_ref, op: :SETOP_NONE))
|
|
37
43
|
when :cols
|
|
@@ -58,7 +64,11 @@ module PgQuery
|
|
|
58
64
|
case k
|
|
59
65
|
when :target_list
|
|
60
66
|
next unless node.is_a?(PgQuery::SelectStmt) || node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::OnConflictClause)
|
|
61
|
-
length =
|
|
67
|
+
length = if node.is_a?(PgQuery::SelectStmt)
|
|
68
|
+
select_target_list_len(v)
|
|
69
|
+
else # UpdateStmt / OnConflictClause
|
|
70
|
+
update_target_list_len(v)
|
|
71
|
+
end
|
|
62
72
|
truncations << PossibleTruncation.new(location, :target_list, length, true)
|
|
63
73
|
when :where_clause
|
|
64
74
|
next unless node.is_a?(PgQuery::SelectStmt) || node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::DeleteStmt) ||
|
|
@@ -67,23 +77,59 @@ module PgQuery
|
|
|
67
77
|
|
|
68
78
|
length = PgQuery.deparse_expr(v).size
|
|
69
79
|
truncations << PossibleTruncation.new(location, :where_clause, length, false)
|
|
80
|
+
when :values_lists
|
|
81
|
+
length = select_values_lists_len(v)
|
|
82
|
+
truncations << PossibleTruncation.new(location, :values_lists, length, false)
|
|
70
83
|
when :ctequery
|
|
71
84
|
next unless node.is_a?(PgQuery::CommonTableExpr)
|
|
72
85
|
length = PgQuery.deparse_stmt(v[v.node.to_s]).size
|
|
73
86
|
truncations << PossibleTruncation.new(location, :ctequery, length, false)
|
|
74
87
|
when :cols
|
|
75
88
|
next unless node.is_a?(PgQuery::InsertStmt)
|
|
76
|
-
length =
|
|
77
|
-
PgQuery::InsertStmt.new(
|
|
78
|
-
relation: PgQuery::RangeVar.new(relname: 'x', inh: true),
|
|
79
|
-
cols: v.to_a
|
|
80
|
-
)
|
|
81
|
-
).size - 31 # "INSERT INTO x () DEFAULT VALUES".size
|
|
89
|
+
length = cols_len(v)
|
|
82
90
|
truncations << PossibleTruncation.new(location, :cols, length, true)
|
|
83
91
|
end
|
|
84
92
|
end
|
|
85
93
|
|
|
86
94
|
truncations
|
|
87
95
|
end
|
|
96
|
+
|
|
97
|
+
def select_target_list_len(target_list)
|
|
98
|
+
deparsed_len = PgQuery.deparse_stmt(
|
|
99
|
+
PgQuery::SelectStmt.new(
|
|
100
|
+
target_list: target_list.to_a, op: :SETOP_NONE
|
|
101
|
+
)
|
|
102
|
+
).size
|
|
103
|
+
deparsed_len - 7 # 'SELECT '.size
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def select_values_lists_len(values_lists)
|
|
107
|
+
deparsed_len = PgQuery.deparse_stmt(
|
|
108
|
+
PgQuery::SelectStmt.new(
|
|
109
|
+
values_lists: values_lists.to_a, op: :SETOP_NONE
|
|
110
|
+
)
|
|
111
|
+
).size
|
|
112
|
+
deparsed_len - 7 # 'SELECT '.size
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def update_target_list_len(target_list)
|
|
116
|
+
deparsed_len = PgQuery.deparse_stmt(
|
|
117
|
+
PgQuery::UpdateStmt.new(
|
|
118
|
+
target_list: target_list.to_a,
|
|
119
|
+
relation: PgQuery::RangeVar.new(relname: 'x', inh: true)
|
|
120
|
+
)
|
|
121
|
+
).size
|
|
122
|
+
deparsed_len - 13 # 'UPDATE x SET '.size
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def cols_len(cols)
|
|
126
|
+
deparsed_len = PgQuery.deparse_stmt(
|
|
127
|
+
PgQuery::InsertStmt.new(
|
|
128
|
+
relation: PgQuery::RangeVar.new(relname: 'x', inh: true),
|
|
129
|
+
cols: cols.to_a
|
|
130
|
+
)
|
|
131
|
+
).size
|
|
132
|
+
deparsed_len - 31 # "INSERT INTO x () DEFAULT VALUES".size
|
|
133
|
+
end
|
|
88
134
|
end
|
|
89
135
|
end
|
data/lib/pg_query/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pg_query
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1
|
|
4
|
+
version: 4.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lukas Fittl
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-05-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake-compiler
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 3.
|
|
75
|
+
version: 3.22.3
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 3.
|
|
82
|
+
version: 3.22.3
|
|
83
83
|
description: Parses SQL queries using a copy of the PostgreSQL server query parser
|
|
84
84
|
email: lukas@fittl.com
|
|
85
85
|
executables: []
|
|
@@ -118,6 +118,7 @@ files:
|
|
|
118
118
|
- ext/pg_query/include/access/sysattr.h
|
|
119
119
|
- ext/pg_query/include/access/table.h
|
|
120
120
|
- ext/pg_query/include/access/tableam.h
|
|
121
|
+
- ext/pg_query/include/access/toast_compression.h
|
|
121
122
|
- ext/pg_query/include/access/transam.h
|
|
122
123
|
- ext/pg_query/include/access/tupconvert.h
|
|
123
124
|
- ext/pg_query/include/access/tupdesc.h
|
|
@@ -127,10 +128,10 @@ files:
|
|
|
127
128
|
- ext/pg_query/include/access/xlog.h
|
|
128
129
|
- ext/pg_query/include/access/xlog_internal.h
|
|
129
130
|
- ext/pg_query/include/access/xlogdefs.h
|
|
130
|
-
- ext/pg_query/include/access/
|
|
131
|
+
- ext/pg_query/include/access/xlogprefetcher.h
|
|
131
132
|
- ext/pg_query/include/access/xlogreader.h
|
|
132
133
|
- ext/pg_query/include/access/xlogrecord.h
|
|
133
|
-
- ext/pg_query/include/
|
|
134
|
+
- ext/pg_query/include/access/xlogrecovery.h
|
|
134
135
|
- ext/pg_query/include/c.h
|
|
135
136
|
- ext/pg_query/include/catalog/catalog.h
|
|
136
137
|
- ext/pg_query/include/catalog/catversion.h
|
|
@@ -174,6 +175,8 @@ files:
|
|
|
174
175
|
- ext/pg_query/include/catalog/pg_operator_d.h
|
|
175
176
|
- ext/pg_query/include/catalog/pg_opfamily.h
|
|
176
177
|
- ext/pg_query/include/catalog/pg_opfamily_d.h
|
|
178
|
+
- ext/pg_query/include/catalog/pg_parameter_acl.h
|
|
179
|
+
- ext/pg_query/include/catalog/pg_parameter_acl_d.h
|
|
177
180
|
- ext/pg_query/include/catalog/pg_partitioned_table.h
|
|
178
181
|
- ext/pg_query/include/catalog/pg_partitioned_table_d.h
|
|
179
182
|
- ext/pg_query/include/catalog/pg_proc.h
|
|
@@ -217,9 +220,11 @@ files:
|
|
|
217
220
|
- ext/pg_query/include/common/ip.h
|
|
218
221
|
- ext/pg_query/include/common/keywords.h
|
|
219
222
|
- ext/pg_query/include/common/kwlookup.h
|
|
223
|
+
- ext/pg_query/include/common/pg_prng.h
|
|
220
224
|
- ext/pg_query/include/common/relpath.h
|
|
221
225
|
- ext/pg_query/include/common/string.h
|
|
222
226
|
- ext/pg_query/include/common/unicode_combining_table.h
|
|
227
|
+
- ext/pg_query/include/common/unicode_east_asian_fw_table.h
|
|
223
228
|
- ext/pg_query/include/datatype/timestamp.h
|
|
224
229
|
- ext/pg_query/include/executor/execdesc.h
|
|
225
230
|
- ext/pg_query/include/executor/executor.h
|
|
@@ -233,9 +238,11 @@ files:
|
|
|
233
238
|
- ext/pg_query/include/getaddrinfo.h
|
|
234
239
|
- ext/pg_query/include/jit/jit.h
|
|
235
240
|
- ext/pg_query/include/kwlist_d.h
|
|
241
|
+
- ext/pg_query/include/lib/dshash.h
|
|
236
242
|
- ext/pg_query/include/lib/ilist.h
|
|
237
243
|
- ext/pg_query/include/lib/pairingheap.h
|
|
238
244
|
- ext/pg_query/include/lib/simplehash.h
|
|
245
|
+
- ext/pg_query/include/lib/sort_template.h
|
|
239
246
|
- ext/pg_query/include/lib/stringinfo.h
|
|
240
247
|
- ext/pg_query/include/libpq/auth.h
|
|
241
248
|
- ext/pg_query/include/libpq/crypt.h
|
|
@@ -276,15 +283,12 @@ files:
|
|
|
276
283
|
- ext/pg_query/include/parser/gramparse.h
|
|
277
284
|
- ext/pg_query/include/parser/kwlist.h
|
|
278
285
|
- ext/pg_query/include/parser/parse_agg.h
|
|
279
|
-
- ext/pg_query/include/parser/parse_clause.h
|
|
280
286
|
- ext/pg_query/include/parser/parse_coerce.h
|
|
281
|
-
- ext/pg_query/include/parser/parse_collate.h
|
|
282
287
|
- ext/pg_query/include/parser/parse_expr.h
|
|
283
288
|
- ext/pg_query/include/parser/parse_func.h
|
|
284
289
|
- ext/pg_query/include/parser/parse_node.h
|
|
285
290
|
- ext/pg_query/include/parser/parse_oper.h
|
|
286
291
|
- ext/pg_query/include/parser/parse_relation.h
|
|
287
|
-
- ext/pg_query/include/parser/parse_target.h
|
|
288
292
|
- ext/pg_query/include/parser/parse_type.h
|
|
289
293
|
- ext/pg_query/include/parser/parser.h
|
|
290
294
|
- ext/pg_query/include/parser/parsetree.h
|
|
@@ -330,6 +334,7 @@ files:
|
|
|
330
334
|
- ext/pg_query/include/postgres.h
|
|
331
335
|
- ext/pg_query/include/postgres_ext.h
|
|
332
336
|
- ext/pg_query/include/postmaster/autovacuum.h
|
|
337
|
+
- ext/pg_query/include/postmaster/auxprocess.h
|
|
333
338
|
- ext/pg_query/include/postmaster/bgworker.h
|
|
334
339
|
- ext/pg_query/include/postmaster/bgworker_internals.h
|
|
335
340
|
- ext/pg_query/include/postmaster/bgwriter.h
|
|
@@ -337,6 +342,7 @@ files:
|
|
|
337
342
|
- ext/pg_query/include/postmaster/interrupt.h
|
|
338
343
|
- ext/pg_query/include/postmaster/pgarch.h
|
|
339
344
|
- ext/pg_query/include/postmaster/postmaster.h
|
|
345
|
+
- ext/pg_query/include/postmaster/startup.h
|
|
340
346
|
- ext/pg_query/include/postmaster/syslogger.h
|
|
341
347
|
- ext/pg_query/include/postmaster/walwriter.h
|
|
342
348
|
- ext/pg_query/include/protobuf-c.h
|
|
@@ -366,6 +372,7 @@ files:
|
|
|
366
372
|
- ext/pg_query/include/storage/dsm.h
|
|
367
373
|
- ext/pg_query/include/storage/dsm_impl.h
|
|
368
374
|
- ext/pg_query/include/storage/fd.h
|
|
375
|
+
- ext/pg_query/include/storage/fileset.h
|
|
369
376
|
- ext/pg_query/include/storage/ipc.h
|
|
370
377
|
- ext/pg_query/include/storage/item.h
|
|
371
378
|
- ext/pg_query/include/storage/itemid.h
|
|
@@ -383,6 +390,7 @@ files:
|
|
|
383
390
|
- ext/pg_query/include/storage/pmsignal.h
|
|
384
391
|
- ext/pg_query/include/storage/predicate.h
|
|
385
392
|
- ext/pg_query/include/storage/proc.h
|
|
393
|
+
- ext/pg_query/include/storage/procarray.h
|
|
386
394
|
- ext/pg_query/include/storage/proclist_types.h
|
|
387
395
|
- ext/pg_query/include/storage/procsignal.h
|
|
388
396
|
- ext/pg_query/include/storage/relfilenode.h
|
|
@@ -410,6 +418,8 @@ files:
|
|
|
410
418
|
- ext/pg_query/include/utils/acl.h
|
|
411
419
|
- ext/pg_query/include/utils/aclchk_internal.h
|
|
412
420
|
- ext/pg_query/include/utils/array.h
|
|
421
|
+
- ext/pg_query/include/utils/backend_progress.h
|
|
422
|
+
- ext/pg_query/include/utils/backend_status.h
|
|
413
423
|
- ext/pg_query/include/utils/builtins.h
|
|
414
424
|
- ext/pg_query/include/utils/bytea.h
|
|
415
425
|
- ext/pg_query/include/utils/catcache.h
|
|
@@ -438,12 +448,14 @@ files:
|
|
|
438
448
|
- ext/pg_query/include/utils/partcache.h
|
|
439
449
|
- ext/pg_query/include/utils/pg_locale.h
|
|
440
450
|
- ext/pg_query/include/utils/pg_lsn.h
|
|
451
|
+
- ext/pg_query/include/utils/pgstat_internal.h
|
|
441
452
|
- ext/pg_query/include/utils/pidfile.h
|
|
442
453
|
- ext/pg_query/include/utils/plancache.h
|
|
443
454
|
- ext/pg_query/include/utils/portal.h
|
|
444
455
|
- ext/pg_query/include/utils/probes.h
|
|
445
456
|
- ext/pg_query/include/utils/ps_status.h
|
|
446
457
|
- ext/pg_query/include/utils/queryenvironment.h
|
|
458
|
+
- ext/pg_query/include/utils/queryjumble.h
|
|
447
459
|
- ext/pg_query/include/utils/regproc.h
|
|
448
460
|
- ext/pg_query/include/utils/rel.h
|
|
449
461
|
- ext/pg_query/include/utils/relcache.h
|
|
@@ -463,6 +475,7 @@ files:
|
|
|
463
475
|
- ext/pg_query/include/utils/typcache.h
|
|
464
476
|
- ext/pg_query/include/utils/tzparser.h
|
|
465
477
|
- ext/pg_query/include/utils/varlena.h
|
|
478
|
+
- ext/pg_query/include/utils/wait_event.h
|
|
466
479
|
- ext/pg_query/include/utils/xml.h
|
|
467
480
|
- ext/pg_query/include/xxhash.h
|
|
468
481
|
- ext/pg_query/include/xxhash/xxhash.h
|
|
@@ -490,7 +503,6 @@ files:
|
|
|
490
503
|
- ext/pg_query/src_backend_catalog_namespace.c
|
|
491
504
|
- ext/pg_query/src_backend_catalog_pg_proc.c
|
|
492
505
|
- ext/pg_query/src_backend_commands_define.c
|
|
493
|
-
- ext/pg_query/src_backend_libpq_pqcomm.c
|
|
494
506
|
- ext/pg_query/src_backend_nodes_bitmapset.c
|
|
495
507
|
- ext/pg_query/src_backend_nodes_copyfuncs.c
|
|
496
508
|
- ext/pg_query/src_backend_nodes_equalfuncs.c
|
|
@@ -500,7 +512,6 @@ files:
|
|
|
500
512
|
- ext/pg_query/src_backend_nodes_nodeFuncs.c
|
|
501
513
|
- ext/pg_query/src_backend_nodes_value.c
|
|
502
514
|
- ext/pg_query/src_backend_parser_gram.c
|
|
503
|
-
- ext/pg_query/src_backend_parser_parse_expr.c
|
|
504
515
|
- ext/pg_query/src_backend_parser_parser.c
|
|
505
516
|
- ext/pg_query/src_backend_parser_scan.c
|
|
506
517
|
- ext/pg_query/src_backend_parser_scansup.c
|
|
@@ -508,6 +519,7 @@ files:
|
|
|
508
519
|
- ext/pg_query/src_backend_storage_ipc_ipc.c
|
|
509
520
|
- ext/pg_query/src_backend_storage_lmgr_s_lock.c
|
|
510
521
|
- ext/pg_query/src_backend_tcop_postgres.c
|
|
522
|
+
- ext/pg_query/src_backend_utils_activity_pgstat_database.c
|
|
511
523
|
- ext/pg_query/src_backend_utils_adt_datum.c
|
|
512
524
|
- ext/pg_query/src_backend_utils_adt_expandeddatum.c
|
|
513
525
|
- ext/pg_query/src_backend_utils_adt_format_type.c
|
|
@@ -526,6 +538,7 @@ files:
|
|
|
526
538
|
- ext/pg_query/src_common_keywords.c
|
|
527
539
|
- ext/pg_query/src_common_kwlist_d.h
|
|
528
540
|
- ext/pg_query/src_common_kwlookup.c
|
|
541
|
+
- ext/pg_query/src_common_pg_prng.c
|
|
529
542
|
- ext/pg_query/src_common_psprintf.c
|
|
530
543
|
- ext/pg_query/src_common_string.c
|
|
531
544
|
- ext/pg_query/src_common_stringinfo.c
|
|
@@ -537,12 +550,10 @@ files:
|
|
|
537
550
|
- ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h
|
|
538
551
|
- ext/pg_query/src_pl_plpgsql_src_pl_scanner.c
|
|
539
552
|
- ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h
|
|
540
|
-
- ext/pg_query/src_port_erand48.c
|
|
541
553
|
- ext/pg_query/src_port_pg_bitutils.c
|
|
542
554
|
- ext/pg_query/src_port_pgsleep.c
|
|
543
555
|
- ext/pg_query/src_port_pgstrcasecmp.c
|
|
544
556
|
- ext/pg_query/src_port_qsort.c
|
|
545
|
-
- ext/pg_query/src_port_random.c
|
|
546
557
|
- ext/pg_query/src_port_snprintf.c
|
|
547
558
|
- ext/pg_query/src_port_strerror.c
|
|
548
559
|
- ext/pg_query/src_port_strnlen.c
|
|
@@ -561,11 +572,11 @@ files:
|
|
|
561
572
|
- lib/pg_query/treewalker.rb
|
|
562
573
|
- lib/pg_query/truncate.rb
|
|
563
574
|
- lib/pg_query/version.rb
|
|
564
|
-
homepage:
|
|
575
|
+
homepage: https://github.com/pganalyze/pg_query
|
|
565
576
|
licenses:
|
|
566
577
|
- BSD-3-Clause
|
|
567
578
|
metadata: {}
|
|
568
|
-
post_install_message:
|
|
579
|
+
post_install_message:
|
|
569
580
|
rdoc_options:
|
|
570
581
|
- "--main"
|
|
571
582
|
- README.md
|
|
@@ -584,8 +595,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
584
595
|
- !ruby/object:Gem::Version
|
|
585
596
|
version: '0'
|
|
586
597
|
requirements: []
|
|
587
|
-
rubygems_version: 3.
|
|
588
|
-
signing_key:
|
|
598
|
+
rubygems_version: 3.1.6
|
|
599
|
+
signing_key:
|
|
589
600
|
specification_version: 4
|
|
590
601
|
summary: PostgreSQL query parsing and normalization library
|
|
591
602
|
test_files: []
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* xloginsert.h
|
|
3
|
-
*
|
|
4
|
-
* Functions for generating WAL records
|
|
5
|
-
*
|
|
6
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
7
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
-
*
|
|
9
|
-
* src/include/access/xloginsert.h
|
|
10
|
-
*/
|
|
11
|
-
#ifndef XLOGINSERT_H
|
|
12
|
-
#define XLOGINSERT_H
|
|
13
|
-
|
|
14
|
-
#include "access/rmgr.h"
|
|
15
|
-
#include "access/xlogdefs.h"
|
|
16
|
-
#include "storage/block.h"
|
|
17
|
-
#include "storage/buf.h"
|
|
18
|
-
#include "storage/relfilenode.h"
|
|
19
|
-
#include "utils/relcache.h"
|
|
20
|
-
|
|
21
|
-
/*
|
|
22
|
-
* The minimum size of the WAL construction working area. If you need to
|
|
23
|
-
* register more than XLR_NORMAL_MAX_BLOCK_ID block references or have more
|
|
24
|
-
* than XLR_NORMAL_RDATAS data chunks in a single WAL record, you must call
|
|
25
|
-
* XLogEnsureRecordSpace() first to allocate more working memory.
|
|
26
|
-
*/
|
|
27
|
-
#define XLR_NORMAL_MAX_BLOCK_ID 4
|
|
28
|
-
#define XLR_NORMAL_RDATAS 20
|
|
29
|
-
|
|
30
|
-
/* flags for XLogRegisterBuffer */
|
|
31
|
-
#define REGBUF_FORCE_IMAGE 0x01 /* force a full-page image */
|
|
32
|
-
#define REGBUF_NO_IMAGE 0x02 /* don't take a full-page image */
|
|
33
|
-
#define REGBUF_WILL_INIT (0x04 | 0x02) /* page will be re-initialized at
|
|
34
|
-
* replay (implies NO_IMAGE) */
|
|
35
|
-
#define REGBUF_STANDARD 0x08 /* page follows "standard" page layout,
|
|
36
|
-
* (data between pd_lower and pd_upper
|
|
37
|
-
* will be skipped) */
|
|
38
|
-
#define REGBUF_KEEP_DATA 0x10 /* include data even if a full-page image
|
|
39
|
-
* is taken */
|
|
40
|
-
|
|
41
|
-
/* prototypes for public functions in xloginsert.c: */
|
|
42
|
-
extern void XLogBeginInsert(void);
|
|
43
|
-
extern void XLogSetRecordFlags(uint8 flags);
|
|
44
|
-
extern XLogRecPtr XLogInsert(RmgrId rmid, uint8 info);
|
|
45
|
-
extern void XLogEnsureRecordSpace(int max_block_id, int ndatas);
|
|
46
|
-
extern void XLogRegisterData(char *data, int len);
|
|
47
|
-
extern void XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags);
|
|
48
|
-
extern void XLogRegisterBlock(uint8 block_id, RelFileNode *rnode,
|
|
49
|
-
ForkNumber forknum, BlockNumber blknum, char *page,
|
|
50
|
-
uint8 flags);
|
|
51
|
-
extern void XLogRegisterBufData(uint8 block_id, char *data, int len);
|
|
52
|
-
extern void XLogResetInsertion(void);
|
|
53
|
-
extern bool XLogCheckBufferNeedsBackup(Buffer buffer);
|
|
54
|
-
|
|
55
|
-
extern XLogRecPtr log_newpage(RelFileNode *rnode, ForkNumber forkNum,
|
|
56
|
-
BlockNumber blk, char *page, bool page_std);
|
|
57
|
-
extern XLogRecPtr log_newpage_buffer(Buffer buffer, bool page_std);
|
|
58
|
-
extern void log_newpage_range(Relation rel, ForkNumber forkNum,
|
|
59
|
-
BlockNumber startblk, BlockNumber endblk, bool page_std);
|
|
60
|
-
extern XLogRecPtr XLogSaveBufferForHint(Buffer buffer, bool buffer_std);
|
|
61
|
-
|
|
62
|
-
extern void InitXLogInsert(void);
|
|
63
|
-
|
|
64
|
-
#endif /* XLOGINSERT_H */
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* bootstrap.h
|
|
4
|
-
* include file for the bootstrapping code
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/bootstrap/bootstrap.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef BOOTSTRAP_H
|
|
15
|
-
#define BOOTSTRAP_H
|
|
16
|
-
|
|
17
|
-
#include "nodes/execnodes.h"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/*
|
|
21
|
-
* MAXATTR is the maximum number of attributes in a relation supported
|
|
22
|
-
* at bootstrap time (i.e., the max possible in a system table).
|
|
23
|
-
*/
|
|
24
|
-
#define MAXATTR 40
|
|
25
|
-
|
|
26
|
-
#define BOOTCOL_NULL_AUTO 1
|
|
27
|
-
#define BOOTCOL_NULL_FORCE_NULL 2
|
|
28
|
-
#define BOOTCOL_NULL_FORCE_NOT_NULL 3
|
|
29
|
-
|
|
30
|
-
extern Relation boot_reldesc;
|
|
31
|
-
extern Form_pg_attribute attrtypes[MAXATTR];
|
|
32
|
-
extern int numattr;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
extern void AuxiliaryProcessMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
36
|
-
|
|
37
|
-
extern void closerel(char *name);
|
|
38
|
-
extern void boot_openrel(char *name);
|
|
39
|
-
|
|
40
|
-
extern void DefineAttr(char *name, char *type, int attnum, int nullness);
|
|
41
|
-
extern void InsertOneTuple(void);
|
|
42
|
-
extern void InsertOneValue(char *value, int i);
|
|
43
|
-
extern void InsertOneNull(int i);
|
|
44
|
-
|
|
45
|
-
extern void index_register(Oid heap, Oid ind, IndexInfo *indexInfo);
|
|
46
|
-
extern void build_indices(void);
|
|
47
|
-
|
|
48
|
-
extern void boot_get_type_io_data(Oid typid,
|
|
49
|
-
int16 *typlen,
|
|
50
|
-
bool *typbyval,
|
|
51
|
-
char *typalign,
|
|
52
|
-
char *typdelim,
|
|
53
|
-
Oid *typioparam,
|
|
54
|
-
Oid *typinput,
|
|
55
|
-
Oid *typoutput);
|
|
56
|
-
|
|
57
|
-
extern int boot_yyparse(void);
|
|
58
|
-
|
|
59
|
-
extern int boot_yylex(void);
|
|
60
|
-
extern void boot_yyerror(const char *str) pg_attribute_noreturn();
|
|
61
|
-
|
|
62
|
-
#endif /* BOOTSTRAP_H */
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* parse_clause.h
|
|
4
|
-
* handle clauses in parser
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/parser/parse_clause.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef PARSE_CLAUSE_H
|
|
15
|
-
#define PARSE_CLAUSE_H
|
|
16
|
-
|
|
17
|
-
#include "parser/parse_node.h"
|
|
18
|
-
|
|
19
|
-
extern void transformFromClause(ParseState *pstate, List *frmList);
|
|
20
|
-
extern int setTargetTable(ParseState *pstate, RangeVar *relation,
|
|
21
|
-
bool inh, bool alsoSource, AclMode requiredPerms);
|
|
22
|
-
|
|
23
|
-
extern Node *transformWhereClause(ParseState *pstate, Node *clause,
|
|
24
|
-
ParseExprKind exprKind, const char *constructName);
|
|
25
|
-
extern Node *transformLimitClause(ParseState *pstate, Node *clause,
|
|
26
|
-
ParseExprKind exprKind, const char *constructName,
|
|
27
|
-
LimitOption limitOption);
|
|
28
|
-
extern List *transformGroupClause(ParseState *pstate, List *grouplist,
|
|
29
|
-
List **groupingSets,
|
|
30
|
-
List **targetlist, List *sortClause,
|
|
31
|
-
ParseExprKind exprKind, bool useSQL99);
|
|
32
|
-
extern List *transformSortClause(ParseState *pstate, List *orderlist,
|
|
33
|
-
List **targetlist, ParseExprKind exprKind,
|
|
34
|
-
bool useSQL99);
|
|
35
|
-
|
|
36
|
-
extern List *transformWindowDefinitions(ParseState *pstate,
|
|
37
|
-
List *windowdefs,
|
|
38
|
-
List **targetlist);
|
|
39
|
-
|
|
40
|
-
extern List *transformDistinctClause(ParseState *pstate,
|
|
41
|
-
List **targetlist, List *sortClause, bool is_agg);
|
|
42
|
-
extern List *transformDistinctOnClause(ParseState *pstate, List *distinctlist,
|
|
43
|
-
List **targetlist, List *sortClause);
|
|
44
|
-
extern void transformOnConflictArbiter(ParseState *pstate,
|
|
45
|
-
OnConflictClause *onConflictClause,
|
|
46
|
-
List **arbiterExpr, Node **arbiterWhere,
|
|
47
|
-
Oid *constraint);
|
|
48
|
-
|
|
49
|
-
extern List *addTargetToSortList(ParseState *pstate, TargetEntry *tle,
|
|
50
|
-
List *sortlist, List *targetlist, SortBy *sortby);
|
|
51
|
-
extern Index assignSortGroupRef(TargetEntry *tle, List *tlist);
|
|
52
|
-
extern bool targetIsInSortList(TargetEntry *tle, Oid sortop, List *sortList);
|
|
53
|
-
|
|
54
|
-
#endif /* PARSE_CLAUSE_H */
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* parse_collate.h
|
|
4
|
-
* Routines for assigning collation information.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/parser/parse_collate.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef PARSE_COLLATE_H
|
|
15
|
-
#define PARSE_COLLATE_H
|
|
16
|
-
|
|
17
|
-
#include "parser/parse_node.h"
|
|
18
|
-
|
|
19
|
-
extern void assign_query_collations(ParseState *pstate, Query *query);
|
|
20
|
-
|
|
21
|
-
extern void assign_list_collations(ParseState *pstate, List *exprs);
|
|
22
|
-
|
|
23
|
-
extern void assign_expr_collations(ParseState *pstate, Node *expr);
|
|
24
|
-
|
|
25
|
-
extern Oid select_common_collation(ParseState *pstate, List *exprs, bool none_ok);
|
|
26
|
-
|
|
27
|
-
#endif /* PARSE_COLLATE_H */
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* parse_target.h
|
|
4
|
-
* handle target lists
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
8
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
|
-
*
|
|
10
|
-
* src/include/parser/parse_target.h
|
|
11
|
-
*
|
|
12
|
-
*-------------------------------------------------------------------------
|
|
13
|
-
*/
|
|
14
|
-
#ifndef PARSE_TARGET_H
|
|
15
|
-
#define PARSE_TARGET_H
|
|
16
|
-
|
|
17
|
-
#include "parser/parse_node.h"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
extern List *transformTargetList(ParseState *pstate, List *targetlist,
|
|
21
|
-
ParseExprKind exprKind);
|
|
22
|
-
extern List *transformExpressionList(ParseState *pstate, List *exprlist,
|
|
23
|
-
ParseExprKind exprKind, bool allowDefault);
|
|
24
|
-
extern void resolveTargetListUnknowns(ParseState *pstate, List *targetlist);
|
|
25
|
-
extern void markTargetListOrigins(ParseState *pstate, List *targetlist);
|
|
26
|
-
extern TargetEntry *transformTargetEntry(ParseState *pstate,
|
|
27
|
-
Node *node, Node *expr, ParseExprKind exprKind,
|
|
28
|
-
char *colname, bool resjunk);
|
|
29
|
-
extern Expr *transformAssignedExpr(ParseState *pstate, Expr *expr,
|
|
30
|
-
ParseExprKind exprKind,
|
|
31
|
-
const char *colname,
|
|
32
|
-
int attrno,
|
|
33
|
-
List *indirection,
|
|
34
|
-
int location);
|
|
35
|
-
extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,
|
|
36
|
-
char *colname, int attrno,
|
|
37
|
-
List *indirection,
|
|
38
|
-
int location);
|
|
39
|
-
extern List *checkInsertTargets(ParseState *pstate, List *cols,
|
|
40
|
-
List **attrnos);
|
|
41
|
-
extern TupleDesc expandRecordVariable(ParseState *pstate, Var *var,
|
|
42
|
-
int levelsup);
|
|
43
|
-
extern char *FigureColname(Node *node);
|
|
44
|
-
extern char *FigureIndexColname(Node *node);
|
|
45
|
-
|
|
46
|
-
#endif /* PARSE_TARGET_H */
|