pg_query 2.2.0 → 6.1.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 +86 -0
- data/README.md +57 -31
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +30 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
- data/ext/pg_query/include/postgres/access/amapi.h +303 -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 +246 -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/rmgr.h +62 -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 +218 -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 +2110 -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 +418 -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 +93 -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 +97 -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/user.h +43 -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 +407 -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/common/unicode_nonspacing_table.h +326 -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 +361 -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 +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -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 +3438 -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 +2339 -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 +105 -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 +985 -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 +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -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/postgres_ext.h +73 -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 +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -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 +61 -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 +488 -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 +130 -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 +231 -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 +827 -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/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -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 +136 -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 +8077 -6217
- data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +24028 -17173
- data/ext/pg_query/pg_query_deparse.c +1 -9902
- data/ext/pg_query/pg_query_fingerprint.c +42 -18
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
- data/ext/pg_query/pg_query_normalize.c +44 -3
- data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +4 -3
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
- data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
- data/ext/pg_query/src_backend_commands_define.c +12 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +89 -18
- data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
- data/ext/pg_query/src_backend_parser_scansup.c +5 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
- data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +3 -3
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +602 -510
- 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 +21 -4
- data/ext/pg_query/src_common_wchar.c +754 -178
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
- 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 +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +283 -54
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +56 -39
- data/ext/pg_query/src_port_strerror.c +9 -21
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/filter_columns.rb +1 -1
- data/lib/pg_query/fingerprint.rb +10 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +3 -3
- data/lib/pg_query/parse.rb +25 -15
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +181 -3038
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +55 -8
- data/lib/pg_query/truncate.rb +19 -21
- data/lib/pg_query/version.rb +1 -1
- metadata +447 -436
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -246
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -61
- data/ext/pg_query/include/access/commit_ts.h +0 -77
- data/ext/pg_query/include/access/detoast.h +0 -92
- data/ext/pg_query/include/access/genam.h +0 -228
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -819
- data/ext/pg_query/include/access/itup.h +0 -161
- 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 -176
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -83
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -27
- data/ext/pg_query/include/access/tableam.h +0 -1825
- data/ext/pg_query/include/access/transam.h +0 -265
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -63
- data/ext/pg_query/include/access/xact.h +0 -469
- data/ext/pg_query/include/access/xlog.h +0 -398
- data/ext/pg_query/include/access/xlog_internal.h +0 -339
- data/ext/pg_query/include/access/xlogdefs.h +0 -109
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/access/xlogreader.h +0 -337
- data/ext/pg_query/include/access/xlogrecord.h +0 -227
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/c.h +0 -1334
- data/ext/pg_query/include/catalog/catalog.h +0 -42
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -277
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/index.h +0 -199
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/catalog/namespace.h +0 -188
- data/ext/pg_query/include/catalog/objectaccess.h +0 -197
- data/ext/pg_query/include/catalog/objectaddress.h +0 -84
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
- data/ext/pg_query/include/catalog/pg_am.h +0 -60
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_authid.h +0 -58
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_class.h +0 -200
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
- data/ext/pg_query/include/catalog/pg_collation.h +0 -73
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
- data/ext/pg_query/include/catalog/pg_control.h +0 -252
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_depend.h +0 -73
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_index.h +0 -80
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
- data/ext/pg_query/include/catalog/pg_language.h +0 -67
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_operator.h +0 -104
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_proc.h +0 -211
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
- data/ext/pg_query/include/catalog/pg_publication.h +0 -118
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
- data/ext/pg_query/include/catalog/pg_transform.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
- data/ext/pg_query/include/catalog/pg_type.h +0 -373
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
- data/ext/pg_query/include/catalog/storage.h +0 -48
- data/ext/pg_query/include/commands/async.h +0 -54
- data/ext/pg_query/include/commands/dbcommands.h +0 -35
- data/ext/pg_query/include/commands/defrem.h +0 -173
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- 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 -285
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -293
- data/ext/pg_query/include/commands/variable.h +0 -38
- 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/ip.h +0 -37
- data/ext/pg_query/include/common/keywords.h +0 -33
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
- data/ext/pg_query/include/datatype/timestamp.h +0 -197
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -620
- data/ext/pg_query/include/executor/functions.h +0 -41
- data/ext/pg_query/include/executor/instrument.h +0 -101
- data/ext/pg_query/include/executor/spi.h +0 -175
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -775
- data/ext/pg_query/include/funcapi.h +0 -348
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/lib/ilist.h +0 -727
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1059
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -29
- data/ext/pg_query/include/libpq/crypt.h +0 -46
- data/ext/pg_query/include/libpq/hba.h +0 -140
- data/ext/pg_query/include/libpq/libpq-be.h +0 -326
- data/ext/pg_query/include/libpq/libpq.h +0 -134
- data/ext/pg_query/include/libpq/pqcomm.h +0 -208
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -673
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -489
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2523
- data/ext/pg_query/include/nodes/extensible.h +0 -160
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -108
- data/ext/pg_query/include/nodes/memnodes.h +0 -108
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -842
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
- data/ext/pg_query/include/nodes/pg_list.h +0 -606
- data/ext/pg_query/include/nodes/plannodes.h +0 -1266
- data/ext/pg_query/include/nodes/primnodes.h +0 -1541
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/optimizer/cost.h +0 -206
- data/ext/pg_query/include/optimizer/geqo.h +0 -88
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -194
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -119
- data/ext/pg_query/include/parser/analyze.h +0 -49
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_agg.h +0 -68
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_coerce.h +0 -98
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_expr.h +0 -26
- data/ext/pg_query/include/parser/parse_func.h +0 -73
- data/ext/pg_query/include/parser/parse_node.h +0 -327
- data/ext/pg_query/include/parser/parse_oper.h +0 -67
- data/ext/pg_query/include/parser/parse_relation.h +0 -123
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -41
- 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 -30
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -995
- data/ext/pg_query/include/pg_config_manual.h +0 -357
- 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 -1488
- data/ext/pg_query/include/pgtime.h +0 -84
- 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 -990
- data/ext/pg_query/include/plpgsql.h +0 -1347
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
- 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 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -272
- 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.h +0 -528
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -764
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/bgworker.h +0 -161
- 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 -39
- data/ext/pg_query/include/postmaster/postmaster.h +0 -77
- data/ext/pg_query/include/postmaster/syslogger.h +0 -98
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -184
- data/ext/pg_query/include/replication/logicallauncher.h +0 -31
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
- data/ext/pg_query/include/replication/slot.h +0 -219
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -340
- 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 -40
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -121
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -292
- data/ext/pg_query/include/storage/bufpage.h +0 -459
- data/ext/pg_query/include/storage/condition_variable.h +0 -62
- data/ext/pg_query/include/storage/dsm.h +0 -61
- data/ext/pg_query/include/storage/dsm_impl.h +0 -75
- data/ext/pg_query/include/storage/fd.h +0 -168
- data/ext/pg_query/include/storage/ipc.h +0 -81
- 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 -206
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -190
- data/ext/pg_query/include/storage/lmgr.h +0 -114
- data/ext/pg_query/include/storage/lock.h +0 -613
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -233
- data/ext/pg_query/include/storage/lwlocknames.h +0 -51
- 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 -90
- data/ext/pg_query/include/storage/pmsignal.h +0 -94
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -347
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -75
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1071
- data/ext/pg_query/include/storage/sharedfileset.h +0 -45
- data/ext/pg_query/include/storage/shm_mq.h +0 -85
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -109
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -91
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -62
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -21
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -89
- data/ext/pg_query/include/tcop/utility.h +0 -108
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -312
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -459
- data/ext/pg_query/include/utils/builtins.h +0 -128
- data/ext/pg_query/include/utils/bytea.h +0 -27
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -343
- data/ext/pg_query/include/utils/datum.h +0 -68
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/elog.h +0 -439
- data/ext/pg_query/include/utils/errcodes.h +0 -352
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -2657
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
- data/ext/pg_query/include/utils/fmgrtab.h +0 -48
- data/ext/pg_query/include/utils/guc.h +0 -443
- data/ext/pg_query/include/utils/guc_tables.h +0 -272
- data/ext/pg_query/include/utils/hsearch.h +0 -149
- data/ext/pg_query/include/utils/inval.h +0 -65
- data/ext/pg_query/include/utils/lsyscache.h +0 -198
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -225
- data/ext/pg_query/include/utils/numeric.h +0 -76
- data/ext/pg_query/include/utils/palloc.h +0 -136
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -119
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -235
- data/ext/pg_query/include/utils/portal.h +0 -254
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rel.h +0 -643
- data/ext/pg_query/include/utils/relcache.h +0 -150
- 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/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -44
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -159
- data/ext/pg_query/include/utils/snapshot.h +0 -206
- data/ext/pg_query/include/utils/sortsupport.h +0 -276
- data/ext/pg_query/include/utils/syscache.h +0 -219
- data/ext/pg_query/include/utils/timeout.h +0 -88
- data/ext/pg_query/include/utils/timestamp.h +0 -116
- data/ext/pg_query/include/utils/tuplesort.h +0 -277
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -202
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -39
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* lsyscache.h
|
4
|
+
* Convenience routines for common queries in the system catalog cache.
|
5
|
+
*
|
6
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
+
*
|
9
|
+
* src/include/utils/lsyscache.h
|
10
|
+
*
|
11
|
+
*-------------------------------------------------------------------------
|
12
|
+
*/
|
13
|
+
#ifndef LSYSCACHE_H
|
14
|
+
#define LSYSCACHE_H
|
15
|
+
|
16
|
+
#include "access/attnum.h"
|
17
|
+
#include "access/htup.h"
|
18
|
+
#include "nodes/pg_list.h"
|
19
|
+
|
20
|
+
/* avoid including subscripting.h here */
|
21
|
+
struct SubscriptRoutines;
|
22
|
+
|
23
|
+
/* Result list element for get_op_btree_interpretation */
|
24
|
+
typedef struct OpBtreeInterpretation
|
25
|
+
{
|
26
|
+
Oid opfamily_id; /* btree opfamily containing operator */
|
27
|
+
int strategy; /* its strategy number */
|
28
|
+
Oid oplefttype; /* declared left input datatype */
|
29
|
+
Oid oprighttype; /* declared right input datatype */
|
30
|
+
} OpBtreeInterpretation;
|
31
|
+
|
32
|
+
/* I/O function selector for get_type_io_data */
|
33
|
+
typedef enum IOFuncSelector
|
34
|
+
{
|
35
|
+
IOFunc_input,
|
36
|
+
IOFunc_output,
|
37
|
+
IOFunc_receive,
|
38
|
+
IOFunc_send,
|
39
|
+
} IOFuncSelector;
|
40
|
+
|
41
|
+
/* Flag bits for get_attstatsslot */
|
42
|
+
#define ATTSTATSSLOT_VALUES 0x01
|
43
|
+
#define ATTSTATSSLOT_NUMBERS 0x02
|
44
|
+
|
45
|
+
/* Result struct for get_attstatsslot */
|
46
|
+
typedef struct AttStatsSlot
|
47
|
+
{
|
48
|
+
/* Always filled: */
|
49
|
+
Oid staop; /* Actual staop for the found slot */
|
50
|
+
Oid stacoll; /* Actual collation for the found slot */
|
51
|
+
/* Filled if ATTSTATSSLOT_VALUES is specified: */
|
52
|
+
Oid valuetype; /* Actual datatype of the values */
|
53
|
+
Datum *values; /* slot's "values" array, or NULL if none */
|
54
|
+
int nvalues; /* length of values[], or 0 */
|
55
|
+
/* Filled if ATTSTATSSLOT_NUMBERS is specified: */
|
56
|
+
float4 *numbers; /* slot's "numbers" array, or NULL if none */
|
57
|
+
int nnumbers; /* length of numbers[], or 0 */
|
58
|
+
|
59
|
+
/* Remaining fields are private to get_attstatsslot/free_attstatsslot */
|
60
|
+
void *values_arr; /* palloc'd values array, if any */
|
61
|
+
void *numbers_arr; /* palloc'd numbers array, if any */
|
62
|
+
} AttStatsSlot;
|
63
|
+
|
64
|
+
/* Hook for plugins to get control in get_attavgwidth() */
|
65
|
+
typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum);
|
66
|
+
extern PGDLLIMPORT get_attavgwidth_hook_type get_attavgwidth_hook;
|
67
|
+
|
68
|
+
extern bool op_in_opfamily(Oid opno, Oid opfamily);
|
69
|
+
extern int get_op_opfamily_strategy(Oid opno, Oid opfamily);
|
70
|
+
extern Oid get_op_opfamily_sortfamily(Oid opno, Oid opfamily);
|
71
|
+
extern void get_op_opfamily_properties(Oid opno, Oid opfamily, bool ordering_op,
|
72
|
+
int *strategy,
|
73
|
+
Oid *lefttype,
|
74
|
+
Oid *righttype);
|
75
|
+
extern Oid get_opfamily_member(Oid opfamily, Oid lefttype, Oid righttype,
|
76
|
+
int16 strategy);
|
77
|
+
extern bool get_ordering_op_properties(Oid opno,
|
78
|
+
Oid *opfamily, Oid *opcintype, int16 *strategy);
|
79
|
+
extern Oid get_equality_op_for_ordering_op(Oid opno, bool *reverse);
|
80
|
+
extern Oid get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type);
|
81
|
+
extern List *get_mergejoin_opfamilies(Oid opno);
|
82
|
+
extern bool get_compatible_hash_operators(Oid opno,
|
83
|
+
Oid *lhs_opno, Oid *rhs_opno);
|
84
|
+
extern bool get_op_hash_functions(Oid opno,
|
85
|
+
RegProcedure *lhs_procno, RegProcedure *rhs_procno);
|
86
|
+
extern List *get_op_btree_interpretation(Oid opno);
|
87
|
+
extern bool equality_ops_are_compatible(Oid opno1, Oid opno2);
|
88
|
+
extern bool comparison_ops_are_compatible(Oid opno1, Oid opno2);
|
89
|
+
extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype,
|
90
|
+
int16 procnum);
|
91
|
+
extern char *get_attname(Oid relid, AttrNumber attnum, bool missing_ok);
|
92
|
+
extern AttrNumber get_attnum(Oid relid, const char *attname);
|
93
|
+
extern char get_attgenerated(Oid relid, AttrNumber attnum);
|
94
|
+
extern Oid get_atttype(Oid relid, AttrNumber attnum);
|
95
|
+
extern void get_atttypetypmodcoll(Oid relid, AttrNumber attnum,
|
96
|
+
Oid *typid, int32 *typmod, Oid *collid);
|
97
|
+
extern Datum get_attoptions(Oid relid, int16 attnum);
|
98
|
+
extern Oid get_cast_oid(Oid sourcetypeid, Oid targettypeid, bool missing_ok);
|
99
|
+
extern char *get_collation_name(Oid colloid);
|
100
|
+
extern bool get_collation_isdeterministic(Oid colloid);
|
101
|
+
extern char *get_constraint_name(Oid conoid);
|
102
|
+
extern Oid get_constraint_index(Oid conoid);
|
103
|
+
extern char get_constraint_type(Oid conoid);
|
104
|
+
|
105
|
+
extern char *get_language_name(Oid langoid, bool missing_ok);
|
106
|
+
extern Oid get_opclass_family(Oid opclass);
|
107
|
+
extern Oid get_opclass_input_type(Oid opclass);
|
108
|
+
extern bool get_opclass_opfamily_and_input_type(Oid opclass,
|
109
|
+
Oid *opfamily, Oid *opcintype);
|
110
|
+
extern Oid get_opclass_method(Oid opclass);
|
111
|
+
extern RegProcedure get_opcode(Oid opno);
|
112
|
+
extern char *get_opname(Oid opno);
|
113
|
+
extern Oid get_op_rettype(Oid opno);
|
114
|
+
extern void op_input_types(Oid opno, Oid *lefttype, Oid *righttype);
|
115
|
+
extern bool op_mergejoinable(Oid opno, Oid inputtype);
|
116
|
+
extern bool op_hashjoinable(Oid opno, Oid inputtype);
|
117
|
+
extern bool op_strict(Oid opno);
|
118
|
+
extern char op_volatile(Oid opno);
|
119
|
+
extern Oid get_commutator(Oid opno);
|
120
|
+
extern Oid get_negator(Oid opno);
|
121
|
+
extern RegProcedure get_oprrest(Oid opno);
|
122
|
+
extern RegProcedure get_oprjoin(Oid opno);
|
123
|
+
extern char *get_func_name(Oid funcid);
|
124
|
+
extern Oid get_func_namespace(Oid funcid);
|
125
|
+
extern Oid get_func_rettype(Oid funcid);
|
126
|
+
extern int get_func_nargs(Oid funcid);
|
127
|
+
extern Oid get_func_signature(Oid funcid, Oid **argtypes, int *nargs);
|
128
|
+
extern Oid get_func_variadictype(Oid funcid);
|
129
|
+
extern bool get_func_retset(Oid funcid);
|
130
|
+
extern bool func_strict(Oid funcid);
|
131
|
+
extern char func_volatile(Oid funcid);
|
132
|
+
extern char func_parallel(Oid funcid);
|
133
|
+
extern char get_func_prokind(Oid funcid);
|
134
|
+
extern bool get_func_leakproof(Oid funcid);
|
135
|
+
extern RegProcedure get_func_support(Oid funcid);
|
136
|
+
extern Oid get_relname_relid(const char *relname, Oid relnamespace);
|
137
|
+
extern char *get_rel_name(Oid relid);
|
138
|
+
extern Oid get_rel_namespace(Oid relid);
|
139
|
+
extern Oid get_rel_type_id(Oid relid);
|
140
|
+
extern char get_rel_relkind(Oid relid);
|
141
|
+
extern bool get_rel_relispartition(Oid relid);
|
142
|
+
extern Oid get_rel_tablespace(Oid relid);
|
143
|
+
extern char get_rel_persistence(Oid relid);
|
144
|
+
extern Oid get_rel_relam(Oid relid);
|
145
|
+
extern Oid get_transform_fromsql(Oid typid, Oid langid, List *trftypes);
|
146
|
+
extern Oid get_transform_tosql(Oid typid, Oid langid, List *trftypes);
|
147
|
+
extern bool get_typisdefined(Oid typid);
|
148
|
+
extern int16 get_typlen(Oid typid);
|
149
|
+
extern bool get_typbyval(Oid typid);
|
150
|
+
extern void get_typlenbyval(Oid typid, int16 *typlen, bool *typbyval);
|
151
|
+
extern void get_typlenbyvalalign(Oid typid, int16 *typlen, bool *typbyval,
|
152
|
+
char *typalign);
|
153
|
+
extern Oid getTypeIOParam(HeapTuple typeTuple);
|
154
|
+
extern void get_type_io_data(Oid typid,
|
155
|
+
IOFuncSelector which_func,
|
156
|
+
int16 *typlen,
|
157
|
+
bool *typbyval,
|
158
|
+
char *typalign,
|
159
|
+
char *typdelim,
|
160
|
+
Oid *typioparam,
|
161
|
+
Oid *func);
|
162
|
+
extern char get_typstorage(Oid typid);
|
163
|
+
extern Node *get_typdefault(Oid typid);
|
164
|
+
extern char get_typtype(Oid typid);
|
165
|
+
extern bool type_is_rowtype(Oid typid);
|
166
|
+
extern bool type_is_enum(Oid typid);
|
167
|
+
extern bool type_is_range(Oid typid);
|
168
|
+
extern bool type_is_multirange(Oid typid);
|
169
|
+
extern void get_type_category_preferred(Oid typid,
|
170
|
+
char *typcategory,
|
171
|
+
bool *typispreferred);
|
172
|
+
extern Oid get_typ_typrelid(Oid typid);
|
173
|
+
extern Oid get_element_type(Oid typid);
|
174
|
+
extern Oid get_array_type(Oid typid);
|
175
|
+
extern Oid get_promoted_array_type(Oid typid);
|
176
|
+
extern Oid get_base_element_type(Oid typid);
|
177
|
+
extern void getTypeInputInfo(Oid type, Oid *typInput, Oid *typIOParam);
|
178
|
+
extern void getTypeOutputInfo(Oid type, Oid *typOutput, bool *typIsVarlena);
|
179
|
+
extern void getTypeBinaryInputInfo(Oid type, Oid *typReceive, Oid *typIOParam);
|
180
|
+
extern void getTypeBinaryOutputInfo(Oid type, Oid *typSend, bool *typIsVarlena);
|
181
|
+
extern Oid get_typmodin(Oid typid);
|
182
|
+
extern Oid get_typcollation(Oid typid);
|
183
|
+
extern bool type_is_collatable(Oid typid);
|
184
|
+
extern RegProcedure get_typsubscript(Oid typid, Oid *typelemp);
|
185
|
+
extern const struct SubscriptRoutines *getSubscriptingRoutines(Oid typid,
|
186
|
+
Oid *typelemp);
|
187
|
+
extern Oid getBaseType(Oid typid);
|
188
|
+
extern Oid getBaseTypeAndTypmod(Oid typid, int32 *typmod);
|
189
|
+
extern int32 get_typavgwidth(Oid typid, int32 typmod);
|
190
|
+
extern int32 get_attavgwidth(Oid relid, AttrNumber attnum);
|
191
|
+
extern bool get_attstatsslot(AttStatsSlot *sslot, HeapTuple statstuple,
|
192
|
+
int reqkind, Oid reqop, int flags);
|
193
|
+
extern void free_attstatsslot(AttStatsSlot *sslot);
|
194
|
+
extern char *get_namespace_name(Oid nspid);
|
195
|
+
extern char *get_namespace_name_or_temp(Oid nspid);
|
196
|
+
extern Oid get_range_subtype(Oid rangeOid);
|
197
|
+
extern Oid get_range_collation(Oid rangeOid);
|
198
|
+
extern Oid get_range_multirange(Oid rangeOid);
|
199
|
+
extern Oid get_multirange_range(Oid multirangeOid);
|
200
|
+
extern Oid get_index_column_opclass(Oid index_oid, int attno);
|
201
|
+
extern bool get_index_isreplident(Oid index_oid);
|
202
|
+
extern bool get_index_isvalid(Oid index_oid);
|
203
|
+
extern bool get_index_isclustered(Oid index_oid);
|
204
|
+
extern Oid get_publication_oid(const char *pubname, bool missing_ok);
|
205
|
+
extern char *get_publication_name(Oid pubid, bool missing_ok);
|
206
|
+
extern Oid get_subscription_oid(const char *subname, bool missing_ok);
|
207
|
+
extern char *get_subscription_name(Oid subid, bool missing_ok);
|
208
|
+
|
209
|
+
#define type_is_array(typid) (get_element_type(typid) != InvalidOid)
|
210
|
+
/* type_is_array_domain accepts both plain arrays and domains over arrays */
|
211
|
+
#define type_is_array_domain(typid) (get_base_element_type(typid) != InvalidOid)
|
212
|
+
|
213
|
+
#define TypeIsToastable(typid) (get_typstorage(typid) != TYPSTORAGE_PLAIN)
|
214
|
+
|
215
|
+
#endif /* LSYSCACHE_H */
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* memdebug.h
|
4
|
+
* Memory debugging support.
|
5
|
+
*
|
6
|
+
* Currently, this file either wraps <valgrind/memcheck.h> or substitutes
|
7
|
+
* empty definitions for Valgrind client request macros we use.
|
8
|
+
*
|
9
|
+
*
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
11
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
12
|
+
*
|
13
|
+
* src/include/utils/memdebug.h
|
14
|
+
*
|
15
|
+
*-------------------------------------------------------------------------
|
16
|
+
*/
|
17
|
+
#ifndef MEMDEBUG_H
|
18
|
+
#define MEMDEBUG_H
|
19
|
+
|
20
|
+
#ifdef USE_VALGRIND
|
21
|
+
#include <valgrind/memcheck.h>
|
22
|
+
#else
|
23
|
+
#define VALGRIND_CHECK_MEM_IS_DEFINED(addr, size) do {} while (0)
|
24
|
+
#define VALGRIND_CREATE_MEMPOOL(context, redzones, zeroed) do {} while (0)
|
25
|
+
#define VALGRIND_DESTROY_MEMPOOL(context) do {} while (0)
|
26
|
+
#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0)
|
27
|
+
#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0)
|
28
|
+
#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size) do {} while (0)
|
29
|
+
#define VALGRIND_MEMPOOL_ALLOC(context, addr, size) do {} while (0)
|
30
|
+
#define VALGRIND_MEMPOOL_FREE(context, addr) do {} while (0)
|
31
|
+
#define VALGRIND_MEMPOOL_CHANGE(context, optr, nptr, size) do {} while (0)
|
32
|
+
#endif
|
33
|
+
|
34
|
+
|
35
|
+
#ifdef CLOBBER_FREED_MEMORY
|
36
|
+
|
37
|
+
/* Wipe freed memory for debugging purposes */
|
38
|
+
static inline void
|
39
|
+
wipe_mem(void *ptr, size_t size)
|
40
|
+
{
|
41
|
+
VALGRIND_MAKE_MEM_UNDEFINED(ptr, size);
|
42
|
+
memset(ptr, 0x7F, size);
|
43
|
+
VALGRIND_MAKE_MEM_NOACCESS(ptr, size);
|
44
|
+
}
|
45
|
+
|
46
|
+
#endif /* CLOBBER_FREED_MEMORY */
|
47
|
+
|
48
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
49
|
+
|
50
|
+
static inline void
|
51
|
+
set_sentinel(void *base, Size offset)
|
52
|
+
{
|
53
|
+
char *ptr = (char *) base + offset;
|
54
|
+
|
55
|
+
VALGRIND_MAKE_MEM_UNDEFINED(ptr, 1);
|
56
|
+
*ptr = 0x7E;
|
57
|
+
VALGRIND_MAKE_MEM_NOACCESS(ptr, 1);
|
58
|
+
}
|
59
|
+
|
60
|
+
static inline bool
|
61
|
+
sentinel_ok(const void *base, Size offset)
|
62
|
+
{
|
63
|
+
const char *ptr = (const char *) base + offset;
|
64
|
+
bool ret;
|
65
|
+
|
66
|
+
VALGRIND_MAKE_MEM_DEFINED(ptr, 1);
|
67
|
+
ret = *ptr == 0x7E;
|
68
|
+
VALGRIND_MAKE_MEM_NOACCESS(ptr, 1);
|
69
|
+
|
70
|
+
return ret;
|
71
|
+
}
|
72
|
+
|
73
|
+
#endif /* MEMORY_CONTEXT_CHECKING */
|
74
|
+
|
75
|
+
#ifdef RANDOMIZE_ALLOCATED_MEMORY
|
76
|
+
|
77
|
+
void randomize_mem(char *ptr, size_t size);
|
78
|
+
|
79
|
+
#endif /* RANDOMIZE_ALLOCATED_MEMORY */
|
80
|
+
|
81
|
+
|
82
|
+
#endif /* MEMDEBUG_H */
|
@@ -0,0 +1,193 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* memutils.h
|
4
|
+
* This file contains declarations for memory allocation utility
|
5
|
+
* functions. These are functions that are not quite widely used
|
6
|
+
* enough to justify going in utils/palloc.h, but are still part
|
7
|
+
* of the API of the memory management subsystem.
|
8
|
+
*
|
9
|
+
*
|
10
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
11
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
12
|
+
*
|
13
|
+
* src/include/utils/memutils.h
|
14
|
+
*
|
15
|
+
*-------------------------------------------------------------------------
|
16
|
+
*/
|
17
|
+
#ifndef MEMUTILS_H
|
18
|
+
#define MEMUTILS_H
|
19
|
+
|
20
|
+
#include "nodes/memnodes.h"
|
21
|
+
|
22
|
+
|
23
|
+
/*
|
24
|
+
* MaxAllocSize, MaxAllocHugeSize
|
25
|
+
* Quasi-arbitrary limits on size of allocations.
|
26
|
+
*
|
27
|
+
* Note:
|
28
|
+
* There is no guarantee that smaller allocations will succeed, but
|
29
|
+
* larger requests will be summarily denied.
|
30
|
+
*
|
31
|
+
* palloc() enforces MaxAllocSize, chosen to correspond to the limiting size
|
32
|
+
* of varlena objects under TOAST. See VARSIZE_4B() and related macros in
|
33
|
+
* postgres.h. Many datatypes assume that any allocatable size can be
|
34
|
+
* represented in a varlena header. This limit also permits a caller to use
|
35
|
+
* an "int" variable for an index into or length of an allocation. Callers
|
36
|
+
* careful to avoid these hazards can access the higher limit with
|
37
|
+
* MemoryContextAllocHuge(). Both limits permit code to assume that it may
|
38
|
+
* compute twice an allocation's size without overflow.
|
39
|
+
*/
|
40
|
+
#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */
|
41
|
+
|
42
|
+
#define AllocSizeIsValid(size) ((Size) (size) <= MaxAllocSize)
|
43
|
+
|
44
|
+
/* Must be less than SIZE_MAX */
|
45
|
+
#define MaxAllocHugeSize (SIZE_MAX / 2)
|
46
|
+
|
47
|
+
#define InvalidAllocSize SIZE_MAX
|
48
|
+
|
49
|
+
#define AllocHugeSizeIsValid(size) ((Size) (size) <= MaxAllocHugeSize)
|
50
|
+
|
51
|
+
|
52
|
+
/*
|
53
|
+
* Standard top-level memory contexts.
|
54
|
+
*
|
55
|
+
* Only TopMemoryContext and ErrorContext are initialized by
|
56
|
+
* MemoryContextInit() itself.
|
57
|
+
*/
|
58
|
+
extern PGDLLIMPORT __thread MemoryContext TopMemoryContext;
|
59
|
+
extern PGDLLIMPORT __thread MemoryContext ErrorContext;
|
60
|
+
extern PGDLLIMPORT MemoryContext PostmasterContext;
|
61
|
+
extern PGDLLIMPORT MemoryContext CacheMemoryContext;
|
62
|
+
extern PGDLLIMPORT MemoryContext MessageContext;
|
63
|
+
extern PGDLLIMPORT MemoryContext TopTransactionContext;
|
64
|
+
extern PGDLLIMPORT MemoryContext CurTransactionContext;
|
65
|
+
|
66
|
+
/* This is a transient link to the active portal's memory context: */
|
67
|
+
extern PGDLLIMPORT MemoryContext PortalContext;
|
68
|
+
|
69
|
+
|
70
|
+
/*
|
71
|
+
* Memory-context-type-independent functions in mcxt.c
|
72
|
+
*/
|
73
|
+
extern void MemoryContextInit(void);
|
74
|
+
extern void MemoryContextReset(MemoryContext context);
|
75
|
+
extern void MemoryContextDelete(MemoryContext context);
|
76
|
+
extern void MemoryContextResetOnly(MemoryContext context);
|
77
|
+
extern void MemoryContextResetChildren(MemoryContext context);
|
78
|
+
extern void MemoryContextDeleteChildren(MemoryContext context);
|
79
|
+
extern void MemoryContextSetIdentifier(MemoryContext context, const char *id);
|
80
|
+
extern void MemoryContextSetParent(MemoryContext context,
|
81
|
+
MemoryContext new_parent);
|
82
|
+
extern MemoryContext GetMemoryChunkContext(void *pointer);
|
83
|
+
extern Size GetMemoryChunkSpace(void *pointer);
|
84
|
+
extern MemoryContext MemoryContextGetParent(MemoryContext context);
|
85
|
+
extern bool MemoryContextIsEmpty(MemoryContext context);
|
86
|
+
extern Size MemoryContextMemAllocated(MemoryContext context, bool recurse);
|
87
|
+
extern void MemoryContextMemConsumed(MemoryContext context,
|
88
|
+
MemoryContextCounters *consumed);
|
89
|
+
extern void MemoryContextStats(MemoryContext context);
|
90
|
+
extern void MemoryContextStatsDetail(MemoryContext context,
|
91
|
+
int max_level, int max_children,
|
92
|
+
bool print_to_stderr);
|
93
|
+
extern void MemoryContextAllowInCriticalSection(MemoryContext context,
|
94
|
+
bool allow);
|
95
|
+
|
96
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
97
|
+
extern void MemoryContextCheck(MemoryContext context);
|
98
|
+
#endif
|
99
|
+
|
100
|
+
/* Handy macro for copying and assigning context ID ... but note double eval */
|
101
|
+
#define MemoryContextCopyAndSetIdentifier(cxt, id) \
|
102
|
+
MemoryContextSetIdentifier(cxt, MemoryContextStrdup(cxt, id))
|
103
|
+
|
104
|
+
extern void HandleLogMemoryContextInterrupt(void);
|
105
|
+
extern void ProcessLogMemoryContextInterrupt(void);
|
106
|
+
|
107
|
+
/*
|
108
|
+
* Memory-context-type-specific functions
|
109
|
+
*/
|
110
|
+
|
111
|
+
/* aset.c */
|
112
|
+
extern MemoryContext AllocSetContextCreateInternal(MemoryContext parent,
|
113
|
+
const char *name,
|
114
|
+
Size minContextSize,
|
115
|
+
Size initBlockSize,
|
116
|
+
Size maxBlockSize);
|
117
|
+
extern void AllocSetDeleteFreeList(MemoryContext context);
|
118
|
+
|
119
|
+
/*
|
120
|
+
* This wrapper macro exists to check for non-constant strings used as context
|
121
|
+
* names; that's no longer supported. (Use MemoryContextSetIdentifier if you
|
122
|
+
* want to provide a variable identifier.)
|
123
|
+
*/
|
124
|
+
#ifdef HAVE__BUILTIN_CONSTANT_P
|
125
|
+
#define AllocSetContextCreate(parent, name, ...) \
|
126
|
+
(StaticAssertExpr(__builtin_constant_p(name), \
|
127
|
+
"memory context names must be constant strings"), \
|
128
|
+
AllocSetContextCreateInternal(parent, name, __VA_ARGS__))
|
129
|
+
#else
|
130
|
+
#define AllocSetContextCreate \
|
131
|
+
AllocSetContextCreateInternal
|
132
|
+
#endif
|
133
|
+
|
134
|
+
/* slab.c */
|
135
|
+
extern MemoryContext SlabContextCreate(MemoryContext parent,
|
136
|
+
const char *name,
|
137
|
+
Size blockSize,
|
138
|
+
Size chunkSize);
|
139
|
+
|
140
|
+
/* generation.c */
|
141
|
+
extern MemoryContext GenerationContextCreate(MemoryContext parent,
|
142
|
+
const char *name,
|
143
|
+
Size minContextSize,
|
144
|
+
Size initBlockSize,
|
145
|
+
Size maxBlockSize);
|
146
|
+
|
147
|
+
/* bump.c */
|
148
|
+
extern MemoryContext BumpContextCreate(MemoryContext parent,
|
149
|
+
const char *name,
|
150
|
+
Size minContextSize,
|
151
|
+
Size initBlockSize,
|
152
|
+
Size maxBlockSize);
|
153
|
+
|
154
|
+
/*
|
155
|
+
* Recommended default alloc parameters, suitable for "ordinary" contexts
|
156
|
+
* that might hold quite a lot of data.
|
157
|
+
*/
|
158
|
+
#define ALLOCSET_DEFAULT_MINSIZE 0
|
159
|
+
#define ALLOCSET_DEFAULT_INITSIZE (8 * 1024)
|
160
|
+
#define ALLOCSET_DEFAULT_MAXSIZE (8 * 1024 * 1024)
|
161
|
+
#define ALLOCSET_DEFAULT_SIZES \
|
162
|
+
ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE
|
163
|
+
|
164
|
+
/*
|
165
|
+
* Recommended alloc parameters for "small" contexts that are never expected
|
166
|
+
* to contain much data (for example, a context to contain a query plan).
|
167
|
+
*/
|
168
|
+
#define ALLOCSET_SMALL_MINSIZE 0
|
169
|
+
#define ALLOCSET_SMALL_INITSIZE (1 * 1024)
|
170
|
+
#define ALLOCSET_SMALL_MAXSIZE (8 * 1024)
|
171
|
+
#define ALLOCSET_SMALL_SIZES \
|
172
|
+
ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_SMALL_MAXSIZE
|
173
|
+
|
174
|
+
/*
|
175
|
+
* Recommended alloc parameters for contexts that should start out small,
|
176
|
+
* but might sometimes grow big.
|
177
|
+
*/
|
178
|
+
#define ALLOCSET_START_SMALL_SIZES \
|
179
|
+
ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE
|
180
|
+
|
181
|
+
|
182
|
+
/*
|
183
|
+
* Threshold above which a request in an AllocSet context is certain to be
|
184
|
+
* allocated separately (and thereby have constant allocation overhead).
|
185
|
+
* Few callers should be interested in this, but tuplesort/tuplestore need
|
186
|
+
* to know it.
|
187
|
+
*/
|
188
|
+
#define ALLOCSET_SEPARATE_THRESHOLD 8192
|
189
|
+
|
190
|
+
#define SLAB_DEFAULT_BLOCK_SIZE (8 * 1024)
|
191
|
+
#define SLAB_LARGE_BLOCK_SIZE (8 * 1024 * 1024)
|
192
|
+
|
193
|
+
#endif /* MEMUTILS_H */
|
@@ -0,0 +1,176 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* memutils_internal.h
|
4
|
+
* This file contains declarations for memory allocation utility
|
5
|
+
* functions for internal use.
|
6
|
+
*
|
7
|
+
*
|
8
|
+
* Portions Copyright (c) 2022-2024, PostgreSQL Global Development Group
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
10
|
+
*
|
11
|
+
* src/include/utils/memutils_internal.h
|
12
|
+
*
|
13
|
+
*-------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
#ifndef MEMUTILS_INTERNAL_H
|
17
|
+
#define MEMUTILS_INTERNAL_H
|
18
|
+
|
19
|
+
#include "utils/memutils.h"
|
20
|
+
|
21
|
+
/* These functions implement the MemoryContext API for AllocSet context. */
|
22
|
+
extern void *AllocSetAlloc(MemoryContext context, Size size, int flags);
|
23
|
+
extern void AllocSetFree(void *pointer);
|
24
|
+
extern void *AllocSetRealloc(void *pointer, Size size, int flags);
|
25
|
+
extern void AllocSetReset(MemoryContext context);
|
26
|
+
extern void AllocSetDelete(MemoryContext context);
|
27
|
+
extern MemoryContext AllocSetGetChunkContext(void *pointer);
|
28
|
+
extern Size AllocSetGetChunkSpace(void *pointer);
|
29
|
+
extern bool AllocSetIsEmpty(MemoryContext context);
|
30
|
+
extern void AllocSetStats(MemoryContext context,
|
31
|
+
MemoryStatsPrintFunc printfunc, void *passthru,
|
32
|
+
MemoryContextCounters *totals,
|
33
|
+
bool print_to_stderr);
|
34
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
35
|
+
extern void AllocSetCheck(MemoryContext context);
|
36
|
+
#endif
|
37
|
+
|
38
|
+
/* These functions implement the MemoryContext API for Generation context. */
|
39
|
+
extern void *GenerationAlloc(MemoryContext context, Size size, int flags);
|
40
|
+
extern void GenerationFree(void *pointer);
|
41
|
+
extern void *GenerationRealloc(void *pointer, Size size, int flags);
|
42
|
+
extern void GenerationReset(MemoryContext context);
|
43
|
+
extern void GenerationDelete(MemoryContext context);
|
44
|
+
extern MemoryContext GenerationGetChunkContext(void *pointer);
|
45
|
+
extern Size GenerationGetChunkSpace(void *pointer);
|
46
|
+
extern bool GenerationIsEmpty(MemoryContext context);
|
47
|
+
extern void GenerationStats(MemoryContext context,
|
48
|
+
MemoryStatsPrintFunc printfunc, void *passthru,
|
49
|
+
MemoryContextCounters *totals,
|
50
|
+
bool print_to_stderr);
|
51
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
52
|
+
extern void GenerationCheck(MemoryContext context);
|
53
|
+
#endif
|
54
|
+
|
55
|
+
|
56
|
+
/* These functions implement the MemoryContext API for Slab context. */
|
57
|
+
extern void *SlabAlloc(MemoryContext context, Size size, int flags);
|
58
|
+
extern void SlabFree(void *pointer);
|
59
|
+
extern void *SlabRealloc(void *pointer, Size size, int flags);
|
60
|
+
extern void SlabReset(MemoryContext context);
|
61
|
+
extern void SlabDelete(MemoryContext context);
|
62
|
+
extern MemoryContext SlabGetChunkContext(void *pointer);
|
63
|
+
extern Size SlabGetChunkSpace(void *pointer);
|
64
|
+
extern bool SlabIsEmpty(MemoryContext context);
|
65
|
+
extern void SlabStats(MemoryContext context,
|
66
|
+
MemoryStatsPrintFunc printfunc, void *passthru,
|
67
|
+
MemoryContextCounters *totals,
|
68
|
+
bool print_to_stderr);
|
69
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
70
|
+
extern void SlabCheck(MemoryContext context);
|
71
|
+
#endif
|
72
|
+
|
73
|
+
/*
|
74
|
+
* These functions support the implementation of palloc_aligned() and are not
|
75
|
+
* part of a fully-fledged MemoryContext type.
|
76
|
+
*/
|
77
|
+
extern void AlignedAllocFree(void *pointer);
|
78
|
+
extern void *AlignedAllocRealloc(void *pointer, Size size, int flags);
|
79
|
+
extern MemoryContext AlignedAllocGetChunkContext(void *pointer);
|
80
|
+
extern Size AlignedAllocGetChunkSpace(void *pointer);
|
81
|
+
|
82
|
+
/* These functions implement the MemoryContext API for the Bump context. */
|
83
|
+
extern void *BumpAlloc(MemoryContext context, Size size, int flags);
|
84
|
+
extern void BumpFree(void *pointer);
|
85
|
+
extern void *BumpRealloc(void *pointer, Size size, int flags);
|
86
|
+
extern void BumpReset(MemoryContext context);
|
87
|
+
extern void BumpDelete(MemoryContext context);
|
88
|
+
extern MemoryContext BumpGetChunkContext(void *pointer);
|
89
|
+
extern Size BumpGetChunkSpace(void *pointer);
|
90
|
+
extern bool BumpIsEmpty(MemoryContext context);
|
91
|
+
extern void BumpStats(MemoryContext context, MemoryStatsPrintFunc printfunc,
|
92
|
+
void *passthru, MemoryContextCounters *totals,
|
93
|
+
bool print_to_stderr);
|
94
|
+
#ifdef MEMORY_CONTEXT_CHECKING
|
95
|
+
extern void BumpCheck(MemoryContext context);
|
96
|
+
#endif
|
97
|
+
|
98
|
+
/*
|
99
|
+
* How many extra bytes do we need to request in order to ensure that we can
|
100
|
+
* align a pointer to 'alignto'. Since palloc'd pointers are already aligned
|
101
|
+
* to MAXIMUM_ALIGNOF we can subtract that amount. We also need to make sure
|
102
|
+
* there is enough space for the redirection MemoryChunk.
|
103
|
+
*/
|
104
|
+
#define PallocAlignedExtraBytes(alignto) \
|
105
|
+
((alignto) + (sizeof(MemoryChunk) - MAXIMUM_ALIGNOF))
|
106
|
+
|
107
|
+
/*
|
108
|
+
* MemoryContextMethodID
|
109
|
+
* A unique identifier for each MemoryContext implementation which
|
110
|
+
* indicates the index into the mcxt_methods[] array. See mcxt.c.
|
111
|
+
*
|
112
|
+
* For robust error detection, ensure that MemoryContextMethodID has a value
|
113
|
+
* for each possible bit-pattern of MEMORY_CONTEXT_METHODID_MASK, and make
|
114
|
+
* dummy entries for unused IDs in the mcxt_methods[] array. We also try
|
115
|
+
* to avoid using bit-patterns as valid IDs if they are likely to occur in
|
116
|
+
* garbage data, or if they could falsely match on chunks that are really from
|
117
|
+
* malloc not palloc. (We can't tell that for most malloc implementations,
|
118
|
+
* but it happens that glibc stores flag bits in the same place where we put
|
119
|
+
* the MemoryContextMethodID, so the possible values are predictable for it.)
|
120
|
+
*/
|
121
|
+
typedef enum MemoryContextMethodID
|
122
|
+
{
|
123
|
+
MCTX_0_RESERVED_UNUSEDMEM_ID, /* 0000 occurs in never-used memory */
|
124
|
+
MCTX_1_RESERVED_GLIBC_ID, /* glibc malloc'd chunks usually match 0001 */
|
125
|
+
MCTX_2_RESERVED_GLIBC_ID, /* glibc malloc'd chunks > 128kB match 0010 */
|
126
|
+
MCTX_ASET_ID,
|
127
|
+
MCTX_GENERATION_ID,
|
128
|
+
MCTX_SLAB_ID,
|
129
|
+
MCTX_ALIGNED_REDIRECT_ID,
|
130
|
+
MCTX_BUMP_ID,
|
131
|
+
MCTX_8_UNUSED_ID,
|
132
|
+
MCTX_9_UNUSED_ID,
|
133
|
+
MCTX_10_UNUSED_ID,
|
134
|
+
MCTX_11_UNUSED_ID,
|
135
|
+
MCTX_12_UNUSED_ID,
|
136
|
+
MCTX_13_UNUSED_ID,
|
137
|
+
MCTX_14_UNUSED_ID,
|
138
|
+
MCTX_15_RESERVED_WIPEDMEM_ID /* 1111 occurs in wipe_mem'd memory */
|
139
|
+
} MemoryContextMethodID;
|
140
|
+
|
141
|
+
/*
|
142
|
+
* The number of bits that 8-byte memory chunk headers can use to encode the
|
143
|
+
* MemoryContextMethodID.
|
144
|
+
*/
|
145
|
+
#define MEMORY_CONTEXT_METHODID_BITS 4
|
146
|
+
#define MEMORY_CONTEXT_METHODID_MASK \
|
147
|
+
((((uint64) 1) << MEMORY_CONTEXT_METHODID_BITS) - 1)
|
148
|
+
|
149
|
+
/*
|
150
|
+
* This routine handles the context-type-independent part of memory
|
151
|
+
* context creation. It's intended to be called from context-type-
|
152
|
+
* specific creation routines, and noplace else.
|
153
|
+
*/
|
154
|
+
extern void MemoryContextCreate(MemoryContext node,
|
155
|
+
NodeTag tag,
|
156
|
+
MemoryContextMethodID method_id,
|
157
|
+
MemoryContext parent,
|
158
|
+
const char *name);
|
159
|
+
|
160
|
+
extern void *MemoryContextAllocationFailure(MemoryContext context, Size size,
|
161
|
+
int flags);
|
162
|
+
|
163
|
+
extern void MemoryContextSizeFailure(MemoryContext context, Size size,
|
164
|
+
int flags) pg_attribute_noreturn();
|
165
|
+
|
166
|
+
static inline void
|
167
|
+
MemoryContextCheckSize(MemoryContext context, Size size, int flags)
|
168
|
+
{
|
169
|
+
if (unlikely(!AllocSizeIsValid(size)))
|
170
|
+
{
|
171
|
+
if (!(flags & MCXT_ALLOC_HUGE) || !AllocHugeSizeIsValid(size))
|
172
|
+
MemoryContextSizeFailure(context, size, flags);
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
#endif /* MEMUTILS_INTERNAL_H */
|