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,324 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------
|
|
2
|
+
* Symbols referenced in this file:
|
|
3
|
+
* - pg_strerror_r
|
|
4
|
+
* - gnuish_strerror_r
|
|
5
|
+
* - get_errno_symbol
|
|
6
|
+
*--------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/*-------------------------------------------------------------------------
|
|
10
|
+
*
|
|
11
|
+
* strerror.c
|
|
12
|
+
* Replacements for standard strerror() and strerror_r() functions
|
|
13
|
+
*
|
|
14
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
15
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
|
+
*
|
|
17
|
+
*
|
|
18
|
+
* IDENTIFICATION
|
|
19
|
+
* src/port/strerror.c
|
|
20
|
+
*
|
|
21
|
+
*-------------------------------------------------------------------------
|
|
22
|
+
*/
|
|
23
|
+
#include "c.h"
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* Within this file, "strerror" means the platform's function not pg_strerror,
|
|
27
|
+
* and likewise for "strerror_r"
|
|
28
|
+
*/
|
|
29
|
+
#undef strerror
|
|
30
|
+
#undef strerror_r
|
|
31
|
+
|
|
32
|
+
static char *gnuish_strerror_r(int errnum, char *buf, size_t buflen);
|
|
33
|
+
static char *get_errno_symbol(int errnum);
|
|
34
|
+
#ifdef WIN32
|
|
35
|
+
static char *win32_socket_strerror(int errnum, char *buf, size_t buflen);
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* A slightly cleaned-up version of strerror()
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/*
|
|
45
|
+
* A slightly cleaned-up version of strerror_r()
|
|
46
|
+
*/
|
|
47
|
+
char *
|
|
48
|
+
pg_strerror_r(int errnum, char *buf, size_t buflen)
|
|
49
|
+
{
|
|
50
|
+
char *str;
|
|
51
|
+
|
|
52
|
+
/* If it's a Windows Winsock error, that needs special handling */
|
|
53
|
+
#ifdef WIN32
|
|
54
|
+
/* Winsock error code range, per WinError.h */
|
|
55
|
+
if (errnum >= 10000 && errnum <= 11999)
|
|
56
|
+
return win32_socket_strerror(errnum, buf, buflen);
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
/* Try the platform's strerror_r(), or maybe just strerror() */
|
|
60
|
+
str = gnuish_strerror_r(errnum, buf, buflen);
|
|
61
|
+
|
|
62
|
+
/*
|
|
63
|
+
* Some strerror()s return an empty string for out-of-range errno. This
|
|
64
|
+
* is ANSI C spec compliant, but not exactly useful. Also, we may get
|
|
65
|
+
* back strings of question marks if libc cannot transcode the message to
|
|
66
|
+
* the codeset specified by LC_CTYPE. If we get nothing useful, first try
|
|
67
|
+
* get_errno_symbol(), and if that fails, print the numeric errno.
|
|
68
|
+
*/
|
|
69
|
+
if (str == NULL || *str == '\0' || *str == '?')
|
|
70
|
+
str = get_errno_symbol(errnum);
|
|
71
|
+
|
|
72
|
+
if (str == NULL)
|
|
73
|
+
{
|
|
74
|
+
snprintf(buf, buflen, _("operating system error %d"), errnum);
|
|
75
|
+
str = buf;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return str;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* Simple wrapper to emulate GNU strerror_r if what the platform provides is
|
|
83
|
+
* POSIX. Also, if platform lacks strerror_r altogether, fall back to plain
|
|
84
|
+
* strerror; it might not be very thread-safe, but tough luck.
|
|
85
|
+
*/
|
|
86
|
+
static char *
|
|
87
|
+
gnuish_strerror_r(int errnum, char *buf, size_t buflen)
|
|
88
|
+
{
|
|
89
|
+
#ifdef HAVE_STRERROR_R
|
|
90
|
+
#ifdef STRERROR_R_INT
|
|
91
|
+
/* POSIX API */
|
|
92
|
+
if (strerror_r(errnum, buf, buflen) == 0)
|
|
93
|
+
return buf;
|
|
94
|
+
return NULL; /* let caller deal with failure */
|
|
95
|
+
#else
|
|
96
|
+
/* GNU API */
|
|
97
|
+
return strerror_r(errnum, buf, buflen);
|
|
98
|
+
#endif
|
|
99
|
+
#else /* !HAVE_STRERROR_R */
|
|
100
|
+
char *sbuf = strerror(errnum);
|
|
101
|
+
|
|
102
|
+
if (sbuf == NULL) /* can this still happen anywhere? */
|
|
103
|
+
return NULL;
|
|
104
|
+
/* To minimize thread-unsafety hazard, copy into caller's buffer */
|
|
105
|
+
strlcpy(buf, sbuf, buflen);
|
|
106
|
+
return buf;
|
|
107
|
+
#endif
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/*
|
|
111
|
+
* Returns a symbol (e.g. "ENOENT") for an errno code.
|
|
112
|
+
* Returns NULL if the code is unrecognized.
|
|
113
|
+
*/
|
|
114
|
+
static char *
|
|
115
|
+
get_errno_symbol(int errnum)
|
|
116
|
+
{
|
|
117
|
+
switch (errnum)
|
|
118
|
+
{
|
|
119
|
+
case E2BIG:
|
|
120
|
+
return "E2BIG";
|
|
121
|
+
case EACCES:
|
|
122
|
+
return "EACCES";
|
|
123
|
+
#ifdef EADDRINUSE
|
|
124
|
+
case EADDRINUSE:
|
|
125
|
+
return "EADDRINUSE";
|
|
126
|
+
#endif
|
|
127
|
+
#ifdef EADDRNOTAVAIL
|
|
128
|
+
case EADDRNOTAVAIL:
|
|
129
|
+
return "EADDRNOTAVAIL";
|
|
130
|
+
#endif
|
|
131
|
+
case EAFNOSUPPORT:
|
|
132
|
+
return "EAFNOSUPPORT";
|
|
133
|
+
#ifdef EAGAIN
|
|
134
|
+
case EAGAIN:
|
|
135
|
+
return "EAGAIN";
|
|
136
|
+
#endif
|
|
137
|
+
#ifdef EALREADY
|
|
138
|
+
case EALREADY:
|
|
139
|
+
return "EALREADY";
|
|
140
|
+
#endif
|
|
141
|
+
case EBADF:
|
|
142
|
+
return "EBADF";
|
|
143
|
+
#ifdef EBADMSG
|
|
144
|
+
case EBADMSG:
|
|
145
|
+
return "EBADMSG";
|
|
146
|
+
#endif
|
|
147
|
+
case EBUSY:
|
|
148
|
+
return "EBUSY";
|
|
149
|
+
case ECHILD:
|
|
150
|
+
return "ECHILD";
|
|
151
|
+
#ifdef ECONNABORTED
|
|
152
|
+
case ECONNABORTED:
|
|
153
|
+
return "ECONNABORTED";
|
|
154
|
+
#endif
|
|
155
|
+
case ECONNREFUSED:
|
|
156
|
+
return "ECONNREFUSED";
|
|
157
|
+
#ifdef ECONNRESET
|
|
158
|
+
case ECONNRESET:
|
|
159
|
+
return "ECONNRESET";
|
|
160
|
+
#endif
|
|
161
|
+
case EDEADLK:
|
|
162
|
+
return "EDEADLK";
|
|
163
|
+
case EDOM:
|
|
164
|
+
return "EDOM";
|
|
165
|
+
case EEXIST:
|
|
166
|
+
return "EEXIST";
|
|
167
|
+
case EFAULT:
|
|
168
|
+
return "EFAULT";
|
|
169
|
+
case EFBIG:
|
|
170
|
+
return "EFBIG";
|
|
171
|
+
#ifdef EHOSTUNREACH
|
|
172
|
+
case EHOSTUNREACH:
|
|
173
|
+
return "EHOSTUNREACH";
|
|
174
|
+
#endif
|
|
175
|
+
case EIDRM:
|
|
176
|
+
return "EIDRM";
|
|
177
|
+
case EINPROGRESS:
|
|
178
|
+
return "EINPROGRESS";
|
|
179
|
+
case EINTR:
|
|
180
|
+
return "EINTR";
|
|
181
|
+
case EINVAL:
|
|
182
|
+
return "EINVAL";
|
|
183
|
+
case EIO:
|
|
184
|
+
return "EIO";
|
|
185
|
+
#ifdef EISCONN
|
|
186
|
+
case EISCONN:
|
|
187
|
+
return "EISCONN";
|
|
188
|
+
#endif
|
|
189
|
+
case EISDIR:
|
|
190
|
+
return "EISDIR";
|
|
191
|
+
#ifdef ELOOP
|
|
192
|
+
case ELOOP:
|
|
193
|
+
return "ELOOP";
|
|
194
|
+
#endif
|
|
195
|
+
case EMFILE:
|
|
196
|
+
return "EMFILE";
|
|
197
|
+
case EMLINK:
|
|
198
|
+
return "EMLINK";
|
|
199
|
+
case EMSGSIZE:
|
|
200
|
+
return "EMSGSIZE";
|
|
201
|
+
case ENAMETOOLONG:
|
|
202
|
+
return "ENAMETOOLONG";
|
|
203
|
+
case ENFILE:
|
|
204
|
+
return "ENFILE";
|
|
205
|
+
case ENOBUFS:
|
|
206
|
+
return "ENOBUFS";
|
|
207
|
+
case ENODEV:
|
|
208
|
+
return "ENODEV";
|
|
209
|
+
case ENOENT:
|
|
210
|
+
return "ENOENT";
|
|
211
|
+
case ENOEXEC:
|
|
212
|
+
return "ENOEXEC";
|
|
213
|
+
case ENOMEM:
|
|
214
|
+
return "ENOMEM";
|
|
215
|
+
case ENOSPC:
|
|
216
|
+
return "ENOSPC";
|
|
217
|
+
case ENOSYS:
|
|
218
|
+
return "ENOSYS";
|
|
219
|
+
#ifdef ENOTCONN
|
|
220
|
+
case ENOTCONN:
|
|
221
|
+
return "ENOTCONN";
|
|
222
|
+
#endif
|
|
223
|
+
case ENOTDIR:
|
|
224
|
+
return "ENOTDIR";
|
|
225
|
+
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST) /* same code on AIX */
|
|
226
|
+
case ENOTEMPTY:
|
|
227
|
+
return "ENOTEMPTY";
|
|
228
|
+
#endif
|
|
229
|
+
#ifdef ENOTSOCK
|
|
230
|
+
case ENOTSOCK:
|
|
231
|
+
return "ENOTSOCK";
|
|
232
|
+
#endif
|
|
233
|
+
#ifdef ENOTSUP
|
|
234
|
+
case ENOTSUP:
|
|
235
|
+
return "ENOTSUP";
|
|
236
|
+
#endif
|
|
237
|
+
case ENOTTY:
|
|
238
|
+
return "ENOTTY";
|
|
239
|
+
case ENXIO:
|
|
240
|
+
return "ENXIO";
|
|
241
|
+
#if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (EOPNOTSUPP != ENOTSUP))
|
|
242
|
+
case EOPNOTSUPP:
|
|
243
|
+
return "EOPNOTSUPP";
|
|
244
|
+
#endif
|
|
245
|
+
#ifdef EOVERFLOW
|
|
246
|
+
case EOVERFLOW:
|
|
247
|
+
return "EOVERFLOW";
|
|
248
|
+
#endif
|
|
249
|
+
case EPERM:
|
|
250
|
+
return "EPERM";
|
|
251
|
+
case EPIPE:
|
|
252
|
+
return "EPIPE";
|
|
253
|
+
case EPROTONOSUPPORT:
|
|
254
|
+
return "EPROTONOSUPPORT";
|
|
255
|
+
case ERANGE:
|
|
256
|
+
return "ERANGE";
|
|
257
|
+
#ifdef EROFS
|
|
258
|
+
case EROFS:
|
|
259
|
+
return "EROFS";
|
|
260
|
+
#endif
|
|
261
|
+
case ESRCH:
|
|
262
|
+
return "ESRCH";
|
|
263
|
+
#ifdef ETIMEDOUT
|
|
264
|
+
case ETIMEDOUT:
|
|
265
|
+
return "ETIMEDOUT";
|
|
266
|
+
#endif
|
|
267
|
+
#ifdef ETXTBSY
|
|
268
|
+
case ETXTBSY:
|
|
269
|
+
return "ETXTBSY";
|
|
270
|
+
#endif
|
|
271
|
+
#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN))
|
|
272
|
+
case EWOULDBLOCK:
|
|
273
|
+
return "EWOULDBLOCK";
|
|
274
|
+
#endif
|
|
275
|
+
case EXDEV:
|
|
276
|
+
return "EXDEV";
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return NULL;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
#ifdef WIN32
|
|
284
|
+
|
|
285
|
+
/*
|
|
286
|
+
* Windows' strerror() doesn't know the Winsock codes, so handle them this way
|
|
287
|
+
*/
|
|
288
|
+
static char *
|
|
289
|
+
win32_socket_strerror(int errnum, char *buf, size_t buflen)
|
|
290
|
+
{
|
|
291
|
+
static HANDLE handleDLL = INVALID_HANDLE_VALUE;
|
|
292
|
+
|
|
293
|
+
if (handleDLL == INVALID_HANDLE_VALUE)
|
|
294
|
+
{
|
|
295
|
+
handleDLL = LoadLibraryEx("netmsg.dll", NULL,
|
|
296
|
+
DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
|
|
297
|
+
if (handleDLL == NULL)
|
|
298
|
+
{
|
|
299
|
+
snprintf(buf, buflen,
|
|
300
|
+
"winsock error %d (could not load netmsg.dll to translate: error code %lu)",
|
|
301
|
+
errnum, GetLastError());
|
|
302
|
+
return buf;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
ZeroMemory(buf, buflen);
|
|
307
|
+
if (FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS |
|
|
308
|
+
FORMAT_MESSAGE_FROM_SYSTEM |
|
|
309
|
+
FORMAT_MESSAGE_FROM_HMODULE,
|
|
310
|
+
handleDLL,
|
|
311
|
+
errnum,
|
|
312
|
+
MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
|
|
313
|
+
buf,
|
|
314
|
+
buflen - 1,
|
|
315
|
+
NULL) == 0)
|
|
316
|
+
{
|
|
317
|
+
/* Failed to get id */
|
|
318
|
+
snprintf(buf, buflen, "unrecognized winsock error %d", errnum);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return buf;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#endif /* WIN32 */
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*--------------------------------------------------------------------
|
|
2
|
+
* Symbols referenced in this file:
|
|
3
|
+
* - strnlen
|
|
4
|
+
*--------------------------------------------------------------------
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/*-------------------------------------------------------------------------
|
|
8
|
+
*
|
|
9
|
+
* strnlen.c
|
|
10
|
+
* Fallback implementation of strnlen().
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
14
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
15
|
+
*
|
|
16
|
+
* IDENTIFICATION
|
|
17
|
+
* src/port/strnlen.c
|
|
18
|
+
*
|
|
19
|
+
*-------------------------------------------------------------------------
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include "c.h"
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Implementation of posix' strnlen for systems where it's not available.
|
|
26
|
+
*
|
|
27
|
+
* Returns the number of characters before a null-byte in the string pointed
|
|
28
|
+
* to by str, unless there's no null-byte before maxlen. In the latter case
|
|
29
|
+
* maxlen is returned.
|
|
30
|
+
*/
|
|
31
|
+
size_t
|
|
32
|
+
strnlen(const char *str, size_t maxlen)
|
|
33
|
+
{
|
|
34
|
+
const char *p = str;
|
|
35
|
+
|
|
36
|
+
while (maxlen-- > 0 && *p)
|
|
37
|
+
p++;
|
|
38
|
+
return p - str;
|
|
39
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* xxHash - Extremely Fast Hash algorithm
|
|
3
|
+
* Copyright (C) 2012-2020 Yann Collet
|
|
4
|
+
*
|
|
5
|
+
* BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are
|
|
9
|
+
* met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following disclaimer
|
|
15
|
+
* in the documentation and/or other materials provided with the
|
|
16
|
+
* distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
21
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
22
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
23
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
24
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
25
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
26
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
27
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
|
+
*
|
|
30
|
+
* You can contact the author at:
|
|
31
|
+
* - xxHash homepage: https://www.xxhash.com
|
|
32
|
+
* - xxHash source repository: https://github.com/Cyan4973/xxHash
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* xxhash.c instantiates functions defined in xxhash.h
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
#define XXH_STATIC_LINKING_ONLY /* access advanced declarations */
|
|
41
|
+
#define XXH_IMPLEMENTATION /* access definitions */
|
|
42
|
+
|
|
43
|
+
#include "xxhash.h"
|
data/lib/pg_query.rb
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
require 'pg_query/version'
|
|
2
2
|
require 'pg_query/parse_error'
|
|
3
3
|
|
|
4
|
+
require 'pg_query/pg_query_pb'
|
|
5
|
+
require 'pg_query/node'
|
|
6
|
+
|
|
4
7
|
require 'pg_query/pg_query'
|
|
8
|
+
require 'pg_query/constants'
|
|
5
9
|
require 'pg_query/parse'
|
|
6
10
|
require 'pg_query/treewalker'
|
|
7
|
-
require 'pg_query/node_types'
|
|
8
|
-
require 'pg_query/deep_dup'
|
|
9
|
-
|
|
10
|
-
require 'pg_query/legacy_parsetree'
|
|
11
11
|
|
|
12
12
|
require 'pg_query/filter_columns'
|
|
13
|
+
require 'pg_query/json_field_names'
|
|
13
14
|
require 'pg_query/fingerprint'
|
|
14
15
|
require 'pg_query/param_refs'
|
|
15
16
|
require 'pg_query/deparse'
|
|
16
17
|
require 'pg_query/truncate'
|
|
18
|
+
|
|
19
|
+
require 'pg_query/scan'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module PgQuery
|
|
2
|
+
# From Postgres source: src/include/storage/lockdefs.h
|
|
3
|
+
LOCK_MODE_NO_LOCK = 0 # NoLock is not a lock mode, but a flag value meaning "don't get a lock"
|
|
4
|
+
LOCK_MODE_ACCESS_SHARE_LOCK = 1 # SELECT
|
|
5
|
+
LOCK_MODE_ROW_SHARE_LOCK = 2 # SELECT FOR UPDATE/FOR SHARE
|
|
6
|
+
LOCK_MODE_ROW_EXCLUSIVE_LOCK = 3 # INSERT, UPDATE, DELETE
|
|
7
|
+
LOCK_MODE_SHARE_UPDATE_EXCLUSIVE_LOCK = 4 # VACUUM (non-FULL),ANALYZE, CREATE INDEX CONCURRENTLY
|
|
8
|
+
LOCK_MODE_SHARE_LOCK = 5 # CREATE INDEX (WITHOUT CONCURRENTLY)
|
|
9
|
+
LOCK_MODE_SHARE_ROW_EXCLUSIVE_LOCK = 6 # like EXCLUSIVE MODE, but allows ROW SHARE
|
|
10
|
+
LOCK_MODE_EXCLUSIVE_LOCK = 7 # blocks ROW SHARE/SELECT...FOR UPDATE
|
|
11
|
+
LOCK_MODE_ACCESS_EXCLUSIVE_LOCK = 8 # ALTER TABLE, DROP TABLE, VACUUM FULL, and unqualified LOCK TABLE
|
|
12
|
+
|
|
13
|
+
# From Postgres source: src/include/catalog/pg_trigger.h
|
|
14
|
+
TRIGGER_TYPE_ROW = (1 << 0)
|
|
15
|
+
TRIGGER_TYPE_BEFORE = (1 << 1)
|
|
16
|
+
TRIGGER_TYPE_INSERT = (1 << 2)
|
|
17
|
+
TRIGGER_TYPE_DELETE = (1 << 3)
|
|
18
|
+
TRIGGER_TYPE_UPDATE = (1 << 4)
|
|
19
|
+
TRIGGER_TYPE_TRUNCATE = (1 << 5)
|
|
20
|
+
TRIGGER_TYPE_INSTEAD = (1 << 6)
|
|
21
|
+
end
|