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,74 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* walsender.h
|
|
4
|
+
* Exports from replication/walsender.c.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 2010-2020, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* src/include/replication/walsender.h
|
|
9
|
+
*
|
|
10
|
+
*-------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
#ifndef _WALSENDER_H
|
|
13
|
+
#define _WALSENDER_H
|
|
14
|
+
|
|
15
|
+
#include <signal.h>
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* What to do with a snapshot in create replication slot command.
|
|
19
|
+
*/
|
|
20
|
+
typedef enum
|
|
21
|
+
{
|
|
22
|
+
CRS_EXPORT_SNAPSHOT,
|
|
23
|
+
CRS_NOEXPORT_SNAPSHOT,
|
|
24
|
+
CRS_USE_SNAPSHOT
|
|
25
|
+
} CRSSnapshotAction;
|
|
26
|
+
|
|
27
|
+
/* global state */
|
|
28
|
+
extern bool am_walsender;
|
|
29
|
+
extern bool am_cascading_walsender;
|
|
30
|
+
extern bool am_db_walsender;
|
|
31
|
+
extern bool wake_wal_senders;
|
|
32
|
+
|
|
33
|
+
/* user-settable parameters */
|
|
34
|
+
extern int max_wal_senders;
|
|
35
|
+
extern int wal_sender_timeout;
|
|
36
|
+
extern bool log_replication_commands;
|
|
37
|
+
|
|
38
|
+
extern void InitWalSender(void);
|
|
39
|
+
extern bool exec_replication_command(const char *query_string);
|
|
40
|
+
extern void WalSndErrorCleanup(void);
|
|
41
|
+
extern void WalSndResourceCleanup(bool isCommit);
|
|
42
|
+
extern void WalSndSignals(void);
|
|
43
|
+
extern Size WalSndShmemSize(void);
|
|
44
|
+
extern void WalSndShmemInit(void);
|
|
45
|
+
extern void WalSndWakeup(void);
|
|
46
|
+
extern void WalSndInitStopping(void);
|
|
47
|
+
extern void WalSndWaitStopping(void);
|
|
48
|
+
extern void HandleWalSndInitStopping(void);
|
|
49
|
+
extern void WalSndRqstFileReload(void);
|
|
50
|
+
|
|
51
|
+
/*
|
|
52
|
+
* Remember that we want to wakeup walsenders later
|
|
53
|
+
*
|
|
54
|
+
* This is separated from doing the actual wakeup because the writeout is done
|
|
55
|
+
* while holding contended locks.
|
|
56
|
+
*/
|
|
57
|
+
#define WalSndWakeupRequest() \
|
|
58
|
+
do { wake_wal_senders = true; } while (0)
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* wakeup walsenders if there is work to be done
|
|
62
|
+
*/
|
|
63
|
+
#define WalSndWakeupProcessRequests() \
|
|
64
|
+
do \
|
|
65
|
+
{ \
|
|
66
|
+
if (wake_wal_senders) \
|
|
67
|
+
{ \
|
|
68
|
+
wake_wal_senders = false; \
|
|
69
|
+
if (max_wal_senders > 0) \
|
|
70
|
+
WalSndWakeup(); \
|
|
71
|
+
} \
|
|
72
|
+
} while (0)
|
|
73
|
+
|
|
74
|
+
#endif /* _WALSENDER_H */
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* prs2lock.h
|
|
4
|
+
* data structures for POSTGRES Rule System II (rewrite rules only)
|
|
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/rewrite/prs2lock.h
|
|
10
|
+
*
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef PRS2LOCK_H
|
|
14
|
+
#define PRS2LOCK_H
|
|
15
|
+
|
|
16
|
+
#include "access/attnum.h"
|
|
17
|
+
#include "nodes/pg_list.h"
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* RewriteRule -
|
|
21
|
+
* holds an info for a rewrite rule
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
typedef struct RewriteRule
|
|
25
|
+
{
|
|
26
|
+
Oid ruleId;
|
|
27
|
+
CmdType event;
|
|
28
|
+
Node *qual;
|
|
29
|
+
List *actions;
|
|
30
|
+
char enabled;
|
|
31
|
+
bool isInstead;
|
|
32
|
+
} RewriteRule;
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* RuleLock -
|
|
36
|
+
* all rules that apply to a particular relation. Even though we only
|
|
37
|
+
* have the rewrite rule system left and these are not really "locks",
|
|
38
|
+
* the name is kept for historical reasons.
|
|
39
|
+
*/
|
|
40
|
+
typedef struct RuleLock
|
|
41
|
+
{
|
|
42
|
+
int numLocks;
|
|
43
|
+
RewriteRule **rules;
|
|
44
|
+
} RuleLock;
|
|
45
|
+
|
|
46
|
+
#endif /* PRS2LOCK_H */
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* rewriteHandler.h
|
|
4
|
+
* External interface to query rewriter.
|
|
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/rewrite/rewriteHandler.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef REWRITEHANDLER_H
|
|
15
|
+
#define REWRITEHANDLER_H
|
|
16
|
+
|
|
17
|
+
#include "nodes/parsenodes.h"
|
|
18
|
+
#include "utils/relcache.h"
|
|
19
|
+
|
|
20
|
+
extern List *QueryRewrite(Query *parsetree);
|
|
21
|
+
extern void AcquireRewriteLocks(Query *parsetree,
|
|
22
|
+
bool forExecute,
|
|
23
|
+
bool forUpdatePushedDown);
|
|
24
|
+
|
|
25
|
+
extern Node *build_column_default(Relation rel, int attrno);
|
|
26
|
+
extern void rewriteTargetListUD(Query *parsetree, RangeTblEntry *target_rte,
|
|
27
|
+
Relation target_relation);
|
|
28
|
+
|
|
29
|
+
extern void fill_extraUpdatedCols(RangeTblEntry *target_rte,
|
|
30
|
+
Relation target_relation);
|
|
31
|
+
|
|
32
|
+
extern Query *get_view_query(Relation view);
|
|
33
|
+
extern const char *view_query_is_auto_updatable(Query *viewquery,
|
|
34
|
+
bool check_cols);
|
|
35
|
+
extern int relation_is_updatable(Oid reloid,
|
|
36
|
+
List *outer_reloids,
|
|
37
|
+
bool include_triggers,
|
|
38
|
+
Bitmapset *include_cols);
|
|
39
|
+
|
|
40
|
+
#endif /* REWRITEHANDLER_H */
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* rewriteManip.h
|
|
4
|
+
* Querytree manipulation subroutines for query rewriter.
|
|
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/rewrite/rewriteManip.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef REWRITEMANIP_H
|
|
15
|
+
#define REWRITEMANIP_H
|
|
16
|
+
|
|
17
|
+
#include "nodes/parsenodes.h"
|
|
18
|
+
|
|
19
|
+
struct AttrMap; /* avoid including attmap.h here */
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
typedef struct replace_rte_variables_context replace_rte_variables_context;
|
|
23
|
+
|
|
24
|
+
typedef Node *(*replace_rte_variables_callback) (Var *var,
|
|
25
|
+
replace_rte_variables_context *context);
|
|
26
|
+
|
|
27
|
+
struct replace_rte_variables_context
|
|
28
|
+
{
|
|
29
|
+
replace_rte_variables_callback callback; /* callback function */
|
|
30
|
+
void *callback_arg; /* context data for callback function */
|
|
31
|
+
int target_varno; /* RTE index to search for */
|
|
32
|
+
int sublevels_up; /* (current) nesting depth */
|
|
33
|
+
bool inserted_sublink; /* have we inserted a SubLink? */
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
typedef enum ReplaceVarsNoMatchOption
|
|
37
|
+
{
|
|
38
|
+
REPLACEVARS_REPORT_ERROR, /* throw error if no match */
|
|
39
|
+
REPLACEVARS_CHANGE_VARNO, /* change the Var's varno, nothing else */
|
|
40
|
+
REPLACEVARS_SUBSTITUTE_NULL /* replace with a NULL Const */
|
|
41
|
+
} ReplaceVarsNoMatchOption;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
extern void OffsetVarNodes(Node *node, int offset, int sublevels_up);
|
|
45
|
+
extern void ChangeVarNodes(Node *node, int old_varno, int new_varno,
|
|
46
|
+
int sublevels_up);
|
|
47
|
+
extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up,
|
|
48
|
+
int min_sublevels_up);
|
|
49
|
+
extern void IncrementVarSublevelsUp_rtable(List *rtable,
|
|
50
|
+
int delta_sublevels_up, int min_sublevels_up);
|
|
51
|
+
|
|
52
|
+
extern bool rangeTableEntry_used(Node *node, int rt_index,
|
|
53
|
+
int sublevels_up);
|
|
54
|
+
|
|
55
|
+
extern Query *getInsertSelectQuery(Query *parsetree, Query ***subquery_ptr);
|
|
56
|
+
|
|
57
|
+
extern void AddQual(Query *parsetree, Node *qual);
|
|
58
|
+
extern void AddInvertedQual(Query *parsetree, Node *qual);
|
|
59
|
+
|
|
60
|
+
extern bool contain_aggs_of_level(Node *node, int levelsup);
|
|
61
|
+
extern int locate_agg_of_level(Node *node, int levelsup);
|
|
62
|
+
extern bool contain_windowfuncs(Node *node);
|
|
63
|
+
extern int locate_windowfunc(Node *node);
|
|
64
|
+
extern bool checkExprHasSubLink(Node *node);
|
|
65
|
+
|
|
66
|
+
extern Node *replace_rte_variables(Node *node,
|
|
67
|
+
int target_varno, int sublevels_up,
|
|
68
|
+
replace_rte_variables_callback callback,
|
|
69
|
+
void *callback_arg,
|
|
70
|
+
bool *outer_hasSubLinks);
|
|
71
|
+
extern Node *replace_rte_variables_mutator(Node *node,
|
|
72
|
+
replace_rte_variables_context *context);
|
|
73
|
+
|
|
74
|
+
extern Node *map_variable_attnos(Node *node,
|
|
75
|
+
int target_varno, int sublevels_up,
|
|
76
|
+
const struct AttrMap *attno_map,
|
|
77
|
+
Oid to_rowtype, bool *found_whole_row);
|
|
78
|
+
|
|
79
|
+
extern Node *ReplaceVarsFromTargetList(Node *node,
|
|
80
|
+
int target_varno, int sublevels_up,
|
|
81
|
+
RangeTblEntry *target_rte,
|
|
82
|
+
List *targetlist,
|
|
83
|
+
ReplaceVarsNoMatchOption nomatch_option,
|
|
84
|
+
int nomatch_varno,
|
|
85
|
+
bool *outer_hasSubLinks);
|
|
86
|
+
|
|
87
|
+
#endif /* REWRITEMANIP_H */
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* rewriteSupport.h
|
|
4
|
+
*
|
|
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/rewrite/rewriteSupport.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef REWRITESUPPORT_H
|
|
15
|
+
#define REWRITESUPPORT_H
|
|
16
|
+
|
|
17
|
+
/* The ON SELECT rule of a view is always named this: */
|
|
18
|
+
#define ViewSelectRuleName "_RETURN"
|
|
19
|
+
|
|
20
|
+
extern bool IsDefinedRewriteRule(Oid owningRel, const char *ruleName);
|
|
21
|
+
|
|
22
|
+
extern void SetRelationRuleStatus(Oid relationId, bool relHasRules);
|
|
23
|
+
|
|
24
|
+
extern Oid get_rewrite_oid(Oid relid, const char *rulename, bool missing_ok);
|
|
25
|
+
|
|
26
|
+
#endif /* REWRITESUPPORT_H */
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* backendid.h
|
|
4
|
+
* POSTGRES backend id communication definitions
|
|
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/storage/backendid.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef BACKENDID_H
|
|
15
|
+
#define BACKENDID_H
|
|
16
|
+
|
|
17
|
+
/* ----------------
|
|
18
|
+
* -cim 8/17/90
|
|
19
|
+
* ----------------
|
|
20
|
+
*/
|
|
21
|
+
typedef int BackendId; /* unique currently active backend identifier */
|
|
22
|
+
|
|
23
|
+
#define InvalidBackendId (-1)
|
|
24
|
+
|
|
25
|
+
extern PGDLLIMPORT BackendId MyBackendId; /* backend id of this backend */
|
|
26
|
+
|
|
27
|
+
/* backend id of our parallel session leader, or InvalidBackendId if none */
|
|
28
|
+
extern PGDLLIMPORT BackendId ParallelMasterBackendId;
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
* The BackendId to use for our session's temp relations is normally our own,
|
|
32
|
+
* but parallel workers should use their leader's ID.
|
|
33
|
+
*/
|
|
34
|
+
#define BackendIdForTempRelations() \
|
|
35
|
+
(ParallelMasterBackendId == InvalidBackendId ? MyBackendId : ParallelMasterBackendId)
|
|
36
|
+
|
|
37
|
+
#endif /* BACKENDID_H */
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* block.h
|
|
4
|
+
* POSTGRES disk block definitions.
|
|
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/storage/block.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef BLOCK_H
|
|
15
|
+
#define BLOCK_H
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* BlockNumber:
|
|
19
|
+
*
|
|
20
|
+
* each data file (heap or index) is divided into postgres disk blocks
|
|
21
|
+
* (which may be thought of as the unit of i/o -- a postgres buffer
|
|
22
|
+
* contains exactly one disk block). the blocks are numbered
|
|
23
|
+
* sequentially, 0 to 0xFFFFFFFE.
|
|
24
|
+
*
|
|
25
|
+
* InvalidBlockNumber is the same thing as P_NEW in bufmgr.h.
|
|
26
|
+
*
|
|
27
|
+
* the access methods, the buffer manager and the storage manager are
|
|
28
|
+
* more or less the only pieces of code that should be accessing disk
|
|
29
|
+
* blocks directly.
|
|
30
|
+
*/
|
|
31
|
+
typedef uint32 BlockNumber;
|
|
32
|
+
|
|
33
|
+
#define InvalidBlockNumber ((BlockNumber) 0xFFFFFFFF)
|
|
34
|
+
|
|
35
|
+
#define MaxBlockNumber ((BlockNumber) 0xFFFFFFFE)
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
* BlockId:
|
|
39
|
+
*
|
|
40
|
+
* this is a storage type for BlockNumber. in other words, this type
|
|
41
|
+
* is used for on-disk structures (e.g., in HeapTupleData) whereas
|
|
42
|
+
* BlockNumber is the type on which calculations are performed (e.g.,
|
|
43
|
+
* in access method code).
|
|
44
|
+
*
|
|
45
|
+
* there doesn't appear to be any reason to have separate types except
|
|
46
|
+
* for the fact that BlockIds can be SHORTALIGN'd (and therefore any
|
|
47
|
+
* structures that contains them, such as ItemPointerData, can also be
|
|
48
|
+
* SHORTALIGN'd). this is an important consideration for reducing the
|
|
49
|
+
* space requirements of the line pointer (ItemIdData) array on each
|
|
50
|
+
* page and the header of each heap or index tuple, so it doesn't seem
|
|
51
|
+
* wise to change this without good reason.
|
|
52
|
+
*/
|
|
53
|
+
typedef struct BlockIdData
|
|
54
|
+
{
|
|
55
|
+
uint16 bi_hi;
|
|
56
|
+
uint16 bi_lo;
|
|
57
|
+
} BlockIdData;
|
|
58
|
+
|
|
59
|
+
typedef BlockIdData *BlockId; /* block identifier */
|
|
60
|
+
|
|
61
|
+
/* ----------------
|
|
62
|
+
* support macros
|
|
63
|
+
* ----------------
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* BlockNumberIsValid
|
|
68
|
+
* True iff blockNumber is valid.
|
|
69
|
+
*/
|
|
70
|
+
#define BlockNumberIsValid(blockNumber) \
|
|
71
|
+
((bool) ((BlockNumber) (blockNumber) != InvalidBlockNumber))
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
* BlockIdIsValid
|
|
75
|
+
* True iff the block identifier is valid.
|
|
76
|
+
*/
|
|
77
|
+
#define BlockIdIsValid(blockId) \
|
|
78
|
+
((bool) PointerIsValid(blockId))
|
|
79
|
+
|
|
80
|
+
/*
|
|
81
|
+
* BlockIdSet
|
|
82
|
+
* Sets a block identifier to the specified value.
|
|
83
|
+
*/
|
|
84
|
+
#define BlockIdSet(blockId, blockNumber) \
|
|
85
|
+
( \
|
|
86
|
+
AssertMacro(PointerIsValid(blockId)), \
|
|
87
|
+
(blockId)->bi_hi = (blockNumber) >> 16, \
|
|
88
|
+
(blockId)->bi_lo = (blockNumber) & 0xffff \
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
/*
|
|
92
|
+
* BlockIdCopy
|
|
93
|
+
* Copy a block identifier.
|
|
94
|
+
*/
|
|
95
|
+
#define BlockIdCopy(toBlockId, fromBlockId) \
|
|
96
|
+
( \
|
|
97
|
+
AssertMacro(PointerIsValid(toBlockId)), \
|
|
98
|
+
AssertMacro(PointerIsValid(fromBlockId)), \
|
|
99
|
+
(toBlockId)->bi_hi = (fromBlockId)->bi_hi, \
|
|
100
|
+
(toBlockId)->bi_lo = (fromBlockId)->bi_lo \
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
/*
|
|
104
|
+
* BlockIdEquals
|
|
105
|
+
* Check for block number equality.
|
|
106
|
+
*/
|
|
107
|
+
#define BlockIdEquals(blockId1, blockId2) \
|
|
108
|
+
((blockId1)->bi_hi == (blockId2)->bi_hi && \
|
|
109
|
+
(blockId1)->bi_lo == (blockId2)->bi_lo)
|
|
110
|
+
|
|
111
|
+
/*
|
|
112
|
+
* BlockIdGetBlockNumber
|
|
113
|
+
* Retrieve the block number from a block identifier.
|
|
114
|
+
*/
|
|
115
|
+
#define BlockIdGetBlockNumber(blockId) \
|
|
116
|
+
( \
|
|
117
|
+
AssertMacro(BlockIdIsValid(blockId)), \
|
|
118
|
+
(BlockNumber) (((blockId)->bi_hi << 16) | ((uint16) (blockId)->bi_lo)) \
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
#endif /* BLOCK_H */
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* buf.h
|
|
4
|
+
* Basic buffer manager data types.
|
|
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/storage/buf.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef BUF_H
|
|
15
|
+
#define BUF_H
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Buffer identifiers.
|
|
19
|
+
*
|
|
20
|
+
* Zero is invalid, positive is the index of a shared buffer (1..NBuffers),
|
|
21
|
+
* negative is the index of a local buffer (-1 .. -NLocBuffer).
|
|
22
|
+
*/
|
|
23
|
+
typedef int Buffer;
|
|
24
|
+
|
|
25
|
+
#define InvalidBuffer 0
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
* BufferIsInvalid
|
|
29
|
+
* True iff the buffer is invalid.
|
|
30
|
+
*/
|
|
31
|
+
#define BufferIsInvalid(buffer) ((buffer) == InvalidBuffer)
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* BufferIsLocal
|
|
35
|
+
* True iff the buffer is local (not visible to other backends).
|
|
36
|
+
*/
|
|
37
|
+
#define BufferIsLocal(buffer) ((buffer) < 0)
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* Buffer access strategy objects.
|
|
41
|
+
*
|
|
42
|
+
* BufferAccessStrategyData is private to freelist.c
|
|
43
|
+
*/
|
|
44
|
+
typedef struct BufferAccessStrategyData *BufferAccessStrategy;
|
|
45
|
+
|
|
46
|
+
#endif /* BUF_H */
|