gitlab-pg_query 1.3.1 → 2.0.4
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 +217 -99
- data/README.md +92 -69
- data/Rakefile +85 -5
- data/ext/pg_query/extconf.rb +3 -40
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +246 -0
- data/ext/pg_query/include/access/attmap.h +52 -0
- data/ext/pg_query/include/access/attnum.h +64 -0
- data/ext/pg_query/include/access/clog.h +61 -0
- data/ext/pg_query/include/access/commit_ts.h +77 -0
- data/ext/pg_query/include/access/detoast.h +92 -0
- data/ext/pg_query/include/access/genam.h +228 -0
- data/ext/pg_query/include/access/gin.h +78 -0
- data/ext/pg_query/include/access/htup.h +89 -0
- data/ext/pg_query/include/access/htup_details.h +819 -0
- data/ext/pg_query/include/access/itup.h +161 -0
- data/ext/pg_query/include/access/parallel.h +82 -0
- data/ext/pg_query/include/access/printtup.h +35 -0
- data/ext/pg_query/include/access/relation.h +28 -0
- data/ext/pg_query/include/access/relscan.h +176 -0
- data/ext/pg_query/include/access/rmgr.h +35 -0
- data/ext/pg_query/include/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/access/sdir.h +58 -0
- data/ext/pg_query/include/access/skey.h +151 -0
- data/ext/pg_query/include/access/stratnum.h +83 -0
- data/ext/pg_query/include/access/sysattr.h +29 -0
- data/ext/pg_query/include/access/table.h +27 -0
- data/ext/pg_query/include/access/tableam.h +1825 -0
- data/ext/pg_query/include/access/transam.h +265 -0
- data/ext/pg_query/include/access/tupconvert.h +51 -0
- data/ext/pg_query/include/access/tupdesc.h +154 -0
- data/ext/pg_query/include/access/tupmacs.h +247 -0
- data/ext/pg_query/include/access/twophase.h +61 -0
- data/ext/pg_query/include/access/xact.h +463 -0
- data/ext/pg_query/include/access/xlog.h +398 -0
- data/ext/pg_query/include/access/xlog_internal.h +330 -0
- data/ext/pg_query/include/access/xlogdefs.h +109 -0
- data/ext/pg_query/include/access/xloginsert.h +64 -0
- data/ext/pg_query/include/access/xlogreader.h +327 -0
- data/ext/pg_query/include/access/xlogrecord.h +227 -0
- data/ext/pg_query/include/bootstrap/bootstrap.h +62 -0
- data/ext/pg_query/include/c.h +1322 -0
- data/ext/pg_query/include/catalog/catalog.h +42 -0
- data/ext/pg_query/include/catalog/catversion.h +58 -0
- data/ext/pg_query/include/catalog/dependency.h +275 -0
- data/ext/pg_query/include/catalog/genbki.h +64 -0
- data/ext/pg_query/include/catalog/index.h +199 -0
- data/ext/pg_query/include/catalog/indexing.h +366 -0
- data/ext/pg_query/include/catalog/namespace.h +188 -0
- data/ext/pg_query/include/catalog/objectaccess.h +197 -0
- data/ext/pg_query/include/catalog/objectaddress.h +84 -0
- data/ext/pg_query/include/catalog/pg_aggregate.h +176 -0
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +77 -0
- data/ext/pg_query/include/catalog/pg_am.h +60 -0
- data/ext/pg_query/include/catalog/pg_am_d.h +45 -0
- data/ext/pg_query/include/catalog/pg_attribute.h +204 -0
- data/ext/pg_query/include/catalog/pg_attribute_d.h +59 -0
- data/ext/pg_query/include/catalog/pg_authid.h +58 -0
- data/ext/pg_query/include/catalog/pg_authid_d.h +49 -0
- data/ext/pg_query/include/catalog/pg_class.h +200 -0
- data/ext/pg_query/include/catalog/pg_class_d.h +103 -0
- data/ext/pg_query/include/catalog/pg_collation.h +73 -0
- data/ext/pg_query/include/catalog/pg_collation_d.h +45 -0
- data/ext/pg_query/include/catalog/pg_constraint.h +247 -0
- data/ext/pg_query/include/catalog/pg_constraint_d.h +67 -0
- data/ext/pg_query/include/catalog/pg_control.h +250 -0
- data/ext/pg_query/include/catalog/pg_conversion.h +72 -0
- data/ext/pg_query/include/catalog/pg_conversion_d.h +35 -0
- data/ext/pg_query/include/catalog/pg_depend.h +73 -0
- data/ext/pg_query/include/catalog/pg_depend_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_event_trigger.h +51 -0
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_index.h +80 -0
- data/ext/pg_query/include/catalog/pg_index_d.h +56 -0
- data/ext/pg_query/include/catalog/pg_language.h +67 -0
- data/ext/pg_query/include/catalog/pg_language_d.h +39 -0
- data/ext/pg_query/include/catalog/pg_namespace.h +59 -0
- data/ext/pg_query/include/catalog/pg_namespace_d.h +34 -0
- data/ext/pg_query/include/catalog/pg_opclass.h +85 -0
- data/ext/pg_query/include/catalog/pg_opclass_d.h +49 -0
- data/ext/pg_query/include/catalog/pg_operator.h +102 -0
- data/ext/pg_query/include/catalog/pg_operator_d.h +106 -0
- data/ext/pg_query/include/catalog/pg_opfamily.h +60 -0
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +47 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +63 -0
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +35 -0
- data/ext/pg_query/include/catalog/pg_proc.h +211 -0
- data/ext/pg_query/include/catalog/pg_proc_d.h +99 -0
- data/ext/pg_query/include/catalog/pg_publication.h +115 -0
- data/ext/pg_query/include/catalog/pg_publication_d.h +36 -0
- data/ext/pg_query/include/catalog/pg_replication_origin.h +57 -0
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +29 -0
- data/ext/pg_query/include/catalog/pg_statistic.h +275 -0
- data/ext/pg_query/include/catalog/pg_statistic_d.h +194 -0
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +74 -0
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +40 -0
- data/ext/pg_query/include/catalog/pg_transform.h +45 -0
- data/ext/pg_query/include/catalog/pg_transform_d.h +32 -0
- data/ext/pg_query/include/catalog/pg_trigger.h +137 -0
- data/ext/pg_query/include/catalog/pg_trigger_d.h +106 -0
- data/ext/pg_query/include/catalog/pg_ts_config.h +50 -0
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +32 -0
- data/ext/pg_query/include/catalog/pg_ts_dict.h +54 -0
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +33 -0
- data/ext/pg_query/include/catalog/pg_ts_parser.h +57 -0
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +35 -0
- data/ext/pg_query/include/catalog/pg_ts_template.h +48 -0
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +32 -0
- data/ext/pg_query/include/catalog/pg_type.h +372 -0
- data/ext/pg_query/include/catalog/pg_type_d.h +285 -0
- data/ext/pg_query/include/catalog/storage.h +48 -0
- data/ext/pg_query/include/commands/async.h +54 -0
- data/ext/pg_query/include/commands/dbcommands.h +35 -0
- data/ext/pg_query/include/commands/defrem.h +173 -0
- data/ext/pg_query/include/commands/event_trigger.h +88 -0
- data/ext/pg_query/include/commands/explain.h +127 -0
- data/ext/pg_query/include/commands/prepare.h +61 -0
- data/ext/pg_query/include/commands/tablespace.h +67 -0
- data/ext/pg_query/include/commands/trigger.h +277 -0
- data/ext/pg_query/include/commands/user.h +37 -0
- data/ext/pg_query/include/commands/vacuum.h +293 -0
- data/ext/pg_query/include/commands/variable.h +38 -0
- data/ext/pg_query/include/common/file_perm.h +56 -0
- data/ext/pg_query/include/common/hashfn.h +104 -0
- data/ext/pg_query/include/common/ip.h +37 -0
- data/ext/pg_query/include/common/keywords.h +33 -0
- data/ext/pg_query/include/common/kwlookup.h +44 -0
- data/ext/pg_query/include/common/relpath.h +90 -0
- data/ext/pg_query/include/common/string.h +19 -0
- data/ext/pg_query/include/common/unicode_combining_table.h +196 -0
- data/ext/pg_query/include/datatype/timestamp.h +197 -0
- data/ext/pg_query/include/executor/execdesc.h +70 -0
- data/ext/pg_query/include/executor/executor.h +614 -0
- data/ext/pg_query/include/executor/functions.h +41 -0
- data/ext/pg_query/include/executor/instrument.h +101 -0
- data/ext/pg_query/include/executor/spi.h +175 -0
- data/ext/pg_query/include/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/executor/tuptable.h +487 -0
- data/ext/pg_query/include/fmgr.h +775 -0
- data/ext/pg_query/include/funcapi.h +348 -0
- data/ext/pg_query/include/getaddrinfo.h +162 -0
- data/ext/pg_query/include/jit/jit.h +105 -0
- data/ext/pg_query/include/kwlist_d.h +1072 -0
- data/ext/pg_query/include/lib/ilist.h +727 -0
- data/ext/pg_query/include/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/lib/simplehash.h +1059 -0
- data/ext/pg_query/include/lib/stringinfo.h +161 -0
- data/ext/pg_query/include/libpq/auth.h +29 -0
- data/ext/pg_query/include/libpq/crypt.h +46 -0
- data/ext/pg_query/include/libpq/hba.h +140 -0
- data/ext/pg_query/include/libpq/libpq-be.h +326 -0
- data/ext/pg_query/include/libpq/libpq.h +133 -0
- data/ext/pg_query/include/libpq/pqcomm.h +208 -0
- data/ext/pg_query/include/libpq/pqformat.h +210 -0
- data/ext/pg_query/include/libpq/pqsignal.h +42 -0
- data/ext/pg_query/include/mb/pg_wchar.h +672 -0
- data/ext/pg_query/include/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/miscadmin.h +476 -0
- data/ext/pg_query/include/nodes/bitmapset.h +122 -0
- data/ext/pg_query/include/nodes/execnodes.h +2520 -0
- data/ext/pg_query/include/nodes/extensible.h +160 -0
- data/ext/pg_query/include/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/nodes/makefuncs.h +108 -0
- data/ext/pg_query/include/nodes/memnodes.h +108 -0
- data/ext/pg_query/include/nodes/nodeFuncs.h +162 -0
- data/ext/pg_query/include/nodes/nodes.h +842 -0
- data/ext/pg_query/include/nodes/params.h +170 -0
- data/ext/pg_query/include/nodes/parsenodes.h +3579 -0
- data/ext/pg_query/include/nodes/pathnodes.h +2556 -0
- data/ext/pg_query/include/nodes/pg_list.h +605 -0
- data/ext/pg_query/include/nodes/plannodes.h +1251 -0
- data/ext/pg_query/include/nodes/primnodes.h +1541 -0
- data/ext/pg_query/include/nodes/print.h +34 -0
- data/ext/pg_query/include/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/nodes/value.h +61 -0
- data/ext/pg_query/include/optimizer/cost.h +206 -0
- data/ext/pg_query/include/optimizer/geqo.h +88 -0
- data/ext/pg_query/include/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/optimizer/optimizer.h +199 -0
- data/ext/pg_query/include/optimizer/paths.h +249 -0
- data/ext/pg_query/include/optimizer/planmain.h +119 -0
- data/ext/pg_query/include/parser/analyze.h +49 -0
- data/ext/pg_query/include/parser/gram.h +1067 -0
- data/ext/pg_query/include/parser/gramparse.h +75 -0
- data/ext/pg_query/include/parser/kwlist.h +477 -0
- data/ext/pg_query/include/parser/parse_agg.h +68 -0
- data/ext/pg_query/include/parser/parse_clause.h +54 -0
- data/ext/pg_query/include/parser/parse_coerce.h +97 -0
- data/ext/pg_query/include/parser/parse_collate.h +27 -0
- data/ext/pg_query/include/parser/parse_expr.h +26 -0
- data/ext/pg_query/include/parser/parse_func.h +73 -0
- data/ext/pg_query/include/parser/parse_node.h +327 -0
- data/ext/pg_query/include/parser/parse_oper.h +67 -0
- data/ext/pg_query/include/parser/parse_relation.h +123 -0
- data/ext/pg_query/include/parser/parse_target.h +46 -0
- data/ext/pg_query/include/parser/parse_type.h +60 -0
- data/ext/pg_query/include/parser/parser.h +41 -0
- data/ext/pg_query/include/parser/parsetree.h +61 -0
- data/ext/pg_query/include/parser/scanner.h +152 -0
- data/ext/pg_query/include/parser/scansup.h +30 -0
- data/ext/pg_query/include/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/pg_config.h +989 -0
- data/ext/pg_query/include/pg_config_ext.h +8 -0
- data/ext/pg_query/include/pg_config_manual.h +350 -0
- data/ext/pg_query/include/pg_config_os.h +8 -0
- data/ext/pg_query/include/pg_getopt.h +56 -0
- data/ext/pg_query/include/pg_query.h +121 -0
- data/ext/pg_query/include/pg_query_enum_defs.c +2454 -0
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +875 -0
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +12413 -0
- data/ext/pg_query/include/pg_query_json_helper.c +61 -0
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +686 -0
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +2437 -0
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +222 -0
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +2878 -0
- data/ext/pg_query/include/pg_trace.h +17 -0
- data/ext/pg_query/include/pgstat.h +1487 -0
- data/ext/pg_query/include/pgtime.h +84 -0
- data/ext/pg_query/include/pl_gram.h +385 -0
- data/ext/pg_query/include/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/plerrcodes.h +990 -0
- data/ext/pg_query/include/plpgsql.h +1347 -0
- data/ext/pg_query/include/port.h +524 -0
- data/ext/pg_query/include/port/atomics.h +524 -0
- data/ext/pg_query/include/port/atomics/arch-arm.h +26 -0
- data/ext/pg_query/include/port/atomics/arch-ppc.h +254 -0
- data/ext/pg_query/include/port/atomics/arch-x86.h +252 -0
- data/ext/pg_query/include/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/port/atomics/generic-gcc.h +286 -0
- data/ext/pg_query/include/port/atomics/generic.h +401 -0
- data/ext/pg_query/include/port/pg_bitutils.h +226 -0
- data/ext/pg_query/include/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/port/pg_crc32c.h +101 -0
- data/ext/pg_query/include/portability/instr_time.h +256 -0
- data/ext/pg_query/include/postgres.h +764 -0
- data/ext/pg_query/include/postgres_ext.h +74 -0
- data/ext/pg_query/include/postmaster/autovacuum.h +83 -0
- data/ext/pg_query/include/postmaster/bgworker.h +161 -0
- data/ext/pg_query/include/postmaster/bgworker_internals.h +64 -0
- data/ext/pg_query/include/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postmaster/fork_process.h +17 -0
- data/ext/pg_query/include/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postmaster/pgarch.h +39 -0
- data/ext/pg_query/include/postmaster/postmaster.h +77 -0
- data/ext/pg_query/include/postmaster/syslogger.h +98 -0
- data/ext/pg_query/include/postmaster/walwriter.h +21 -0
- data/ext/pg_query/include/protobuf-c.h +1106 -0
- data/ext/pg_query/include/protobuf-c/protobuf-c.h +1106 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +10846 -0
- data/ext/pg_query/include/protobuf/pg_query.pb.h +124718 -0
- data/ext/pg_query/include/regex/regex.h +184 -0
- data/ext/pg_query/include/replication/logicallauncher.h +31 -0
- data/ext/pg_query/include/replication/logicalproto.h +110 -0
- data/ext/pg_query/include/replication/logicalworker.h +19 -0
- data/ext/pg_query/include/replication/origin.h +73 -0
- data/ext/pg_query/include/replication/reorderbuffer.h +467 -0
- data/ext/pg_query/include/replication/slot.h +219 -0
- data/ext/pg_query/include/replication/syncrep.h +115 -0
- data/ext/pg_query/include/replication/walreceiver.h +340 -0
- data/ext/pg_query/include/replication/walsender.h +74 -0
- data/ext/pg_query/include/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/rewrite/rewriteHandler.h +40 -0
- data/ext/pg_query/include/rewrite/rewriteManip.h +87 -0
- data/ext/pg_query/include/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/storage/backendid.h +37 -0
- data/ext/pg_query/include/storage/block.h +121 -0
- data/ext/pg_query/include/storage/buf.h +46 -0
- data/ext/pg_query/include/storage/bufmgr.h +292 -0
- data/ext/pg_query/include/storage/bufpage.h +459 -0
- data/ext/pg_query/include/storage/condition_variable.h +62 -0
- data/ext/pg_query/include/storage/dsm.h +61 -0
- data/ext/pg_query/include/storage/dsm_impl.h +75 -0
- data/ext/pg_query/include/storage/fd.h +168 -0
- data/ext/pg_query/include/storage/ipc.h +81 -0
- data/ext/pg_query/include/storage/item.h +19 -0
- data/ext/pg_query/include/storage/itemid.h +184 -0
- data/ext/pg_query/include/storage/itemptr.h +206 -0
- data/ext/pg_query/include/storage/large_object.h +100 -0
- data/ext/pg_query/include/storage/latch.h +190 -0
- data/ext/pg_query/include/storage/lmgr.h +114 -0
- data/ext/pg_query/include/storage/lock.h +612 -0
- data/ext/pg_query/include/storage/lockdefs.h +59 -0
- data/ext/pg_query/include/storage/lwlock.h +232 -0
- data/ext/pg_query/include/storage/lwlocknames.h +51 -0
- data/ext/pg_query/include/storage/off.h +57 -0
- data/ext/pg_query/include/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/storage/pg_shmem.h +90 -0
- data/ext/pg_query/include/storage/pmsignal.h +94 -0
- data/ext/pg_query/include/storage/predicate.h +87 -0
- data/ext/pg_query/include/storage/proc.h +333 -0
- data/ext/pg_query/include/storage/proclist_types.h +51 -0
- data/ext/pg_query/include/storage/procsignal.h +75 -0
- data/ext/pg_query/include/storage/relfilenode.h +99 -0
- data/ext/pg_query/include/storage/s_lock.h +1047 -0
- data/ext/pg_query/include/storage/sharedfileset.h +45 -0
- data/ext/pg_query/include/storage/shm_mq.h +85 -0
- data/ext/pg_query/include/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/storage/shmem.h +81 -0
- data/ext/pg_query/include/storage/sinval.h +153 -0
- data/ext/pg_query/include/storage/sinvaladt.h +43 -0
- data/ext/pg_query/include/storage/smgr.h +109 -0
- data/ext/pg_query/include/storage/spin.h +77 -0
- data/ext/pg_query/include/storage/standby.h +91 -0
- data/ext/pg_query/include/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/storage/sync.h +62 -0
- data/ext/pg_query/include/tcop/cmdtag.h +58 -0
- data/ext/pg_query/include/tcop/cmdtaglist.h +217 -0
- data/ext/pg_query/include/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/tcop/dest.h +149 -0
- data/ext/pg_query/include/tcop/fastpath.h +21 -0
- data/ext/pg_query/include/tcop/pquery.h +45 -0
- data/ext/pg_query/include/tcop/tcopprot.h +89 -0
- data/ext/pg_query/include/tcop/utility.h +108 -0
- data/ext/pg_query/include/tsearch/ts_cache.h +98 -0
- data/ext/pg_query/include/utils/acl.h +312 -0
- data/ext/pg_query/include/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/utils/array.h +458 -0
- data/ext/pg_query/include/utils/builtins.h +127 -0
- data/ext/pg_query/include/utils/bytea.h +27 -0
- data/ext/pg_query/include/utils/catcache.h +231 -0
- data/ext/pg_query/include/utils/date.h +90 -0
- data/ext/pg_query/include/utils/datetime.h +343 -0
- data/ext/pg_query/include/utils/datum.h +68 -0
- data/ext/pg_query/include/utils/dsa.h +123 -0
- data/ext/pg_query/include/utils/dynahash.h +19 -0
- data/ext/pg_query/include/utils/elog.h +439 -0
- data/ext/pg_query/include/utils/errcodes.h +352 -0
- data/ext/pg_query/include/utils/expandeddatum.h +159 -0
- data/ext/pg_query/include/utils/expandedrecord.h +231 -0
- data/ext/pg_query/include/utils/float.h +356 -0
- data/ext/pg_query/include/utils/fmgroids.h +2657 -0
- data/ext/pg_query/include/utils/fmgrprotos.h +2646 -0
- data/ext/pg_query/include/utils/fmgrtab.h +48 -0
- data/ext/pg_query/include/utils/guc.h +443 -0
- data/ext/pg_query/include/utils/guc_tables.h +272 -0
- data/ext/pg_query/include/utils/hsearch.h +149 -0
- data/ext/pg_query/include/utils/inval.h +64 -0
- data/ext/pg_query/include/utils/lsyscache.h +197 -0
- data/ext/pg_query/include/utils/memdebug.h +82 -0
- data/ext/pg_query/include/utils/memutils.h +225 -0
- data/ext/pg_query/include/utils/numeric.h +76 -0
- data/ext/pg_query/include/utils/palloc.h +136 -0
- data/ext/pg_query/include/utils/partcache.h +102 -0
- data/ext/pg_query/include/utils/pg_locale.h +119 -0
- data/ext/pg_query/include/utils/pg_lsn.h +29 -0
- data/ext/pg_query/include/utils/pidfile.h +56 -0
- data/ext/pg_query/include/utils/plancache.h +235 -0
- data/ext/pg_query/include/utils/portal.h +241 -0
- data/ext/pg_query/include/utils/probes.h +114 -0
- data/ext/pg_query/include/utils/ps_status.h +25 -0
- data/ext/pg_query/include/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/utils/regproc.h +28 -0
- data/ext/pg_query/include/utils/rel.h +644 -0
- data/ext/pg_query/include/utils/relcache.h +151 -0
- data/ext/pg_query/include/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/utils/resowner.h +86 -0
- data/ext/pg_query/include/utils/rls.h +50 -0
- data/ext/pg_query/include/utils/ruleutils.h +44 -0
- data/ext/pg_query/include/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/utils/snapmgr.h +158 -0
- data/ext/pg_query/include/utils/snapshot.h +206 -0
- data/ext/pg_query/include/utils/sortsupport.h +276 -0
- data/ext/pg_query/include/utils/syscache.h +219 -0
- data/ext/pg_query/include/utils/timeout.h +88 -0
- data/ext/pg_query/include/utils/timestamp.h +116 -0
- data/ext/pg_query/include/utils/tuplesort.h +277 -0
- data/ext/pg_query/include/utils/tuplestore.h +91 -0
- data/ext/pg_query/include/utils/typcache.h +202 -0
- data/ext/pg_query/include/utils/tzparser.h +39 -0
- data/ext/pg_query/include/utils/varlena.h +39 -0
- data/ext/pg_query/include/utils/xml.h +84 -0
- data/ext/pg_query/include/xxhash.h +5445 -0
- data/ext/pg_query/include/xxhash/xxhash.h +5445 -0
- data/ext/pg_query/pg_query.c +104 -0
- data/ext/pg_query/pg_query.pb-c.c +37628 -0
- data/ext/pg_query/pg_query_deparse.c +9959 -0
- data/ext/pg_query/pg_query_fingerprint.c +295 -0
- data/ext/pg_query/pg_query_fingerprint.h +8 -0
- data/ext/pg_query/pg_query_internal.h +24 -0
- data/ext/pg_query/pg_query_json_plpgsql.c +738 -0
- data/ext/pg_query/pg_query_json_plpgsql.h +9 -0
- data/ext/pg_query/pg_query_normalize.c +439 -0
- data/ext/pg_query/pg_query_outfuncs.h +10 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +297 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +237 -0
- data/ext/pg_query/pg_query_parse.c +148 -0
- data/ext/pg_query/pg_query_parse_plpgsql.c +460 -0
- data/ext/pg_query/pg_query_readfuncs.h +11 -0
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +142 -0
- data/ext/pg_query/pg_query_ruby.c +108 -12
- data/ext/pg_query/pg_query_scan.c +173 -0
- data/ext/pg_query/pg_query_split.c +221 -0
- data/ext/pg_query/protobuf-c.c +3660 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +1051 -0
- data/ext/pg_query/src_backend_catalog_pg_proc.c +142 -0
- data/ext/pg_query/src_backend_commands_define.c +117 -0
- data/ext/pg_query/src_backend_libpq_pqcomm.c +651 -0
- data/ext/pg_query/src_backend_nodes_bitmapset.c +513 -0
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +6013 -0
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +4003 -0
- data/ext/pg_query/src_backend_nodes_extensible.c +99 -0
- data/ext/pg_query/src_backend_nodes_list.c +922 -0
- data/ext/pg_query/src_backend_nodes_makefuncs.c +417 -0
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +1363 -0
- data/ext/pg_query/src_backend_nodes_value.c +84 -0
- data/ext/pg_query/src_backend_parser_gram.c +47456 -0
- data/ext/pg_query/src_backend_parser_parse_expr.c +313 -0
- data/ext/pg_query/src_backend_parser_parser.c +497 -0
- data/ext/pg_query/src_backend_parser_scan.c +7091 -0
- data/ext/pg_query/src_backend_parser_scansup.c +160 -0
- data/ext/pg_query/src_backend_postmaster_postmaster.c +2230 -0
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +192 -0
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +370 -0
- data/ext/pg_query/src_backend_tcop_postgres.c +776 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +326 -0
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +98 -0
- data/ext/pg_query/src_backend_utils_adt_format_type.c +136 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +1683 -0
- data/ext/pg_query/src_backend_utils_error_assert.c +74 -0
- data/ext/pg_query/src_backend_utils_error_elog.c +1748 -0
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +570 -0
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +1086 -0
- data/ext/pg_query/src_backend_utils_init_globals.c +168 -0
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +839 -0
- data/ext/pg_query/src_backend_utils_misc_guc.c +1831 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +1560 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +1006 -0
- data/ext/pg_query/src_common_encnames.c +158 -0
- data/ext/pg_query/src_common_keywords.c +39 -0
- data/ext/pg_query/src_common_kwlist_d.h +1081 -0
- data/ext/pg_query/src_common_kwlookup.c +91 -0
- data/ext/pg_query/src_common_psprintf.c +158 -0
- data/ext/pg_query/src_common_string.c +86 -0
- data/ext/pg_query/src_common_stringinfo.c +336 -0
- data/ext/pg_query/src_common_wchar.c +1651 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1133 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +877 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +6533 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +107 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +123 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +671 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +255 -0
- data/ext/pg_query/src_port_erand48.c +127 -0
- data/ext/pg_query/src_port_pg_bitutils.c +246 -0
- data/ext/pg_query/src_port_pgsleep.c +69 -0
- data/ext/pg_query/src_port_pgstrcasecmp.c +83 -0
- data/ext/pg_query/src_port_qsort.c +240 -0
- data/ext/pg_query/src_port_random.c +31 -0
- data/ext/pg_query/src_port_snprintf.c +1449 -0
- data/ext/pg_query/src_port_strerror.c +324 -0
- data/ext/pg_query/src_port_strnlen.c +39 -0
- data/ext/pg_query/xxhash.c +43 -0
- data/lib/pg_query.rb +7 -4
- data/lib/pg_query/constants.rb +21 -0
- data/lib/pg_query/deparse.rb +15 -1581
- data/lib/pg_query/filter_columns.rb +88 -85
- data/lib/pg_query/fingerprint.rb +122 -87
- data/lib/pg_query/json_field_names.rb +1402 -0
- data/lib/pg_query/node.rb +31 -0
- data/lib/pg_query/param_refs.rb +42 -37
- data/lib/pg_query/parse.rb +220 -203
- data/lib/pg_query/parse_error.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +3211 -0
- data/lib/pg_query/scan.rb +23 -0
- data/lib/pg_query/treewalker.rb +24 -40
- data/lib/pg_query/truncate.rb +71 -42
- data/lib/pg_query/version.rb +2 -2
- metadata +472 -11
- data/ext/pg_query/pg_query_ruby.h +0 -10
- data/lib/pg_query/deep_dup.rb +0 -16
- data/lib/pg_query/deparse/alter_table.rb +0 -42
- data/lib/pg_query/deparse/interval.rb +0 -105
- data/lib/pg_query/deparse/keywords.rb +0 -159
- data/lib/pg_query/deparse/rename.rb +0 -41
- data/lib/pg_query/legacy_parsetree.rb +0 -109
- data/lib/pg_query/node_types.rb +0 -296
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_opfamily.h
|
|
4
|
+
* definition of the "operator family" system catalog (pg_opfamily)
|
|
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/catalog/pg_opfamily.h
|
|
11
|
+
*
|
|
12
|
+
* NOTES
|
|
13
|
+
* The Catalog.pm module reads this file and derives schema
|
|
14
|
+
* information.
|
|
15
|
+
*
|
|
16
|
+
*-------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
#ifndef PG_OPFAMILY_H
|
|
19
|
+
#define PG_OPFAMILY_H
|
|
20
|
+
|
|
21
|
+
#include "catalog/genbki.h"
|
|
22
|
+
#include "catalog/pg_opfamily_d.h"
|
|
23
|
+
|
|
24
|
+
/* ----------------
|
|
25
|
+
* pg_opfamily definition. cpp turns this into
|
|
26
|
+
* typedef struct FormData_pg_opfamily
|
|
27
|
+
* ----------------
|
|
28
|
+
*/
|
|
29
|
+
CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
|
|
30
|
+
{
|
|
31
|
+
Oid oid; /* oid */
|
|
32
|
+
|
|
33
|
+
/* index access method opfamily is for */
|
|
34
|
+
Oid opfmethod BKI_LOOKUP(pg_am);
|
|
35
|
+
|
|
36
|
+
/* name of this opfamily */
|
|
37
|
+
NameData opfname;
|
|
38
|
+
|
|
39
|
+
/* namespace of this opfamily */
|
|
40
|
+
Oid opfnamespace BKI_DEFAULT(PGNSP);
|
|
41
|
+
|
|
42
|
+
/* opfamily owner */
|
|
43
|
+
Oid opfowner BKI_DEFAULT(PGUID);
|
|
44
|
+
} FormData_pg_opfamily;
|
|
45
|
+
|
|
46
|
+
/* ----------------
|
|
47
|
+
* Form_pg_opfamily corresponds to a pointer to a tuple with
|
|
48
|
+
* the format of pg_opfamily relation.
|
|
49
|
+
* ----------------
|
|
50
|
+
*/
|
|
51
|
+
typedef FormData_pg_opfamily *Form_pg_opfamily;
|
|
52
|
+
|
|
53
|
+
#ifdef EXPOSE_TO_CLIENT_CODE
|
|
54
|
+
|
|
55
|
+
#define IsBooleanOpfamily(opfamily) \
|
|
56
|
+
((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
|
|
57
|
+
|
|
58
|
+
#endif /* EXPOSE_TO_CLIENT_CODE */
|
|
59
|
+
|
|
60
|
+
#endif /* PG_OPFAMILY_H */
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_opfamily_d.h
|
|
4
|
+
* Macro definitions for pg_opfamily
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* NOTES
|
|
10
|
+
* ******************************
|
|
11
|
+
* *** DO NOT EDIT THIS FILE! ***
|
|
12
|
+
* ******************************
|
|
13
|
+
*
|
|
14
|
+
* It has been GENERATED by src/backend/catalog/genbki.pl
|
|
15
|
+
*
|
|
16
|
+
*-------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
#ifndef PG_OPFAMILY_D_H
|
|
19
|
+
#define PG_OPFAMILY_D_H
|
|
20
|
+
|
|
21
|
+
#define OperatorFamilyRelationId 2753
|
|
22
|
+
|
|
23
|
+
#define Anum_pg_opfamily_oid 1
|
|
24
|
+
#define Anum_pg_opfamily_opfmethod 2
|
|
25
|
+
#define Anum_pg_opfamily_opfname 3
|
|
26
|
+
#define Anum_pg_opfamily_opfnamespace 4
|
|
27
|
+
#define Anum_pg_opfamily_opfowner 5
|
|
28
|
+
|
|
29
|
+
#define Natts_pg_opfamily 5
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
#define IsBooleanOpfamily(opfamily) \
|
|
33
|
+
((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
|
|
34
|
+
|
|
35
|
+
#define BOOL_BTREE_FAM_OID 424
|
|
36
|
+
#define BPCHAR_BTREE_FAM_OID 426
|
|
37
|
+
#define BYTEA_BTREE_FAM_OID 428
|
|
38
|
+
#define NETWORK_BTREE_FAM_OID 1974
|
|
39
|
+
#define INTEGER_BTREE_FAM_OID 1976
|
|
40
|
+
#define OID_BTREE_FAM_OID 1989
|
|
41
|
+
#define TEXT_BTREE_FAM_OID 1994
|
|
42
|
+
#define TEXT_PATTERN_BTREE_FAM_OID 2095
|
|
43
|
+
#define BPCHAR_PATTERN_BTREE_FAM_OID 2097
|
|
44
|
+
#define BOOL_HASH_FAM_OID 2222
|
|
45
|
+
#define TEXT_SPGIST_FAM_OID 4017
|
|
46
|
+
|
|
47
|
+
#endif /* PG_OPFAMILY_D_H */
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_partitioned_table.h
|
|
4
|
+
* definition of the "partitioned table" system catalog
|
|
5
|
+
* (pg_partitioned_table)
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
10
|
+
*
|
|
11
|
+
* src/include/catalog/pg_partitioned_table.h
|
|
12
|
+
*
|
|
13
|
+
* NOTES
|
|
14
|
+
* The Catalog.pm module reads this file and derives schema
|
|
15
|
+
* information.
|
|
16
|
+
*
|
|
17
|
+
*-------------------------------------------------------------------------
|
|
18
|
+
*/
|
|
19
|
+
#ifndef PG_PARTITIONED_TABLE_H
|
|
20
|
+
#define PG_PARTITIONED_TABLE_H
|
|
21
|
+
|
|
22
|
+
#include "catalog/genbki.h"
|
|
23
|
+
#include "catalog/pg_partitioned_table_d.h"
|
|
24
|
+
|
|
25
|
+
/* ----------------
|
|
26
|
+
* pg_partitioned_table definition. cpp turns this into
|
|
27
|
+
* typedef struct FormData_pg_partitioned_table
|
|
28
|
+
* ----------------
|
|
29
|
+
*/
|
|
30
|
+
CATALOG(pg_partitioned_table,3350,PartitionedRelationId)
|
|
31
|
+
{
|
|
32
|
+
Oid partrelid; /* partitioned table oid */
|
|
33
|
+
char partstrat; /* partitioning strategy */
|
|
34
|
+
int16 partnatts; /* number of partition key columns */
|
|
35
|
+
Oid partdefid; /* default partition oid; InvalidOid if there
|
|
36
|
+
* isn't one */
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* variable-length fields start here, but we allow direct access to
|
|
40
|
+
* partattrs via the C struct. That's because the first variable-length
|
|
41
|
+
* field of a heap tuple can be reliably accessed using its C struct
|
|
42
|
+
* offset, as previous fields are all non-nullable fixed-length fields.
|
|
43
|
+
*/
|
|
44
|
+
int2vector partattrs; /* each member of the array is the attribute
|
|
45
|
+
* number of a partition key column, or 0 if
|
|
46
|
+
* the column is actually an expression */
|
|
47
|
+
|
|
48
|
+
#ifdef CATALOG_VARLEN
|
|
49
|
+
oidvector partclass; /* operator class to compare keys */
|
|
50
|
+
oidvector partcollation; /* user-specified collation for keys */
|
|
51
|
+
pg_node_tree partexprs; /* list of expressions in the partition key;
|
|
52
|
+
* one item for each zero entry in partattrs[] */
|
|
53
|
+
#endif
|
|
54
|
+
} FormData_pg_partitioned_table;
|
|
55
|
+
|
|
56
|
+
/* ----------------
|
|
57
|
+
* Form_pg_partitioned_table corresponds to a pointer to a tuple with
|
|
58
|
+
* the format of pg_partitioned_table relation.
|
|
59
|
+
* ----------------
|
|
60
|
+
*/
|
|
61
|
+
typedef FormData_pg_partitioned_table *Form_pg_partitioned_table;
|
|
62
|
+
|
|
63
|
+
#endif /* PG_PARTITIONED_TABLE_H */
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_partitioned_table_d.h
|
|
4
|
+
* Macro definitions for pg_partitioned_table
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* NOTES
|
|
10
|
+
* ******************************
|
|
11
|
+
* *** DO NOT EDIT THIS FILE! ***
|
|
12
|
+
* ******************************
|
|
13
|
+
*
|
|
14
|
+
* It has been GENERATED by src/backend/catalog/genbki.pl
|
|
15
|
+
*
|
|
16
|
+
*-------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
#ifndef PG_PARTITIONED_TABLE_D_H
|
|
19
|
+
#define PG_PARTITIONED_TABLE_D_H
|
|
20
|
+
|
|
21
|
+
#define PartitionedRelationId 3350
|
|
22
|
+
|
|
23
|
+
#define Anum_pg_partitioned_table_partrelid 1
|
|
24
|
+
#define Anum_pg_partitioned_table_partstrat 2
|
|
25
|
+
#define Anum_pg_partitioned_table_partnatts 3
|
|
26
|
+
#define Anum_pg_partitioned_table_partdefid 4
|
|
27
|
+
#define Anum_pg_partitioned_table_partattrs 5
|
|
28
|
+
#define Anum_pg_partitioned_table_partclass 6
|
|
29
|
+
#define Anum_pg_partitioned_table_partcollation 7
|
|
30
|
+
#define Anum_pg_partitioned_table_partexprs 8
|
|
31
|
+
|
|
32
|
+
#define Natts_pg_partitioned_table 8
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
#endif /* PG_PARTITIONED_TABLE_D_H */
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_proc.h
|
|
4
|
+
* definition of the "procedure" system catalog (pg_proc)
|
|
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/catalog/pg_proc.h
|
|
10
|
+
*
|
|
11
|
+
* NOTES
|
|
12
|
+
* The Catalog.pm module reads this file and derives schema
|
|
13
|
+
* information.
|
|
14
|
+
*
|
|
15
|
+
*-------------------------------------------------------------------------
|
|
16
|
+
*/
|
|
17
|
+
#ifndef PG_PROC_H
|
|
18
|
+
#define PG_PROC_H
|
|
19
|
+
|
|
20
|
+
#include "catalog/genbki.h"
|
|
21
|
+
#include "catalog/objectaddress.h"
|
|
22
|
+
#include "catalog/pg_proc_d.h"
|
|
23
|
+
#include "nodes/pg_list.h"
|
|
24
|
+
|
|
25
|
+
/* ----------------
|
|
26
|
+
* pg_proc definition. cpp turns this into
|
|
27
|
+
* typedef struct FormData_pg_proc
|
|
28
|
+
* ----------------
|
|
29
|
+
*/
|
|
30
|
+
CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,ProcedureRelation_Rowtype_Id) BKI_SCHEMA_MACRO
|
|
31
|
+
{
|
|
32
|
+
Oid oid; /* oid */
|
|
33
|
+
|
|
34
|
+
/* procedure name */
|
|
35
|
+
NameData proname;
|
|
36
|
+
|
|
37
|
+
/* OID of namespace containing this proc */
|
|
38
|
+
Oid pronamespace BKI_DEFAULT(PGNSP);
|
|
39
|
+
|
|
40
|
+
/* procedure owner */
|
|
41
|
+
Oid proowner BKI_DEFAULT(PGUID);
|
|
42
|
+
|
|
43
|
+
/* OID of pg_language entry */
|
|
44
|
+
Oid prolang BKI_DEFAULT(internal) BKI_LOOKUP(pg_language);
|
|
45
|
+
|
|
46
|
+
/* estimated execution cost */
|
|
47
|
+
float4 procost BKI_DEFAULT(1);
|
|
48
|
+
|
|
49
|
+
/* estimated # of rows out (if proretset) */
|
|
50
|
+
float4 prorows BKI_DEFAULT(0);
|
|
51
|
+
|
|
52
|
+
/* element type of variadic array, or 0 */
|
|
53
|
+
Oid provariadic BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
|
|
54
|
+
|
|
55
|
+
/* planner support function for this function, or 0 if none */
|
|
56
|
+
regproc prosupport BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
|
|
57
|
+
|
|
58
|
+
/* see PROKIND_ categories below */
|
|
59
|
+
char prokind BKI_DEFAULT(f);
|
|
60
|
+
|
|
61
|
+
/* security definer */
|
|
62
|
+
bool prosecdef BKI_DEFAULT(f);
|
|
63
|
+
|
|
64
|
+
/* is it a leak-proof function? */
|
|
65
|
+
bool proleakproof BKI_DEFAULT(f);
|
|
66
|
+
|
|
67
|
+
/* strict with respect to NULLs? */
|
|
68
|
+
bool proisstrict BKI_DEFAULT(t);
|
|
69
|
+
|
|
70
|
+
/* returns a set? */
|
|
71
|
+
bool proretset BKI_DEFAULT(f);
|
|
72
|
+
|
|
73
|
+
/* see PROVOLATILE_ categories below */
|
|
74
|
+
char provolatile BKI_DEFAULT(i);
|
|
75
|
+
|
|
76
|
+
/* see PROPARALLEL_ categories below */
|
|
77
|
+
char proparallel BKI_DEFAULT(s);
|
|
78
|
+
|
|
79
|
+
/* number of arguments */
|
|
80
|
+
/* Note: need not be given in pg_proc.dat; genbki.pl will compute it */
|
|
81
|
+
int16 pronargs;
|
|
82
|
+
|
|
83
|
+
/* number of arguments with defaults */
|
|
84
|
+
int16 pronargdefaults BKI_DEFAULT(0);
|
|
85
|
+
|
|
86
|
+
/* OID of result type */
|
|
87
|
+
Oid prorettype BKI_LOOKUP(pg_type);
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
* variable-length fields start here, but we allow direct access to
|
|
91
|
+
* proargtypes
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/* parameter types (excludes OUT params) */
|
|
95
|
+
oidvector proargtypes BKI_LOOKUP(pg_type);
|
|
96
|
+
|
|
97
|
+
#ifdef CATALOG_VARLEN
|
|
98
|
+
|
|
99
|
+
/* all param types (NULL if IN only) */
|
|
100
|
+
Oid proallargtypes[1] BKI_DEFAULT(_null_) BKI_LOOKUP(pg_type);
|
|
101
|
+
|
|
102
|
+
/* parameter modes (NULL if IN only) */
|
|
103
|
+
char proargmodes[1] BKI_DEFAULT(_null_);
|
|
104
|
+
|
|
105
|
+
/* parameter names (NULL if no names) */
|
|
106
|
+
text proargnames[1] BKI_DEFAULT(_null_);
|
|
107
|
+
|
|
108
|
+
/* list of expression trees for argument defaults (NULL if none) */
|
|
109
|
+
pg_node_tree proargdefaults BKI_DEFAULT(_null_);
|
|
110
|
+
|
|
111
|
+
/* types for which to apply transforms */
|
|
112
|
+
Oid protrftypes[1] BKI_DEFAULT(_null_);
|
|
113
|
+
|
|
114
|
+
/* procedure source text */
|
|
115
|
+
text prosrc BKI_FORCE_NOT_NULL;
|
|
116
|
+
|
|
117
|
+
/* secondary procedure info (can be NULL) */
|
|
118
|
+
text probin BKI_DEFAULT(_null_);
|
|
119
|
+
|
|
120
|
+
/* procedure-local GUC settings */
|
|
121
|
+
text proconfig[1] BKI_DEFAULT(_null_);
|
|
122
|
+
|
|
123
|
+
/* access permissions */
|
|
124
|
+
aclitem proacl[1] BKI_DEFAULT(_null_);
|
|
125
|
+
#endif
|
|
126
|
+
} FormData_pg_proc;
|
|
127
|
+
|
|
128
|
+
/* ----------------
|
|
129
|
+
* Form_pg_proc corresponds to a pointer to a tuple with
|
|
130
|
+
* the format of pg_proc relation.
|
|
131
|
+
* ----------------
|
|
132
|
+
*/
|
|
133
|
+
typedef FormData_pg_proc *Form_pg_proc;
|
|
134
|
+
|
|
135
|
+
#ifdef EXPOSE_TO_CLIENT_CODE
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* Symbolic values for prokind column
|
|
139
|
+
*/
|
|
140
|
+
#define PROKIND_FUNCTION 'f'
|
|
141
|
+
#define PROKIND_AGGREGATE 'a'
|
|
142
|
+
#define PROKIND_WINDOW 'w'
|
|
143
|
+
#define PROKIND_PROCEDURE 'p'
|
|
144
|
+
|
|
145
|
+
/*
|
|
146
|
+
* Symbolic values for provolatile column: these indicate whether the result
|
|
147
|
+
* of a function is dependent *only* on the values of its explicit arguments,
|
|
148
|
+
* or can change due to outside factors (such as parameter variables or
|
|
149
|
+
* table contents). NOTE: functions having side-effects, such as setval(),
|
|
150
|
+
* must be labeled volatile to ensure they will not get optimized away,
|
|
151
|
+
* even if the actual return value is not changeable.
|
|
152
|
+
*/
|
|
153
|
+
#define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */
|
|
154
|
+
#define PROVOLATILE_STABLE 's' /* does not change within a scan */
|
|
155
|
+
#define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
* Symbolic values for proparallel column: these indicate whether a function
|
|
159
|
+
* can be safely be run in a parallel backend, during parallelism but
|
|
160
|
+
* necessarily in the master, or only in non-parallel mode.
|
|
161
|
+
*/
|
|
162
|
+
#define PROPARALLEL_SAFE 's' /* can run in worker or master */
|
|
163
|
+
#define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */
|
|
164
|
+
#define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */
|
|
165
|
+
|
|
166
|
+
/*
|
|
167
|
+
* Symbolic values for proargmodes column. Note that these must agree with
|
|
168
|
+
* the FunctionParameterMode enum in parsenodes.h; we declare them here to
|
|
169
|
+
* be accessible from either header.
|
|
170
|
+
*/
|
|
171
|
+
#define PROARGMODE_IN 'i'
|
|
172
|
+
#define PROARGMODE_OUT 'o'
|
|
173
|
+
#define PROARGMODE_INOUT 'b'
|
|
174
|
+
#define PROARGMODE_VARIADIC 'v'
|
|
175
|
+
#define PROARGMODE_TABLE 't'
|
|
176
|
+
|
|
177
|
+
#endif /* EXPOSE_TO_CLIENT_CODE */
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
extern ObjectAddress ProcedureCreate(const char *procedureName,
|
|
181
|
+
Oid procNamespace,
|
|
182
|
+
bool replace,
|
|
183
|
+
bool returnsSet,
|
|
184
|
+
Oid returnType,
|
|
185
|
+
Oid proowner,
|
|
186
|
+
Oid languageObjectId,
|
|
187
|
+
Oid languageValidator,
|
|
188
|
+
const char *prosrc,
|
|
189
|
+
const char *probin,
|
|
190
|
+
char prokind,
|
|
191
|
+
bool security_definer,
|
|
192
|
+
bool isLeakProof,
|
|
193
|
+
bool isStrict,
|
|
194
|
+
char volatility,
|
|
195
|
+
char parallel,
|
|
196
|
+
oidvector *parameterTypes,
|
|
197
|
+
Datum allParameterTypes,
|
|
198
|
+
Datum parameterModes,
|
|
199
|
+
Datum parameterNames,
|
|
200
|
+
List *parameterDefaults,
|
|
201
|
+
Datum trftypes,
|
|
202
|
+
Datum proconfig,
|
|
203
|
+
Oid prosupport,
|
|
204
|
+
float4 procost,
|
|
205
|
+
float4 prorows);
|
|
206
|
+
|
|
207
|
+
extern bool function_parse_error_transpose(const char *prosrc);
|
|
208
|
+
|
|
209
|
+
extern List *oid_array_to_list(Datum datum);
|
|
210
|
+
|
|
211
|
+
#endif /* PG_PROC_H */
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* pg_proc_d.h
|
|
4
|
+
* Macro definitions for pg_proc
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* NOTES
|
|
10
|
+
* ******************************
|
|
11
|
+
* *** DO NOT EDIT THIS FILE! ***
|
|
12
|
+
* ******************************
|
|
13
|
+
*
|
|
14
|
+
* It has been GENERATED by src/backend/catalog/genbki.pl
|
|
15
|
+
*
|
|
16
|
+
*-------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
#ifndef PG_PROC_D_H
|
|
19
|
+
#define PG_PROC_D_H
|
|
20
|
+
|
|
21
|
+
#define ProcedureRelationId 1255
|
|
22
|
+
#define ProcedureRelation_Rowtype_Id 81
|
|
23
|
+
|
|
24
|
+
#define Anum_pg_proc_oid 1
|
|
25
|
+
#define Anum_pg_proc_proname 2
|
|
26
|
+
#define Anum_pg_proc_pronamespace 3
|
|
27
|
+
#define Anum_pg_proc_proowner 4
|
|
28
|
+
#define Anum_pg_proc_prolang 5
|
|
29
|
+
#define Anum_pg_proc_procost 6
|
|
30
|
+
#define Anum_pg_proc_prorows 7
|
|
31
|
+
#define Anum_pg_proc_provariadic 8
|
|
32
|
+
#define Anum_pg_proc_prosupport 9
|
|
33
|
+
#define Anum_pg_proc_prokind 10
|
|
34
|
+
#define Anum_pg_proc_prosecdef 11
|
|
35
|
+
#define Anum_pg_proc_proleakproof 12
|
|
36
|
+
#define Anum_pg_proc_proisstrict 13
|
|
37
|
+
#define Anum_pg_proc_proretset 14
|
|
38
|
+
#define Anum_pg_proc_provolatile 15
|
|
39
|
+
#define Anum_pg_proc_proparallel 16
|
|
40
|
+
#define Anum_pg_proc_pronargs 17
|
|
41
|
+
#define Anum_pg_proc_pronargdefaults 18
|
|
42
|
+
#define Anum_pg_proc_prorettype 19
|
|
43
|
+
#define Anum_pg_proc_proargtypes 20
|
|
44
|
+
#define Anum_pg_proc_proallargtypes 21
|
|
45
|
+
#define Anum_pg_proc_proargmodes 22
|
|
46
|
+
#define Anum_pg_proc_proargnames 23
|
|
47
|
+
#define Anum_pg_proc_proargdefaults 24
|
|
48
|
+
#define Anum_pg_proc_protrftypes 25
|
|
49
|
+
#define Anum_pg_proc_prosrc 26
|
|
50
|
+
#define Anum_pg_proc_probin 27
|
|
51
|
+
#define Anum_pg_proc_proconfig 28
|
|
52
|
+
#define Anum_pg_proc_proacl 29
|
|
53
|
+
|
|
54
|
+
#define Natts_pg_proc 29
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/*
|
|
58
|
+
* Symbolic values for prokind column
|
|
59
|
+
*/
|
|
60
|
+
#define PROKIND_FUNCTION 'f'
|
|
61
|
+
#define PROKIND_AGGREGATE 'a'
|
|
62
|
+
#define PROKIND_WINDOW 'w'
|
|
63
|
+
#define PROKIND_PROCEDURE 'p'
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
* Symbolic values for provolatile column: these indicate whether the result
|
|
67
|
+
* of a function is dependent *only* on the values of its explicit arguments,
|
|
68
|
+
* or can change due to outside factors (such as parameter variables or
|
|
69
|
+
* table contents). NOTE: functions having side-effects, such as setval(),
|
|
70
|
+
* must be labeled volatile to ensure they will not get optimized away,
|
|
71
|
+
* even if the actual return value is not changeable.
|
|
72
|
+
*/
|
|
73
|
+
#define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */
|
|
74
|
+
#define PROVOLATILE_STABLE 's' /* does not change within a scan */
|
|
75
|
+
#define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */
|
|
76
|
+
|
|
77
|
+
/*
|
|
78
|
+
* Symbolic values for proparallel column: these indicate whether a function
|
|
79
|
+
* can be safely be run in a parallel backend, during parallelism but
|
|
80
|
+
* necessarily in the master, or only in non-parallel mode.
|
|
81
|
+
*/
|
|
82
|
+
#define PROPARALLEL_SAFE 's' /* can run in worker or master */
|
|
83
|
+
#define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */
|
|
84
|
+
#define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */
|
|
85
|
+
|
|
86
|
+
/*
|
|
87
|
+
* Symbolic values for proargmodes column. Note that these must agree with
|
|
88
|
+
* the FunctionParameterMode enum in parsenodes.h; we declare them here to
|
|
89
|
+
* be accessible from either header.
|
|
90
|
+
*/
|
|
91
|
+
#define PROARGMODE_IN 'i'
|
|
92
|
+
#define PROARGMODE_OUT 'o'
|
|
93
|
+
#define PROARGMODE_INOUT 'b'
|
|
94
|
+
#define PROARGMODE_VARIADIC 'v'
|
|
95
|
+
#define PROARGMODE_TABLE 't'
|
|
96
|
+
|
|
97
|
+
#define HEAP_TABLE_AM_HANDLER_OID 3
|
|
98
|
+
|
|
99
|
+
#endif /* PG_PROC_D_H */
|