pg_query 5.0.0 → 6.0.0
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 +27 -0
- data/README.md +1 -1
- data/Rakefile +3 -4
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +4 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +2901 -1794
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +211 -24
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +272 -53
- data/ext/pg_query/include/postgres/access/amapi.h +299 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +237 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +221 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2109 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +375 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +89 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +91 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +358 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +792 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +519 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2852 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3435 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2335 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +102 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +977 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +584 -0
- data/ext/pg_query/include/postgres/port.h +524 -0
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +743 -0
- data/ext/pg_query/include/postgres/replication/slot.h +285 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +59 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +491 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +127 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +230 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +808 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +131 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
- data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
- data/ext/pg_query/pg_query.c +9 -0
- data/ext/pg_query/pg_query.pb-c.c +6598 -3739
- data/ext/pg_query/pg_query_fingerprint.c +4 -5
- data/ext/pg_query/pg_query_normalize.c +42 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_parse.c +1 -1
- data/ext/pg_query/pg_query_parse_plpgsql.c +18 -17
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +1 -1
- data/ext/pg_query/postgres_deparse.c +409 -21
- data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
- data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
- data/ext/pg_query/src_backend_nodes_list.c +3 -7
- data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
- data/ext/pg_query/src_backend_parser_parser.c +8 -8
- data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
- data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
- data/ext/pg_query/src_backend_utils_error_elog.c +60 -190
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +16 -4
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +19 -81
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -8
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
- data/ext/pg_query/src_common_encnames.c +43 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +511 -466
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +18 -1
- data/ext/pg_query/src_common_wchar.c +45 -108
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +4 -4
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +26 -3
- data/lib/pg_query/treewalker.rb +52 -12
- data/lib/pg_query/truncate.rb +1 -1
- data/lib/pg_query/version.rb +1 -1
- metadata +444 -400
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -292
- data/ext/pg_query/include/access/attmap.h +0 -54
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -233
- data/ext/pg_query/include/access/gin.h +0 -91
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -811
- data/ext/pg_query/include/access/itup.h +0 -170
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -67
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2100
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/tsmapi.h +0 -82
- data/ext/pg_query/include/access/tupconvert.h +0 -54
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -207
- data/ext/pg_query/include/access/twophase.h +0 -65
- data/ext/pg_query/include/access/xact.h +0 -530
- data/ext/pg_query/include/access/xlog.h +0 -302
- data/ext/pg_query/include/access/xlog_internal.h +0 -404
- data/ext/pg_query/include/access/xlogbackup.h +0 -41
- data/ext/pg_query/include/access/xlogdefs.h +0 -82
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -444
- data/ext/pg_query/include/access/xlogrecord.h +0 -248
- data/ext/pg_query/include/access/xlogrecovery.h +0 -158
- data/ext/pg_query/include/archive/archive_module.h +0 -59
- data/ext/pg_query/include/c.h +0 -1379
- data/ext/pg_query/include/catalog/catalog.h +0 -45
- data/ext/pg_query/include/catalog/catversion.h +0 -62
- data/ext/pg_query/include/catalog/dependency.h +0 -270
- data/ext/pg_query/include/catalog/genbki.h +0 -143
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -267
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -223
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -100
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -63
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -258
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_database.h +0 -124
- data/ext/pg_query/include/catalog/pg_database_d.h +0 -52
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -64
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -158
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -37
- data/ext/pg_query/include/commands/defrem.h +0 -161
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -129
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -288
- data/ext/pg_query/include/commands/vacuum.h +0 -386
- data/ext/pg_query/include/common/cryptohash.h +0 -39
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/int.h +0 -437
- data/ext/pg_query/include/common/ip.h +0 -33
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -61
- data/ext/pg_query/include/common/relpath.h +0 -97
- data/ext/pg_query/include/common/scram-common.h +0 -70
- data/ext/pg_query/include/common/sha2.h +0 -32
- data/ext/pg_query/include/common/string.h +0 -44
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/copyfuncs.funcs.c +0 -5013
- data/ext/pg_query/include/copyfuncs.switch.c +0 -938
- data/ext/pg_query/include/datatype/timestamp.h +0 -243
- data/ext/pg_query/include/equalfuncs.funcs.c +0 -3097
- data/ext/pg_query/include/equalfuncs.switch.c +0 -785
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -680
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -494
- data/ext/pg_query/include/fmgr.h +0 -800
- data/ext/pg_query/include/foreign/fdwapi.h +0 -294
- data/ext/pg_query/include/funcapi.h +0 -360
- data/ext/pg_query/include/gram.h +0 -1127
- data/ext/pg_query/include/gramparse.h +0 -75
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1119
- data/ext/pg_query/include/lib/dshash.h +0 -115
- data/ext/pg_query/include/lib/ilist.h +0 -1159
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -37
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -186
- data/ext/pg_query/include/libpq/libpq-be.h +0 -354
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -163
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -54
- data/ext/pg_query/include/libpq/sasl.h +0 -136
- data/ext/pg_query/include/libpq/scram.h +0 -37
- data/ext/pg_query/include/mb/pg_wchar.h +0 -772
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -507
- data/ext/pg_query/include/nodes/bitmapset.h +0 -126
- data/ext/pg_query/include/nodes/execnodes.h +0 -2768
- data/ext/pg_query/include/nodes/extensible.h +0 -164
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -121
- data/ext/pg_query/include/nodes/memnodes.h +0 -113
- data/ext/pg_query/include/nodes/miscnodes.h +0 -56
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -222
- data/ext/pg_query/include/nodes/nodes.h +0 -446
- data/ext/pg_query/include/nodes/nodetags.h +0 -471
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -4050
- data/ext/pg_query/include/nodes/pathnodes.h +0 -3384
- data/ext/pg_query/include/nodes/pg_list.h +0 -635
- data/ext/pg_query/include/nodes/plannodes.h +0 -1592
- data/ext/pg_query/include/nodes/primnodes.h +0 -2041
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/queryjumble.h +0 -86
- data/ext/pg_query/include/nodes/replnodes.h +0 -111
- data/ext/pg_query/include/nodes/supportnodes.h +0 -346
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -90
- data/ext/pg_query/include/optimizer/cost.h +0 -215
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -266
- data/ext/pg_query/include/optimizer/planmain.h +0 -117
- data/ext/pg_query/include/parser/analyze.h +0 -64
- data/ext/pg_query/include/parser/kwlist.h +0 -498
- data/ext/pg_query/include/parser/parse_agg.h +0 -65
- data/ext/pg_query/include/parser/parse_coerce.h +0 -102
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -357
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -129
- data/ext/pg_query/include/parser/parse_type.h +0 -61
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -843
- data/ext/pg_query/include/pg_config_manual.h +0 -372
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -778
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -385
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1340
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -519
- data/ext/pg_query/include/port/pg_bitutils.h +0 -339
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port/simd.h +0 -375
- data/ext/pg_query/include/port.h +0 -520
- data/ext/pg_query/include/portability/instr_time.h +0 -197
- data/ext/pg_query/include/postgres.h +0 -579
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -80
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -36
- data/ext/pg_query/include/postmaster/postmaster.h +0 -81
- data/ext/pg_query/include/postmaster/startup.h +0 -41
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -23
- data/ext/pg_query/include/regex/regex.h +0 -189
- data/ext/pg_query/include/replication/logicallauncher.h +0 -34
- data/ext/pg_query/include/replication/logicalproto.h +0 -274
- data/ext/pg_query/include/replication/logicalworker.h +0 -32
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -753
- data/ext/pg_query/include/replication/slot.h +0 -249
- data/ext/pg_query/include/replication/syncrep.h +0 -109
- data/ext/pg_query/include/replication/walreceiver.h +0 -478
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -35
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -96
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +0 -5321
- data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +0 -3354
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -108
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -393
- data/ext/pg_query/include/storage/bufpage.h +0 -510
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -79
- data/ext/pg_query/include/storage/fd.h +0 -202
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -245
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -194
- data/ext/pg_query/include/storage/lmgr.h +0 -120
- data/ext/pg_query/include/storage/lock.h +0 -624
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -220
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -466
- data/ext/pg_query/include/storage/procarray.h +0 -99
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -73
- data/ext/pg_query/include/storage/relfilelocator.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -867
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -59
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -45
- data/ext/pg_query/include/storage/smgr.h +0 -113
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -99
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -63
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -147
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -94
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -96
- data/ext/pg_query/include/utils/acl.h +0 -278
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -482
- data/ext/pg_query/include/utils/backend_progress.h +0 -45
- data/ext/pg_query/include/utils/backend_status.h +0 -342
- data/ext/pg_query/include/utils/builtins.h +0 -136
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -118
- data/ext/pg_query/include/utils/datetime.h +0 -364
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -127
- data/ext/pg_query/include/utils/elog.h +0 -545
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- data/ext/pg_query/include/utils/expandeddatum.h +0 -170
- data/ext/pg_query/include/utils/expandedrecord.h +0 -241
- data/ext/pg_query/include/utils/float.h +0 -357
- data/ext/pg_query/include/utils/fmgroids.h +0 -3314
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2871
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -442
- data/ext/pg_query/include/utils/guc_hooks.h +0 -163
- data/ext/pg_query/include/utils/guc_tables.h +0 -322
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/logtape.h +0 -77
- data/ext/pg_query/include/utils/lsyscache.h +0 -212
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -186
- data/ext/pg_query/include/utils/memutils_internal.h +0 -136
- data/ext/pg_query/include/utils/memutils_memorychunk.h +0 -237
- data/ext/pg_query/include/utils/numeric.h +0 -105
- data/ext/pg_query/include/utils/palloc.h +0 -165
- data/ext/pg_query/include/utils/partcache.h +0 -103
- data/ext/pg_query/include/utils/pg_locale.h +0 -135
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -814
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -712
- data/ext/pg_query/include/utils/relcache.h +0 -158
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/ruleutils.h +0 -52
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -181
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -227
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -147
- data/ext/pg_query/include/utils/tuplesort.h +0 -445
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/varlena.h +0 -53
- data/ext/pg_query/include/utils/wait_event.h +0 -294
- data/ext/pg_query/include/utils/xml.h +0 -94
- data/ext/pg_query/include/varatt.h +0 -358
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2220
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{commands → postgres/commands}/user.h +0 -0
- /data/ext/pg_query/include/{common → postgres/common}/unicode_nonspacing_table.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/probes.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/ps_status.h +0 -0
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* int.h
|
|
4
|
-
* Routines to perform integer math, while checking for overflows.
|
|
5
|
-
*
|
|
6
|
-
* The routines in this file are intended to be well defined C, without
|
|
7
|
-
* relying on compiler flags like -fwrapv.
|
|
8
|
-
*
|
|
9
|
-
* To reduce the overhead of these routines try to use compiler intrinsics
|
|
10
|
-
* where available. That's not that important for the 16, 32 bit cases, but
|
|
11
|
-
* the 64 bit cases can be considerably faster with intrinsics. In case no
|
|
12
|
-
* intrinsics are available 128 bit math is used where available.
|
|
13
|
-
*
|
|
14
|
-
* Copyright (c) 2017-2023, PostgreSQL Global Development Group
|
|
15
|
-
*
|
|
16
|
-
* src/include/common/int.h
|
|
17
|
-
*
|
|
18
|
-
*-------------------------------------------------------------------------
|
|
19
|
-
*/
|
|
20
|
-
#ifndef COMMON_INT_H
|
|
21
|
-
#define COMMON_INT_H
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
/*---------
|
|
25
|
-
* The following guidelines apply to all the routines:
|
|
26
|
-
* - If a + b overflows, return true, otherwise store the result of a + b
|
|
27
|
-
* into *result. The content of *result is implementation defined in case of
|
|
28
|
-
* overflow.
|
|
29
|
-
* - If a - b overflows, return true, otherwise store the result of a - b
|
|
30
|
-
* into *result. The content of *result is implementation defined in case of
|
|
31
|
-
* overflow.
|
|
32
|
-
* - If a * b overflows, return true, otherwise store the result of a * b
|
|
33
|
-
* into *result. The content of *result is implementation defined in case of
|
|
34
|
-
* overflow.
|
|
35
|
-
*---------
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
/*------------------------------------------------------------------------
|
|
39
|
-
* Overflow routines for signed integers
|
|
40
|
-
*------------------------------------------------------------------------
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
/*
|
|
44
|
-
* INT16
|
|
45
|
-
*/
|
|
46
|
-
static inline bool
|
|
47
|
-
pg_add_s16_overflow(int16 a, int16 b, int16 *result)
|
|
48
|
-
{
|
|
49
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
50
|
-
return __builtin_add_overflow(a, b, result);
|
|
51
|
-
#else
|
|
52
|
-
int32 res = (int32) a + (int32) b;
|
|
53
|
-
|
|
54
|
-
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
55
|
-
{
|
|
56
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
*result = (int16) res;
|
|
60
|
-
return false;
|
|
61
|
-
#endif
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
static inline bool
|
|
65
|
-
pg_sub_s16_overflow(int16 a, int16 b, int16 *result)
|
|
66
|
-
{
|
|
67
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
68
|
-
return __builtin_sub_overflow(a, b, result);
|
|
69
|
-
#else
|
|
70
|
-
int32 res = (int32) a - (int32) b;
|
|
71
|
-
|
|
72
|
-
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
73
|
-
{
|
|
74
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
*result = (int16) res;
|
|
78
|
-
return false;
|
|
79
|
-
#endif
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
static inline bool
|
|
83
|
-
pg_mul_s16_overflow(int16 a, int16 b, int16 *result)
|
|
84
|
-
{
|
|
85
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
86
|
-
return __builtin_mul_overflow(a, b, result);
|
|
87
|
-
#else
|
|
88
|
-
int32 res = (int32) a * (int32) b;
|
|
89
|
-
|
|
90
|
-
if (res > PG_INT16_MAX || res < PG_INT16_MIN)
|
|
91
|
-
{
|
|
92
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
*result = (int16) res;
|
|
96
|
-
return false;
|
|
97
|
-
#endif
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/*
|
|
101
|
-
* INT32
|
|
102
|
-
*/
|
|
103
|
-
static inline bool
|
|
104
|
-
pg_add_s32_overflow(int32 a, int32 b, int32 *result)
|
|
105
|
-
{
|
|
106
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
107
|
-
return __builtin_add_overflow(a, b, result);
|
|
108
|
-
#else
|
|
109
|
-
int64 res = (int64) a + (int64) b;
|
|
110
|
-
|
|
111
|
-
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
112
|
-
{
|
|
113
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
*result = (int32) res;
|
|
117
|
-
return false;
|
|
118
|
-
#endif
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
static inline bool
|
|
122
|
-
pg_sub_s32_overflow(int32 a, int32 b, int32 *result)
|
|
123
|
-
{
|
|
124
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
125
|
-
return __builtin_sub_overflow(a, b, result);
|
|
126
|
-
#else
|
|
127
|
-
int64 res = (int64) a - (int64) b;
|
|
128
|
-
|
|
129
|
-
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
130
|
-
{
|
|
131
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
*result = (int32) res;
|
|
135
|
-
return false;
|
|
136
|
-
#endif
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
static inline bool
|
|
140
|
-
pg_mul_s32_overflow(int32 a, int32 b, int32 *result)
|
|
141
|
-
{
|
|
142
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
143
|
-
return __builtin_mul_overflow(a, b, result);
|
|
144
|
-
#else
|
|
145
|
-
int64 res = (int64) a * (int64) b;
|
|
146
|
-
|
|
147
|
-
if (res > PG_INT32_MAX || res < PG_INT32_MIN)
|
|
148
|
-
{
|
|
149
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
*result = (int32) res;
|
|
153
|
-
return false;
|
|
154
|
-
#endif
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/*
|
|
158
|
-
* INT64
|
|
159
|
-
*/
|
|
160
|
-
static inline bool
|
|
161
|
-
pg_add_s64_overflow(int64 a, int64 b, int64 *result)
|
|
162
|
-
{
|
|
163
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
164
|
-
return __builtin_add_overflow(a, b, result);
|
|
165
|
-
#elif defined(HAVE_INT128)
|
|
166
|
-
int128 res = (int128) a + (int128) b;
|
|
167
|
-
|
|
168
|
-
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
169
|
-
{
|
|
170
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
*result = (int64) res;
|
|
174
|
-
return false;
|
|
175
|
-
#else
|
|
176
|
-
if ((a > 0 && b > 0 && a > PG_INT64_MAX - b) ||
|
|
177
|
-
(a < 0 && b < 0 && a < PG_INT64_MIN - b))
|
|
178
|
-
{
|
|
179
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
180
|
-
return true;
|
|
181
|
-
}
|
|
182
|
-
*result = a + b;
|
|
183
|
-
return false;
|
|
184
|
-
#endif
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
static inline bool
|
|
188
|
-
pg_sub_s64_overflow(int64 a, int64 b, int64 *result)
|
|
189
|
-
{
|
|
190
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
191
|
-
return __builtin_sub_overflow(a, b, result);
|
|
192
|
-
#elif defined(HAVE_INT128)
|
|
193
|
-
int128 res = (int128) a - (int128) b;
|
|
194
|
-
|
|
195
|
-
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
196
|
-
{
|
|
197
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
*result = (int64) res;
|
|
201
|
-
return false;
|
|
202
|
-
#else
|
|
203
|
-
if ((a < 0 && b > 0 && a < PG_INT64_MIN + b) ||
|
|
204
|
-
(a > 0 && b < 0 && a > PG_INT64_MAX + b))
|
|
205
|
-
{
|
|
206
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
*result = a - b;
|
|
210
|
-
return false;
|
|
211
|
-
#endif
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
static inline bool
|
|
215
|
-
pg_mul_s64_overflow(int64 a, int64 b, int64 *result)
|
|
216
|
-
{
|
|
217
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
218
|
-
return __builtin_mul_overflow(a, b, result);
|
|
219
|
-
#elif defined(HAVE_INT128)
|
|
220
|
-
int128 res = (int128) a * (int128) b;
|
|
221
|
-
|
|
222
|
-
if (res > PG_INT64_MAX || res < PG_INT64_MIN)
|
|
223
|
-
{
|
|
224
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
*result = (int64) res;
|
|
228
|
-
return false;
|
|
229
|
-
#else
|
|
230
|
-
/*
|
|
231
|
-
* Overflow can only happen if at least one value is outside the range
|
|
232
|
-
* sqrt(min)..sqrt(max) so check that first as the division can be quite a
|
|
233
|
-
* bit more expensive than the multiplication.
|
|
234
|
-
*
|
|
235
|
-
* Multiplying by 0 or 1 can't overflow of course and checking for 0
|
|
236
|
-
* separately avoids any risk of dividing by 0. Be careful about dividing
|
|
237
|
-
* INT_MIN by -1 also, note reversing the a and b to ensure we're always
|
|
238
|
-
* dividing it by a positive value.
|
|
239
|
-
*
|
|
240
|
-
*/
|
|
241
|
-
if ((a > PG_INT32_MAX || a < PG_INT32_MIN ||
|
|
242
|
-
b > PG_INT32_MAX || b < PG_INT32_MIN) &&
|
|
243
|
-
a != 0 && a != 1 && b != 0 && b != 1 &&
|
|
244
|
-
((a > 0 && b > 0 && a > PG_INT64_MAX / b) ||
|
|
245
|
-
(a > 0 && b < 0 && b < PG_INT64_MIN / a) ||
|
|
246
|
-
(a < 0 && b > 0 && a < PG_INT64_MIN / b) ||
|
|
247
|
-
(a < 0 && b < 0 && a < PG_INT64_MAX / b)))
|
|
248
|
-
{
|
|
249
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
250
|
-
return true;
|
|
251
|
-
}
|
|
252
|
-
*result = a * b;
|
|
253
|
-
return false;
|
|
254
|
-
#endif
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/*------------------------------------------------------------------------
|
|
258
|
-
* Overflow routines for unsigned integers
|
|
259
|
-
*------------------------------------------------------------------------
|
|
260
|
-
*/
|
|
261
|
-
|
|
262
|
-
/*
|
|
263
|
-
* UINT16
|
|
264
|
-
*/
|
|
265
|
-
static inline bool
|
|
266
|
-
pg_add_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
267
|
-
{
|
|
268
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
269
|
-
return __builtin_add_overflow(a, b, result);
|
|
270
|
-
#else
|
|
271
|
-
uint16 res = a + b;
|
|
272
|
-
|
|
273
|
-
if (res < a)
|
|
274
|
-
{
|
|
275
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
276
|
-
return true;
|
|
277
|
-
}
|
|
278
|
-
*result = res;
|
|
279
|
-
return false;
|
|
280
|
-
#endif
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
static inline bool
|
|
284
|
-
pg_sub_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
285
|
-
{
|
|
286
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
287
|
-
return __builtin_sub_overflow(a, b, result);
|
|
288
|
-
#else
|
|
289
|
-
if (b > a)
|
|
290
|
-
{
|
|
291
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
292
|
-
return true;
|
|
293
|
-
}
|
|
294
|
-
*result = a - b;
|
|
295
|
-
return false;
|
|
296
|
-
#endif
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
static inline bool
|
|
300
|
-
pg_mul_u16_overflow(uint16 a, uint16 b, uint16 *result)
|
|
301
|
-
{
|
|
302
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
303
|
-
return __builtin_mul_overflow(a, b, result);
|
|
304
|
-
#else
|
|
305
|
-
uint32 res = (uint32) a * (uint32) b;
|
|
306
|
-
|
|
307
|
-
if (res > PG_UINT16_MAX)
|
|
308
|
-
{
|
|
309
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
310
|
-
return true;
|
|
311
|
-
}
|
|
312
|
-
*result = (uint16) res;
|
|
313
|
-
return false;
|
|
314
|
-
#endif
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/*
|
|
318
|
-
* INT32
|
|
319
|
-
*/
|
|
320
|
-
static inline bool
|
|
321
|
-
pg_add_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
322
|
-
{
|
|
323
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
324
|
-
return __builtin_add_overflow(a, b, result);
|
|
325
|
-
#else
|
|
326
|
-
uint32 res = a + b;
|
|
327
|
-
|
|
328
|
-
if (res < a)
|
|
329
|
-
{
|
|
330
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
331
|
-
return true;
|
|
332
|
-
}
|
|
333
|
-
*result = res;
|
|
334
|
-
return false;
|
|
335
|
-
#endif
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
static inline bool
|
|
339
|
-
pg_sub_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
340
|
-
{
|
|
341
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
342
|
-
return __builtin_sub_overflow(a, b, result);
|
|
343
|
-
#else
|
|
344
|
-
if (b > a)
|
|
345
|
-
{
|
|
346
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
347
|
-
return true;
|
|
348
|
-
}
|
|
349
|
-
*result = a - b;
|
|
350
|
-
return false;
|
|
351
|
-
#endif
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
static inline bool
|
|
355
|
-
pg_mul_u32_overflow(uint32 a, uint32 b, uint32 *result)
|
|
356
|
-
{
|
|
357
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
358
|
-
return __builtin_mul_overflow(a, b, result);
|
|
359
|
-
#else
|
|
360
|
-
uint64 res = (uint64) a * (uint64) b;
|
|
361
|
-
|
|
362
|
-
if (res > PG_UINT32_MAX)
|
|
363
|
-
{
|
|
364
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
365
|
-
return true;
|
|
366
|
-
}
|
|
367
|
-
*result = (uint32) res;
|
|
368
|
-
return false;
|
|
369
|
-
#endif
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
/*
|
|
373
|
-
* UINT64
|
|
374
|
-
*/
|
|
375
|
-
static inline bool
|
|
376
|
-
pg_add_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
377
|
-
{
|
|
378
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
379
|
-
return __builtin_add_overflow(a, b, result);
|
|
380
|
-
#else
|
|
381
|
-
uint64 res = a + b;
|
|
382
|
-
|
|
383
|
-
if (res < a)
|
|
384
|
-
{
|
|
385
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
386
|
-
return true;
|
|
387
|
-
}
|
|
388
|
-
*result = res;
|
|
389
|
-
return false;
|
|
390
|
-
#endif
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
static inline bool
|
|
394
|
-
pg_sub_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
395
|
-
{
|
|
396
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
397
|
-
return __builtin_sub_overflow(a, b, result);
|
|
398
|
-
#else
|
|
399
|
-
if (b > a)
|
|
400
|
-
{
|
|
401
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
402
|
-
return true;
|
|
403
|
-
}
|
|
404
|
-
*result = a - b;
|
|
405
|
-
return false;
|
|
406
|
-
#endif
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
static inline bool
|
|
410
|
-
pg_mul_u64_overflow(uint64 a, uint64 b, uint64 *result)
|
|
411
|
-
{
|
|
412
|
-
#if defined(HAVE__BUILTIN_OP_OVERFLOW)
|
|
413
|
-
return __builtin_mul_overflow(a, b, result);
|
|
414
|
-
#elif defined(HAVE_INT128)
|
|
415
|
-
uint128 res = (uint128) a * (uint128) b;
|
|
416
|
-
|
|
417
|
-
if (res > PG_UINT64_MAX)
|
|
418
|
-
{
|
|
419
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
420
|
-
return true;
|
|
421
|
-
}
|
|
422
|
-
*result = (uint64) res;
|
|
423
|
-
return false;
|
|
424
|
-
#else
|
|
425
|
-
uint64 res = a * b;
|
|
426
|
-
|
|
427
|
-
if (a != 0 && b != res / a)
|
|
428
|
-
{
|
|
429
|
-
*result = 0x5EED; /* to avoid spurious warnings */
|
|
430
|
-
return true;
|
|
431
|
-
}
|
|
432
|
-
*result = res;
|
|
433
|
-
return false;
|
|
434
|
-
#endif
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
#endif /* COMMON_INT_H */
|
|
@@ -1,33 +0,0 @@
|
|
|
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-2023, 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 <netdb.h>
|
|
18
|
-
#include <sys/socket.h>
|
|
19
|
-
|
|
20
|
-
#include "libpq/pqcomm.h" /* pgrminclude ignore */
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
extern int pg_getaddrinfo_all(const char *hostname, const char *servname,
|
|
24
|
-
const struct addrinfo *hintp,
|
|
25
|
-
struct addrinfo **result);
|
|
26
|
-
extern void pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo *ai);
|
|
27
|
-
|
|
28
|
-
extern int pg_getnameinfo_all(const struct sockaddr_storage *addr, int salen,
|
|
29
|
-
char *node, int nodelen,
|
|
30
|
-
char *service, int servicelen,
|
|
31
|
-
int flags);
|
|
32
|
-
|
|
33
|
-
#endif /* IP_H */
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* keywords.h
|
|
4
|
-
* PostgreSQL's list of SQL keywords
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, 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
|
-
extern PGDLLIMPORT const ScanKeywordList ScanKeywords;
|
|
26
|
-
extern PGDLLIMPORT const uint8 ScanKeywordCategories[];
|
|
27
|
-
extern PGDLLIMPORT const bool ScanKeywordBareLabel[];
|
|
28
|
-
|
|
29
|
-
#endif /* KEYWORDS_H */
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* kwlookup.h
|
|
4
|
-
* Key word lookup for PostgreSQL
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Portions Copyright (c) 1996-2023, 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 *str, 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 */
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* Pseudo-Random Number Generator
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) 2021-2023, PostgreSQL Global Development Group
|
|
6
|
-
*
|
|
7
|
-
* src/include/common/pg_prng.h
|
|
8
|
-
*
|
|
9
|
-
*-------------------------------------------------------------------------
|
|
10
|
-
*/
|
|
11
|
-
#ifndef PG_PRNG_H
|
|
12
|
-
#define PG_PRNG_H
|
|
13
|
-
|
|
14
|
-
/*
|
|
15
|
-
* State vector for PRNG generation. Callers should treat this as an
|
|
16
|
-
* opaque typedef, but we expose its definition to allow it to be
|
|
17
|
-
* embedded in other structs.
|
|
18
|
-
*/
|
|
19
|
-
typedef struct pg_prng_state
|
|
20
|
-
{
|
|
21
|
-
uint64 s0,
|
|
22
|
-
s1;
|
|
23
|
-
} pg_prng_state;
|
|
24
|
-
|
|
25
|
-
/*
|
|
26
|
-
* Callers not needing local PRNG series may use this global state vector,
|
|
27
|
-
* after initializing it with one of the pg_prng_...seed functions.
|
|
28
|
-
*/
|
|
29
|
-
extern PGDLLIMPORT pg_prng_state pg_global_prng_state;
|
|
30
|
-
|
|
31
|
-
extern void pg_prng_seed(pg_prng_state *state, uint64 seed);
|
|
32
|
-
extern void pg_prng_fseed(pg_prng_state *state, double fseed);
|
|
33
|
-
extern bool pg_prng_seed_check(pg_prng_state *state);
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
* Initialize the PRNG state from the pg_strong_random source,
|
|
37
|
-
* taking care that we don't produce all-zeroes. If this returns false,
|
|
38
|
-
* caller should initialize the PRNG state from some other random seed,
|
|
39
|
-
* using pg_prng_[f]seed.
|
|
40
|
-
*
|
|
41
|
-
* We implement this as a macro, so that the pg_strong_random() call is
|
|
42
|
-
* in the caller. If it were in pg_prng.c, programs using pg_prng.c
|
|
43
|
-
* but not needing strong seeding would nonetheless be forced to pull in
|
|
44
|
-
* pg_strong_random.c and thence OpenSSL.
|
|
45
|
-
*/
|
|
46
|
-
#define pg_prng_strong_seed(state) \
|
|
47
|
-
(pg_strong_random((void *) (state), sizeof(pg_prng_state)) ? \
|
|
48
|
-
pg_prng_seed_check(state) : false)
|
|
49
|
-
|
|
50
|
-
extern uint64 pg_prng_uint64(pg_prng_state *state);
|
|
51
|
-
extern uint64 pg_prng_uint64_range(pg_prng_state *state, uint64 rmin, uint64 rmax);
|
|
52
|
-
extern int64 pg_prng_int64(pg_prng_state *state);
|
|
53
|
-
extern int64 pg_prng_int64p(pg_prng_state *state);
|
|
54
|
-
extern uint32 pg_prng_uint32(pg_prng_state *state);
|
|
55
|
-
extern int32 pg_prng_int32(pg_prng_state *state);
|
|
56
|
-
extern int32 pg_prng_int32p(pg_prng_state *state);
|
|
57
|
-
extern double pg_prng_double(pg_prng_state *state);
|
|
58
|
-
extern double pg_prng_double_normal(pg_prng_state *state);
|
|
59
|
-
extern bool pg_prng_bool(pg_prng_state *state);
|
|
60
|
-
|
|
61
|
-
#endif /* PG_PRNG_H */
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/*-------------------------------------------------------------------------
|
|
2
|
-
*
|
|
3
|
-
* relpath.h
|
|
4
|
-
* Declarations for GetRelationPath() and friends
|
|
5
|
-
*
|
|
6
|
-
* Portions Copyright (c) 1996-2023, 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
|
-
* RelFileNumber data type identifies the specific relation file name.
|
|
24
|
-
*/
|
|
25
|
-
typedef Oid RelFileNumber;
|
|
26
|
-
#define InvalidRelFileNumber ((RelFileNumber) InvalidOid)
|
|
27
|
-
#define RelFileNumberIsValid(relnumber) \
|
|
28
|
-
((bool) ((relnumber) != InvalidRelFileNumber))
|
|
29
|
-
|
|
30
|
-
/*
|
|
31
|
-
* Name of major-version-specific tablespace subdirectories
|
|
32
|
-
*/
|
|
33
|
-
#define TABLESPACE_VERSION_DIRECTORY "PG_" PG_MAJORVERSION "_" \
|
|
34
|
-
CppAsString2(CATALOG_VERSION_NO)
|
|
35
|
-
|
|
36
|
-
/* Characters to allow for an OID in a relation path */
|
|
37
|
-
#define OIDCHARS 10 /* max chars printed by %u */
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* Stuff for fork names.
|
|
41
|
-
*
|
|
42
|
-
* The physical storage of a relation consists of one or more forks.
|
|
43
|
-
* The main fork is always created, but in addition to that there can be
|
|
44
|
-
* additional forks for storing various metadata. ForkNumber is used when
|
|
45
|
-
* we need to refer to a specific fork in a relation.
|
|
46
|
-
*/
|
|
47
|
-
typedef enum ForkNumber
|
|
48
|
-
{
|
|
49
|
-
InvalidForkNumber = -1,
|
|
50
|
-
MAIN_FORKNUM = 0,
|
|
51
|
-
FSM_FORKNUM,
|
|
52
|
-
VISIBILITYMAP_FORKNUM,
|
|
53
|
-
INIT_FORKNUM
|
|
54
|
-
|
|
55
|
-
/*
|
|
56
|
-
* NOTE: if you add a new fork, change MAX_FORKNUM and possibly
|
|
57
|
-
* FORKNAMECHARS below, and update the forkNames array in
|
|
58
|
-
* src/common/relpath.c
|
|
59
|
-
*/
|
|
60
|
-
} ForkNumber;
|
|
61
|
-
|
|
62
|
-
#define MAX_FORKNUM INIT_FORKNUM
|
|
63
|
-
|
|
64
|
-
#define FORKNAMECHARS 4 /* max chars for a fork name */
|
|
65
|
-
|
|
66
|
-
extern PGDLLIMPORT const char *const forkNames[];
|
|
67
|
-
|
|
68
|
-
extern ForkNumber forkname_to_number(const char *forkName);
|
|
69
|
-
extern int forkname_chars(const char *str, ForkNumber *fork);
|
|
70
|
-
|
|
71
|
-
/*
|
|
72
|
-
* Stuff for computing filesystem pathnames for relations.
|
|
73
|
-
*/
|
|
74
|
-
extern char *GetDatabasePath(Oid dbOid, Oid spcOid);
|
|
75
|
-
|
|
76
|
-
extern char *GetRelationPath(Oid dbOid, Oid spcOid, RelFileNumber relNumber,
|
|
77
|
-
int backendId, ForkNumber forkNumber);
|
|
78
|
-
|
|
79
|
-
/*
|
|
80
|
-
* Wrapper macros for GetRelationPath. Beware of multiple
|
|
81
|
-
* evaluation of the RelFileLocator or RelFileLocatorBackend argument!
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
/* First argument is a RelFileLocator */
|
|
85
|
-
#define relpathbackend(rlocator, backend, forknum) \
|
|
86
|
-
GetRelationPath((rlocator).dbOid, (rlocator).spcOid, (rlocator).relNumber, \
|
|
87
|
-
backend, forknum)
|
|
88
|
-
|
|
89
|
-
/* First argument is a RelFileLocator */
|
|
90
|
-
#define relpathperm(rlocator, forknum) \
|
|
91
|
-
relpathbackend(rlocator, InvalidBackendId, forknum)
|
|
92
|
-
|
|
93
|
-
/* First argument is a RelFileLocatorBackend */
|
|
94
|
-
#define relpath(rlocator, forknum) \
|
|
95
|
-
relpathbackend((rlocator).locator, (rlocator).backend, forknum)
|
|
96
|
-
|
|
97
|
-
#endif /* RELPATH_H */
|