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,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* variable.h
|
|
3
|
+
* Routines for handling specialized SET variables.
|
|
4
|
+
*
|
|
5
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
6
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
|
+
*
|
|
8
|
+
* src/include/commands/variable.h
|
|
9
|
+
*/
|
|
10
|
+
#ifndef VARIABLE_H
|
|
11
|
+
#define VARIABLE_H
|
|
12
|
+
|
|
13
|
+
#include "utils/guc.h"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
extern bool check_datestyle(char **newval, void **extra, GucSource source);
|
|
17
|
+
extern void assign_datestyle(const char *newval, void *extra);
|
|
18
|
+
extern bool check_timezone(char **newval, void **extra, GucSource source);
|
|
19
|
+
extern void assign_timezone(const char *newval, void *extra);
|
|
20
|
+
extern const char *show_timezone(void);
|
|
21
|
+
extern bool check_log_timezone(char **newval, void **extra, GucSource source);
|
|
22
|
+
extern void assign_log_timezone(const char *newval, void *extra);
|
|
23
|
+
extern const char *show_log_timezone(void);
|
|
24
|
+
extern bool check_transaction_read_only(bool *newval, void **extra, GucSource source);
|
|
25
|
+
extern bool check_XactIsoLevel(int *newval, void **extra, GucSource source);
|
|
26
|
+
extern bool check_transaction_deferrable(bool *newval, void **extra, GucSource source);
|
|
27
|
+
extern bool check_random_seed(double *newval, void **extra, GucSource source);
|
|
28
|
+
extern void assign_random_seed(double newval, void *extra);
|
|
29
|
+
extern const char *show_random_seed(void);
|
|
30
|
+
extern bool check_client_encoding(char **newval, void **extra, GucSource source);
|
|
31
|
+
extern void assign_client_encoding(const char *newval, void *extra);
|
|
32
|
+
extern bool check_session_authorization(char **newval, void **extra, GucSource source);
|
|
33
|
+
extern void assign_session_authorization(const char *newval, void *extra);
|
|
34
|
+
extern bool check_role(char **newval, void **extra, GucSource source);
|
|
35
|
+
extern void assign_role(const char *newval, void *extra);
|
|
36
|
+
extern const char *show_role(void);
|
|
37
|
+
|
|
38
|
+
#endif /* VARIABLE_H */
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* File and directory permission definitions
|
|
4
|
+
*
|
|
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/common/file_perm.h
|
|
10
|
+
*
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef FILE_PERM_H
|
|
14
|
+
#define FILE_PERM_H
|
|
15
|
+
|
|
16
|
+
#include <sys/stat.h>
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* Mode mask for data directory permissions that only allows the owner to
|
|
20
|
+
* read/write directories and files.
|
|
21
|
+
*
|
|
22
|
+
* This is the default.
|
|
23
|
+
*/
|
|
24
|
+
#define PG_MODE_MASK_OWNER (S_IRWXG | S_IRWXO)
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Mode mask for data directory permissions that also allows group read/execute.
|
|
28
|
+
*/
|
|
29
|
+
#define PG_MODE_MASK_GROUP (S_IWGRP | S_IRWXO)
|
|
30
|
+
|
|
31
|
+
/* Default mode for creating directories */
|
|
32
|
+
#define PG_DIR_MODE_OWNER S_IRWXU
|
|
33
|
+
|
|
34
|
+
/* Mode for creating directories that allows group read/execute */
|
|
35
|
+
#define PG_DIR_MODE_GROUP (S_IRWXU | S_IRGRP | S_IXGRP)
|
|
36
|
+
|
|
37
|
+
/* Default mode for creating files */
|
|
38
|
+
#define PG_FILE_MODE_OWNER (S_IRUSR | S_IWUSR)
|
|
39
|
+
|
|
40
|
+
/* Mode for creating files that allows group read */
|
|
41
|
+
#define PG_FILE_MODE_GROUP (S_IRUSR | S_IWUSR | S_IRGRP)
|
|
42
|
+
|
|
43
|
+
/* Modes for creating directories and files in the data directory */
|
|
44
|
+
extern int pg_dir_create_mode;
|
|
45
|
+
extern int pg_file_create_mode;
|
|
46
|
+
|
|
47
|
+
/* Mode mask to pass to umask() */
|
|
48
|
+
extern int pg_mode_mask;
|
|
49
|
+
|
|
50
|
+
/* Set permissions and mask based on the provided mode */
|
|
51
|
+
extern void SetDataDirectoryCreatePerm(int dataDirMode);
|
|
52
|
+
|
|
53
|
+
/* Set permissions and mask based on the mode of the data directory */
|
|
54
|
+
extern bool GetDataDirectoryCreatePerm(const char *dataDir);
|
|
55
|
+
|
|
56
|
+
#endif /* FILE_PERM_H */
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Utilities for working with hash values.
|
|
3
|
+
*
|
|
4
|
+
* Portions Copyright (c) 2017-2020, PostgreSQL Global Development Group
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef HASHFN_H
|
|
8
|
+
#define HASHFN_H
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/*
|
|
12
|
+
* Rotate the high 32 bits and the low 32 bits separately. The standard
|
|
13
|
+
* hash function sometimes rotates the low 32 bits by one bit when
|
|
14
|
+
* combining elements. We want extended hash functions to be compatible with
|
|
15
|
+
* that algorithm when the seed is 0, so we can't just do a normal rotation.
|
|
16
|
+
* This works, though.
|
|
17
|
+
*/
|
|
18
|
+
#define ROTATE_HIGH_AND_LOW_32BITS(v) \
|
|
19
|
+
((((v) << 1) & UINT64CONST(0xfffffffefffffffe)) | \
|
|
20
|
+
(((v) >> 31) & UINT64CONST(0x100000001)))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
extern uint32 hash_bytes(const unsigned char *k, int keylen);
|
|
24
|
+
extern uint64 hash_bytes_extended(const unsigned char *k,
|
|
25
|
+
int keylen, uint64 seed);
|
|
26
|
+
extern uint32 hash_bytes_uint32(uint32 k);
|
|
27
|
+
extern uint64 hash_bytes_uint32_extended(uint32 k, uint64 seed);
|
|
28
|
+
|
|
29
|
+
#ifndef FRONTEND
|
|
30
|
+
static inline Datum
|
|
31
|
+
hash_any(const unsigned char *k, int keylen)
|
|
32
|
+
{
|
|
33
|
+
return UInt32GetDatum(hash_bytes(k, keylen));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static inline Datum
|
|
37
|
+
hash_any_extended(const unsigned char *k, int keylen, uint64 seed)
|
|
38
|
+
{
|
|
39
|
+
return UInt64GetDatum(hash_bytes_extended(k, keylen, seed));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static inline Datum
|
|
43
|
+
hash_uint32(uint32 k)
|
|
44
|
+
{
|
|
45
|
+
return UInt32GetDatum(hash_bytes_uint32(k));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static inline Datum
|
|
49
|
+
hash_uint32_extended(uint32 k, uint64 seed)
|
|
50
|
+
{
|
|
51
|
+
return UInt64GetDatum(hash_bytes_uint32_extended(k, seed));
|
|
52
|
+
}
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
extern uint32 string_hash(const void *key, Size keysize);
|
|
56
|
+
extern uint32 tag_hash(const void *key, Size keysize);
|
|
57
|
+
extern uint32 uint32_hash(const void *key, Size keysize);
|
|
58
|
+
|
|
59
|
+
#define oid_hash uint32_hash /* Remove me eventually */
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Combine two 32-bit hash values, resulting in another hash value, with
|
|
63
|
+
* decent bit mixing.
|
|
64
|
+
*
|
|
65
|
+
* Similar to boost's hash_combine().
|
|
66
|
+
*/
|
|
67
|
+
static inline uint32
|
|
68
|
+
hash_combine(uint32 a, uint32 b)
|
|
69
|
+
{
|
|
70
|
+
a ^= b + 0x9e3779b9 + (a << 6) + (a >> 2);
|
|
71
|
+
return a;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* Combine two 64-bit hash values, resulting in another hash value, using the
|
|
76
|
+
* same kind of technique as hash_combine(). Testing shows that this also
|
|
77
|
+
* produces good bit mixing.
|
|
78
|
+
*/
|
|
79
|
+
static inline uint64
|
|
80
|
+
hash_combine64(uint64 a, uint64 b)
|
|
81
|
+
{
|
|
82
|
+
/* 0x49a0f4dd15e5a8e3 is 64bit random data */
|
|
83
|
+
a ^= b + UINT64CONST(0x49a0f4dd15e5a8e3) + (a << 54) + (a >> 7);
|
|
84
|
+
return a;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Simple inline murmur hash implementation hashing a 32 bit integer, for
|
|
89
|
+
* performance.
|
|
90
|
+
*/
|
|
91
|
+
static inline uint32
|
|
92
|
+
murmurhash32(uint32 data)
|
|
93
|
+
{
|
|
94
|
+
uint32 h = data;
|
|
95
|
+
|
|
96
|
+
h ^= h >> 16;
|
|
97
|
+
h *= 0x85ebca6b;
|
|
98
|
+
h ^= h >> 13;
|
|
99
|
+
h *= 0xc2b2ae35;
|
|
100
|
+
h ^= h >> 16;
|
|
101
|
+
return h;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
#endif /* HASHFN_H */
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* ip.h
|
|
4
|
+
* Definitions for IPv6-aware network access.
|
|
5
|
+
*
|
|
6
|
+
* These definitions are used by both frontend and backend code.
|
|
7
|
+
*
|
|
8
|
+
* Copyright (c) 2003-2020, PostgreSQL Global Development Group
|
|
9
|
+
*
|
|
10
|
+
* src/include/common/ip.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef IP_H
|
|
15
|
+
#define IP_H
|
|
16
|
+
|
|
17
|
+
#include "getaddrinfo.h" /* pgrminclude ignore */
|
|
18
|
+
#include "libpq/pqcomm.h" /* pgrminclude ignore */
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
#ifdef HAVE_UNIX_SOCKETS
|
|
22
|
+
#define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
|
|
23
|
+
#else
|
|
24
|
+
#define IS_AF_UNIX(fam) (0)
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
extern int pg_getaddrinfo_all(const char *hostname, const char *servname,
|
|
28
|
+
const struct addrinfo *hintp,
|
|
29
|
+
struct addrinfo **result);
|
|
30
|
+
extern void pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo *ai);
|
|
31
|
+
|
|
32
|
+
extern int pg_getnameinfo_all(const struct sockaddr_storage *addr, int salen,
|
|
33
|
+
char *node, int nodelen,
|
|
34
|
+
char *service, int servicelen,
|
|
35
|
+
int flags);
|
|
36
|
+
|
|
37
|
+
#endif /* IP_H */
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* keywords.h
|
|
4
|
+
* PostgreSQL's list of SQL keywords
|
|
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/common/keywords.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef KEYWORDS_H
|
|
15
|
+
#define KEYWORDS_H
|
|
16
|
+
|
|
17
|
+
#include "common/kwlookup.h"
|
|
18
|
+
|
|
19
|
+
/* Keyword categories --- should match lists in gram.y */
|
|
20
|
+
#define UNRESERVED_KEYWORD 0
|
|
21
|
+
#define COL_NAME_KEYWORD 1
|
|
22
|
+
#define TYPE_FUNC_NAME_KEYWORD 2
|
|
23
|
+
#define RESERVED_KEYWORD 3
|
|
24
|
+
|
|
25
|
+
#ifndef FRONTEND
|
|
26
|
+
extern PGDLLIMPORT const ScanKeywordList ScanKeywords;
|
|
27
|
+
extern PGDLLIMPORT const uint8 ScanKeywordCategories[];
|
|
28
|
+
#else
|
|
29
|
+
extern const ScanKeywordList ScanKeywords;
|
|
30
|
+
extern const uint8 ScanKeywordCategories[];
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#endif /* KEYWORDS_H */
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* kwlookup.h
|
|
4
|
+
* Key word lookup for PostgreSQL
|
|
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/common/kwlookup.h
|
|
11
|
+
*
|
|
12
|
+
*-------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
#ifndef KWLOOKUP_H
|
|
15
|
+
#define KWLOOKUP_H
|
|
16
|
+
|
|
17
|
+
/* Hash function used by ScanKeywordLookup */
|
|
18
|
+
typedef int (*ScanKeywordHashFunc) (const void *key, size_t keylen);
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* This struct contains the data needed by ScanKeywordLookup to perform a
|
|
22
|
+
* search within a set of keywords. The contents are typically generated by
|
|
23
|
+
* src/tools/gen_keywordlist.pl from a header containing PG_KEYWORD macros.
|
|
24
|
+
*/
|
|
25
|
+
typedef struct ScanKeywordList
|
|
26
|
+
{
|
|
27
|
+
const char *kw_string; /* all keywords in order, separated by \0 */
|
|
28
|
+
const uint16 *kw_offsets; /* offsets to the start of each keyword */
|
|
29
|
+
ScanKeywordHashFunc hash; /* perfect hash function for keywords */
|
|
30
|
+
int num_keywords; /* number of keywords */
|
|
31
|
+
int max_kw_len; /* length of longest keyword */
|
|
32
|
+
} ScanKeywordList;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
extern int ScanKeywordLookup(const char *text, const ScanKeywordList *keywords);
|
|
36
|
+
|
|
37
|
+
/* Code that wants to retrieve the text of the N'th keyword should use this. */
|
|
38
|
+
static inline const char *
|
|
39
|
+
GetScanKeyword(int n, const ScanKeywordList *keywords)
|
|
40
|
+
{
|
|
41
|
+
return keywords->kw_string + keywords->kw_offsets[n];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#endif /* KWLOOKUP_H */
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* relpath.h
|
|
4
|
+
* Declarations for GetRelationPath() and friends
|
|
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/common/relpath.h
|
|
10
|
+
*
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef RELPATH_H
|
|
14
|
+
#define RELPATH_H
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
* 'pgrminclude ignore' needed here because CppAsString2() does not throw
|
|
18
|
+
* an error if the symbol is not defined.
|
|
19
|
+
*/
|
|
20
|
+
#include "catalog/catversion.h" /* pgrminclude ignore */
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Name of major-version-specific tablespace subdirectories
|
|
25
|
+
*/
|
|
26
|
+
#define TABLESPACE_VERSION_DIRECTORY "PG_" PG_MAJORVERSION "_" \
|
|
27
|
+
CppAsString2(CATALOG_VERSION_NO)
|
|
28
|
+
|
|
29
|
+
/* Characters to allow for an OID in a relation path */
|
|
30
|
+
#define OIDCHARS 10 /* max chars printed by %u */
|
|
31
|
+
|
|
32
|
+
/*
|
|
33
|
+
* Stuff for fork names.
|
|
34
|
+
*
|
|
35
|
+
* The physical storage of a relation consists of one or more forks.
|
|
36
|
+
* The main fork is always created, but in addition to that there can be
|
|
37
|
+
* additional forks for storing various metadata. ForkNumber is used when
|
|
38
|
+
* we need to refer to a specific fork in a relation.
|
|
39
|
+
*/
|
|
40
|
+
typedef enum ForkNumber
|
|
41
|
+
{
|
|
42
|
+
InvalidForkNumber = -1,
|
|
43
|
+
MAIN_FORKNUM = 0,
|
|
44
|
+
FSM_FORKNUM,
|
|
45
|
+
VISIBILITYMAP_FORKNUM,
|
|
46
|
+
INIT_FORKNUM
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
* NOTE: if you add a new fork, change MAX_FORKNUM and possibly
|
|
50
|
+
* FORKNAMECHARS below, and update the forkNames array in
|
|
51
|
+
* src/common/relpath.c
|
|
52
|
+
*/
|
|
53
|
+
} ForkNumber;
|
|
54
|
+
|
|
55
|
+
#define MAX_FORKNUM INIT_FORKNUM
|
|
56
|
+
|
|
57
|
+
#define FORKNAMECHARS 4 /* max chars for a fork name */
|
|
58
|
+
|
|
59
|
+
extern const char *const forkNames[];
|
|
60
|
+
|
|
61
|
+
extern ForkNumber forkname_to_number(const char *forkName);
|
|
62
|
+
extern int forkname_chars(const char *str, ForkNumber *fork);
|
|
63
|
+
|
|
64
|
+
/*
|
|
65
|
+
* Stuff for computing filesystem pathnames for relations.
|
|
66
|
+
*/
|
|
67
|
+
extern char *GetDatabasePath(Oid dbNode, Oid spcNode);
|
|
68
|
+
|
|
69
|
+
extern char *GetRelationPath(Oid dbNode, Oid spcNode, Oid relNode,
|
|
70
|
+
int backendId, ForkNumber forkNumber);
|
|
71
|
+
|
|
72
|
+
/*
|
|
73
|
+
* Wrapper macros for GetRelationPath. Beware of multiple
|
|
74
|
+
* evaluation of the RelFileNode or RelFileNodeBackend argument!
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/* First argument is a RelFileNode */
|
|
78
|
+
#define relpathbackend(rnode, backend, forknum) \
|
|
79
|
+
GetRelationPath((rnode).dbNode, (rnode).spcNode, (rnode).relNode, \
|
|
80
|
+
backend, forknum)
|
|
81
|
+
|
|
82
|
+
/* First argument is a RelFileNode */
|
|
83
|
+
#define relpathperm(rnode, forknum) \
|
|
84
|
+
relpathbackend(rnode, InvalidBackendId, forknum)
|
|
85
|
+
|
|
86
|
+
/* First argument is a RelFileNodeBackend */
|
|
87
|
+
#define relpath(rnode, forknum) \
|
|
88
|
+
relpathbackend((rnode).node, (rnode).backend, forknum)
|
|
89
|
+
|
|
90
|
+
#endif /* RELPATH_H */
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* string.h
|
|
3
|
+
* string handling helpers
|
|
4
|
+
*
|
|
5
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
6
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
7
|
+
*
|
|
8
|
+
* src/include/common/string.h
|
|
9
|
+
*/
|
|
10
|
+
#ifndef COMMON_STRING_H
|
|
11
|
+
#define COMMON_STRING_H
|
|
12
|
+
|
|
13
|
+
extern bool pg_str_endswith(const char *str, const char *end);
|
|
14
|
+
extern int strtoint(const char *pg_restrict str, char **pg_restrict endptr,
|
|
15
|
+
int base);
|
|
16
|
+
extern void pg_clean_ascii(char *str);
|
|
17
|
+
extern int pg_strip_crlf(char *str);
|
|
18
|
+
|
|
19
|
+
#endif /* COMMON_STRING_H */
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* generated by src/common/unicode/generate-unicode_combining_table.pl, do not edit */
|
|
2
|
+
|
|
3
|
+
static const struct mbinterval combining[] = {
|
|
4
|
+
{0x0300, 0x036F},
|
|
5
|
+
{0x0483, 0x0489},
|
|
6
|
+
{0x0591, 0x05BD},
|
|
7
|
+
{0x05BF, 0x05BF},
|
|
8
|
+
{0x05C1, 0x05C2},
|
|
9
|
+
{0x05C4, 0x05C5},
|
|
10
|
+
{0x05C7, 0x05C7},
|
|
11
|
+
{0x0610, 0x061A},
|
|
12
|
+
{0x064B, 0x065F},
|
|
13
|
+
{0x0670, 0x0670},
|
|
14
|
+
{0x06D6, 0x06DC},
|
|
15
|
+
{0x06DF, 0x06E4},
|
|
16
|
+
{0x06E7, 0x06E8},
|
|
17
|
+
{0x06EA, 0x06ED},
|
|
18
|
+
{0x0711, 0x0711},
|
|
19
|
+
{0x0730, 0x074A},
|
|
20
|
+
{0x07A6, 0x07B0},
|
|
21
|
+
{0x07EB, 0x07F3},
|
|
22
|
+
{0x07FD, 0x07FD},
|
|
23
|
+
{0x0816, 0x0819},
|
|
24
|
+
{0x081B, 0x0823},
|
|
25
|
+
{0x0825, 0x0827},
|
|
26
|
+
{0x0829, 0x082D},
|
|
27
|
+
{0x0859, 0x085B},
|
|
28
|
+
{0x08D3, 0x08E1},
|
|
29
|
+
{0x08E3, 0x0902},
|
|
30
|
+
{0x093A, 0x093A},
|
|
31
|
+
{0x093C, 0x093C},
|
|
32
|
+
{0x0941, 0x0948},
|
|
33
|
+
{0x094D, 0x094D},
|
|
34
|
+
{0x0951, 0x0957},
|
|
35
|
+
{0x0962, 0x0963},
|
|
36
|
+
{0x0981, 0x0981},
|
|
37
|
+
{0x09BC, 0x09BC},
|
|
38
|
+
{0x09C1, 0x09C4},
|
|
39
|
+
{0x09CD, 0x09CD},
|
|
40
|
+
{0x09E2, 0x09E3},
|
|
41
|
+
{0x09FE, 0x0A02},
|
|
42
|
+
{0x0A3C, 0x0A3C},
|
|
43
|
+
{0x0A41, 0x0A51},
|
|
44
|
+
{0x0A70, 0x0A71},
|
|
45
|
+
{0x0A75, 0x0A75},
|
|
46
|
+
{0x0A81, 0x0A82},
|
|
47
|
+
{0x0ABC, 0x0ABC},
|
|
48
|
+
{0x0AC1, 0x0AC8},
|
|
49
|
+
{0x0ACD, 0x0ACD},
|
|
50
|
+
{0x0AE2, 0x0AE3},
|
|
51
|
+
{0x0AFA, 0x0B01},
|
|
52
|
+
{0x0B3C, 0x0B3C},
|
|
53
|
+
{0x0B3F, 0x0B3F},
|
|
54
|
+
{0x0B41, 0x0B44},
|
|
55
|
+
{0x0B4D, 0x0B56},
|
|
56
|
+
{0x0B62, 0x0B63},
|
|
57
|
+
{0x0B82, 0x0B82},
|
|
58
|
+
{0x0BC0, 0x0BC0},
|
|
59
|
+
{0x0BCD, 0x0BCD},
|
|
60
|
+
{0x0C00, 0x0C00},
|
|
61
|
+
{0x0C04, 0x0C04},
|
|
62
|
+
{0x0C3E, 0x0C40},
|
|
63
|
+
{0x0C46, 0x0C56},
|
|
64
|
+
{0x0C62, 0x0C63},
|
|
65
|
+
{0x0C81, 0x0C81},
|
|
66
|
+
{0x0CBC, 0x0CBC},
|
|
67
|
+
{0x0CBF, 0x0CBF},
|
|
68
|
+
{0x0CC6, 0x0CC6},
|
|
69
|
+
{0x0CCC, 0x0CCD},
|
|
70
|
+
{0x0CE2, 0x0CE3},
|
|
71
|
+
{0x0D00, 0x0D01},
|
|
72
|
+
{0x0D3B, 0x0D3C},
|
|
73
|
+
{0x0D41, 0x0D44},
|
|
74
|
+
{0x0D4D, 0x0D4D},
|
|
75
|
+
{0x0D62, 0x0D63},
|
|
76
|
+
{0x0D81, 0x0D81},
|
|
77
|
+
{0x0DCA, 0x0DCA},
|
|
78
|
+
{0x0DD2, 0x0DD6},
|
|
79
|
+
{0x0E31, 0x0E31},
|
|
80
|
+
{0x0E34, 0x0E3A},
|
|
81
|
+
{0x0E47, 0x0E4E},
|
|
82
|
+
{0x0EB1, 0x0EB1},
|
|
83
|
+
{0x0EB4, 0x0EBC},
|
|
84
|
+
{0x0EC8, 0x0ECD},
|
|
85
|
+
{0x0F18, 0x0F19},
|
|
86
|
+
{0x0F35, 0x0F35},
|
|
87
|
+
{0x0F37, 0x0F37},
|
|
88
|
+
{0x0F39, 0x0F39},
|
|
89
|
+
{0x0F71, 0x0F7E},
|
|
90
|
+
{0x0F80, 0x0F84},
|
|
91
|
+
{0x0F86, 0x0F87},
|
|
92
|
+
{0x0F8D, 0x0FBC},
|
|
93
|
+
{0x0FC6, 0x0FC6},
|
|
94
|
+
{0x102D, 0x1030},
|
|
95
|
+
{0x1032, 0x1037},
|
|
96
|
+
{0x1039, 0x103A},
|
|
97
|
+
{0x103D, 0x103E},
|
|
98
|
+
{0x1058, 0x1059},
|
|
99
|
+
{0x105E, 0x1060},
|
|
100
|
+
{0x1071, 0x1074},
|
|
101
|
+
{0x1082, 0x1082},
|
|
102
|
+
{0x1085, 0x1086},
|
|
103
|
+
{0x108D, 0x108D},
|
|
104
|
+
{0x109D, 0x109D},
|
|
105
|
+
{0x135D, 0x135F},
|
|
106
|
+
{0x1712, 0x1714},
|
|
107
|
+
{0x1732, 0x1734},
|
|
108
|
+
{0x1752, 0x1753},
|
|
109
|
+
{0x1772, 0x1773},
|
|
110
|
+
{0x17B4, 0x17B5},
|
|
111
|
+
{0x17B7, 0x17BD},
|
|
112
|
+
{0x17C6, 0x17C6},
|
|
113
|
+
{0x17C9, 0x17D3},
|
|
114
|
+
{0x17DD, 0x17DD},
|
|
115
|
+
{0x180B, 0x180D},
|
|
116
|
+
{0x1885, 0x1886},
|
|
117
|
+
{0x18A9, 0x18A9},
|
|
118
|
+
{0x1920, 0x1922},
|
|
119
|
+
{0x1927, 0x1928},
|
|
120
|
+
{0x1932, 0x1932},
|
|
121
|
+
{0x1939, 0x193B},
|
|
122
|
+
{0x1A17, 0x1A18},
|
|
123
|
+
{0x1A1B, 0x1A1B},
|
|
124
|
+
{0x1A56, 0x1A56},
|
|
125
|
+
{0x1A58, 0x1A60},
|
|
126
|
+
{0x1A62, 0x1A62},
|
|
127
|
+
{0x1A65, 0x1A6C},
|
|
128
|
+
{0x1A73, 0x1A7F},
|
|
129
|
+
{0x1AB0, 0x1B03},
|
|
130
|
+
{0x1B34, 0x1B34},
|
|
131
|
+
{0x1B36, 0x1B3A},
|
|
132
|
+
{0x1B3C, 0x1B3C},
|
|
133
|
+
{0x1B42, 0x1B42},
|
|
134
|
+
{0x1B6B, 0x1B73},
|
|
135
|
+
{0x1B80, 0x1B81},
|
|
136
|
+
{0x1BA2, 0x1BA5},
|
|
137
|
+
{0x1BA8, 0x1BA9},
|
|
138
|
+
{0x1BAB, 0x1BAD},
|
|
139
|
+
{0x1BE6, 0x1BE6},
|
|
140
|
+
{0x1BE8, 0x1BE9},
|
|
141
|
+
{0x1BED, 0x1BED},
|
|
142
|
+
{0x1BEF, 0x1BF1},
|
|
143
|
+
{0x1C2C, 0x1C33},
|
|
144
|
+
{0x1C36, 0x1C37},
|
|
145
|
+
{0x1CD0, 0x1CD2},
|
|
146
|
+
{0x1CD4, 0x1CE0},
|
|
147
|
+
{0x1CE2, 0x1CE8},
|
|
148
|
+
{0x1CED, 0x1CED},
|
|
149
|
+
{0x1CF4, 0x1CF4},
|
|
150
|
+
{0x1CF8, 0x1CF9},
|
|
151
|
+
{0x1DC0, 0x1DFF},
|
|
152
|
+
{0x20D0, 0x20F0},
|
|
153
|
+
{0x2CEF, 0x2CF1},
|
|
154
|
+
{0x2D7F, 0x2D7F},
|
|
155
|
+
{0x2DE0, 0x2DFF},
|
|
156
|
+
{0x302A, 0x302D},
|
|
157
|
+
{0x3099, 0x309A},
|
|
158
|
+
{0xA66F, 0xA672},
|
|
159
|
+
{0xA674, 0xA67D},
|
|
160
|
+
{0xA69E, 0xA69F},
|
|
161
|
+
{0xA6F0, 0xA6F1},
|
|
162
|
+
{0xA802, 0xA802},
|
|
163
|
+
{0xA806, 0xA806},
|
|
164
|
+
{0xA80B, 0xA80B},
|
|
165
|
+
{0xA825, 0xA826},
|
|
166
|
+
{0xA82C, 0xA82C},
|
|
167
|
+
{0xA8C4, 0xA8C5},
|
|
168
|
+
{0xA8E0, 0xA8F1},
|
|
169
|
+
{0xA8FF, 0xA8FF},
|
|
170
|
+
{0xA926, 0xA92D},
|
|
171
|
+
{0xA947, 0xA951},
|
|
172
|
+
{0xA980, 0xA982},
|
|
173
|
+
{0xA9B3, 0xA9B3},
|
|
174
|
+
{0xA9B6, 0xA9B9},
|
|
175
|
+
{0xA9BC, 0xA9BD},
|
|
176
|
+
{0xA9E5, 0xA9E5},
|
|
177
|
+
{0xAA29, 0xAA2E},
|
|
178
|
+
{0xAA31, 0xAA32},
|
|
179
|
+
{0xAA35, 0xAA36},
|
|
180
|
+
{0xAA43, 0xAA43},
|
|
181
|
+
{0xAA4C, 0xAA4C},
|
|
182
|
+
{0xAA7C, 0xAA7C},
|
|
183
|
+
{0xAAB0, 0xAAB0},
|
|
184
|
+
{0xAAB2, 0xAAB4},
|
|
185
|
+
{0xAAB7, 0xAAB8},
|
|
186
|
+
{0xAABE, 0xAABF},
|
|
187
|
+
{0xAAC1, 0xAAC1},
|
|
188
|
+
{0xAAEC, 0xAAED},
|
|
189
|
+
{0xAAF6, 0xAAF6},
|
|
190
|
+
{0xABE5, 0xABE5},
|
|
191
|
+
{0xABE8, 0xABE8},
|
|
192
|
+
{0xABED, 0xABED},
|
|
193
|
+
{0xFB1E, 0xFB1E},
|
|
194
|
+
{0xFE00, 0xFE0F},
|
|
195
|
+
{0xFE20, 0xFE2F},
|
|
196
|
+
};
|