pg_query 4.2.1 → 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 +61 -0
- data/README.md +7 -9
- 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 +28 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
- 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/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 +7723 -6368
- data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +22595 -17738
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- 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 -0
- data/ext/pg_query/pg_query_normalize.c +43 -2
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- 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 +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +2 -2
- data/ext/pg_query/pg_query_split.c +3 -3
- 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 +243 -63
- 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 +140 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +16 -8
- data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
- data/ext/pg_query/src_backend_parser_parser.c +34 -8
- data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
- 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 +99 -96
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
- 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 +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
- 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 +704 -497
- 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 +637 -233
- 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 +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +586 -517
- 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 +100 -116
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
- 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 +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_snprintf.c +20 -27
- 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 +5 -8
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +6 -8
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +173 -3196
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +52 -11
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +443 -442
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -290
- 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 -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 -231
- 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 -807
- data/ext/pg_query/include/access/itup.h +0 -167
- 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 -58
- 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 -2077
- 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/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 -65
- data/ext/pg_query/include/access/xact.h +0 -523
- data/ext/pg_query/include/access/xlog.h +0 -303
- data/ext/pg_query/include/access/xlog_internal.h +0 -366
- data/ext/pg_query/include/access/xlogdefs.h +0 -101
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -443
- data/ext/pg_query/include/access/xlogrecord.h +0 -236
- data/ext/pg_query/include/access/xlogrecovery.h +0 -157
- data/ext/pg_query/include/c.h +0 -1391
- data/ext/pg_query/include/catalog/catalog.h +0 -44
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -269
- data/ext/pg_query/include/catalog/genbki.h +0 -142
- 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 -265
- 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 -221
- 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 -57
- 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 -98
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
- 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 -250
- 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_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 -63
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- 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 -161
- 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 -36
- data/ext/pg_query/include/commands/defrem.h +0 -160
- 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 -287
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -340
- 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 -31
- 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 -60
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -42
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/datatype/timestamp.h +0 -236
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -663
- 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 -487
- data/ext/pg_query/include/fmgr.h +0 -781
- data/ext/pg_query/include/funcapi.h +0 -360
- 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 -1095
- data/ext/pg_query/include/lib/dshash.h +0 -112
- data/ext/pg_query/include/lib/ilist.h +0 -746
- 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 -31
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -179
- data/ext/pg_query/include/libpq/libpq-be.h +0 -343
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -194
- 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 -755
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -495
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2715
- data/ext/pg_query/include/nodes/extensible.h +0 -162
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -109
- data/ext/pg_query/include/nodes/memnodes.h +0 -110
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -861
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
- data/ext/pg_query/include/nodes/pg_list.h +0 -612
- data/ext/pg_query/include/nodes/plannodes.h +0 -1349
- data/ext/pg_query/include/nodes/primnodes.h +0 -1593
- 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 -80
- data/ext/pg_query/include/optimizer/cost.h +0 -213
- 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 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -120
- data/ext/pg_query/include/parser/analyze.h +0 -63
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -487
- data/ext/pg_query/include/parser/parse_agg.h +0 -63
- data/ext/pg_query/include/parser/parse_coerce.h +0 -100
- 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 -339
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -124
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- 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 -1037
- data/ext/pg_query/include/pg_config_manual.h +0 -410
- 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 -699
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -383
- 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 -111
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1345
- 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 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -302
- 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 -553
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -808
- 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/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 -73
- data/ext/pg_query/include/postmaster/postmaster.h +0 -78
- data/ext/pg_query/include/postmaster/startup.h +0 -39
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -186
- data/ext/pg_query/include/replication/logicallauncher.h +0 -29
- data/ext/pg_query/include/replication/logicalproto.h +0 -254
- 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 -685
- data/ext/pg_query/include/replication/slot.h +0 -230
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -472
- 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 -38
- 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 -115
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -297
- data/ext/pg_query/include/storage/bufpage.h +0 -457
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -64
- data/ext/pg_query/include/storage/dsm_impl.h +0 -76
- data/ext/pg_query/include/storage/fd.h +0 -198
- 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 -208
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -186
- data/ext/pg_query/include/storage/lmgr.h +0 -115
- data/ext/pg_query/include/storage/lock.h +0 -616
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -206
- 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 -461
- data/ext/pg_query/include/storage/procarray.h +0 -98
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -71
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1110
- 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 -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 -111
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -98
- 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 -58
- 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 -149
- 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 -97
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -333
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -464
- data/ext/pg_query/include/utils/backend_progress.h +0 -44
- data/ext/pg_query/include/utils/backend_status.h +0 -321
- data/ext/pg_query/include/utils/builtins.h +0 -127
- 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 -90
- data/ext/pg_query/include/utils/datetime.h +0 -344
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/elog.h +0 -470
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- 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 -3261
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -469
- data/ext/pg_query/include/utils/guc_tables.h +0 -276
- 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/lsyscache.h +0 -208
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -230
- data/ext/pg_query/include/utils/numeric.h +0 -90
- data/ext/pg_query/include/utils/palloc.h +0 -158
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -127
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
- 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/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/queryjumble.h +0 -88
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -695
- data/ext/pg_query/include/utils/relcache.h +0 -153
- 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 -47
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -179
- 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 -224
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -117
- data/ext/pg_query/include/utils/tuplesort.h +0 -291
- 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/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -41
- data/ext/pg_query/include/utils/wait_event.h +0 -289
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- 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/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,323 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* guc_tables.h
|
4
|
+
* Declarations of tables used by GUC.
|
5
|
+
*
|
6
|
+
* See src/backend/utils/misc/README for design notes.
|
7
|
+
*
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
|
+
*
|
10
|
+
* src/include/utils/guc_tables.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef GUC_TABLES_H
|
15
|
+
#define GUC_TABLES_H 1
|
16
|
+
|
17
|
+
#include "lib/ilist.h"
|
18
|
+
#include "utils/guc.h"
|
19
|
+
|
20
|
+
/*
|
21
|
+
* GUC supports these types of variables:
|
22
|
+
*/
|
23
|
+
enum config_type
|
24
|
+
{
|
25
|
+
PGC_BOOL,
|
26
|
+
PGC_INT,
|
27
|
+
PGC_REAL,
|
28
|
+
PGC_STRING,
|
29
|
+
PGC_ENUM,
|
30
|
+
};
|
31
|
+
|
32
|
+
union config_var_val
|
33
|
+
{
|
34
|
+
bool boolval;
|
35
|
+
int intval;
|
36
|
+
double realval;
|
37
|
+
char *stringval;
|
38
|
+
int enumval;
|
39
|
+
};
|
40
|
+
|
41
|
+
/*
|
42
|
+
* The actual value of a GUC variable can include a malloc'd opaque struct
|
43
|
+
* "extra", which is created by its check_hook and used by its assign_hook.
|
44
|
+
*/
|
45
|
+
typedef struct config_var_value
|
46
|
+
{
|
47
|
+
union config_var_val val;
|
48
|
+
void *extra;
|
49
|
+
} config_var_value;
|
50
|
+
|
51
|
+
/*
|
52
|
+
* Groupings to help organize all the run-time options for display.
|
53
|
+
* Be sure this agrees with the way the options are categorized in config.sgml!
|
54
|
+
*/
|
55
|
+
enum config_group
|
56
|
+
{
|
57
|
+
UNGROUPED, /* use for options not shown in pg_settings */
|
58
|
+
FILE_LOCATIONS,
|
59
|
+
CONN_AUTH_SETTINGS,
|
60
|
+
CONN_AUTH_TCP,
|
61
|
+
CONN_AUTH_AUTH,
|
62
|
+
CONN_AUTH_SSL,
|
63
|
+
RESOURCES_MEM,
|
64
|
+
RESOURCES_DISK,
|
65
|
+
RESOURCES_KERNEL,
|
66
|
+
RESOURCES_VACUUM_DELAY,
|
67
|
+
RESOURCES_BGWRITER,
|
68
|
+
RESOURCES_ASYNCHRONOUS,
|
69
|
+
WAL_SETTINGS,
|
70
|
+
WAL_CHECKPOINTS,
|
71
|
+
WAL_ARCHIVING,
|
72
|
+
WAL_RECOVERY,
|
73
|
+
WAL_ARCHIVE_RECOVERY,
|
74
|
+
WAL_RECOVERY_TARGET,
|
75
|
+
WAL_SUMMARIZATION,
|
76
|
+
REPLICATION_SENDING,
|
77
|
+
REPLICATION_PRIMARY,
|
78
|
+
REPLICATION_STANDBY,
|
79
|
+
REPLICATION_SUBSCRIBERS,
|
80
|
+
QUERY_TUNING_METHOD,
|
81
|
+
QUERY_TUNING_COST,
|
82
|
+
QUERY_TUNING_GEQO,
|
83
|
+
QUERY_TUNING_OTHER,
|
84
|
+
LOGGING_WHERE,
|
85
|
+
LOGGING_WHEN,
|
86
|
+
LOGGING_WHAT,
|
87
|
+
PROCESS_TITLE,
|
88
|
+
STATS_MONITORING,
|
89
|
+
STATS_CUMULATIVE,
|
90
|
+
AUTOVACUUM,
|
91
|
+
CLIENT_CONN_STATEMENT,
|
92
|
+
CLIENT_CONN_LOCALE,
|
93
|
+
CLIENT_CONN_PRELOAD,
|
94
|
+
CLIENT_CONN_OTHER,
|
95
|
+
LOCK_MANAGEMENT,
|
96
|
+
COMPAT_OPTIONS_PREVIOUS,
|
97
|
+
COMPAT_OPTIONS_OTHER,
|
98
|
+
ERROR_HANDLING_OPTIONS,
|
99
|
+
PRESET_OPTIONS,
|
100
|
+
CUSTOM_OPTIONS,
|
101
|
+
DEVELOPER_OPTIONS,
|
102
|
+
};
|
103
|
+
|
104
|
+
/*
|
105
|
+
* Stack entry for saving the state a variable had prior to an uncommitted
|
106
|
+
* transactional change
|
107
|
+
*/
|
108
|
+
typedef enum
|
109
|
+
{
|
110
|
+
/* This is almost GucAction, but we need a fourth state for SET+LOCAL */
|
111
|
+
GUC_SAVE, /* entry caused by function SET option */
|
112
|
+
GUC_SET, /* entry caused by plain SET command */
|
113
|
+
GUC_LOCAL, /* entry caused by SET LOCAL command */
|
114
|
+
GUC_SET_LOCAL, /* entry caused by SET then SET LOCAL */
|
115
|
+
} GucStackState;
|
116
|
+
|
117
|
+
typedef struct guc_stack
|
118
|
+
{
|
119
|
+
struct guc_stack *prev; /* previous stack item, if any */
|
120
|
+
int nest_level; /* nesting depth at which we made entry */
|
121
|
+
GucStackState state; /* see enum above */
|
122
|
+
GucSource source; /* source of the prior value */
|
123
|
+
/* masked value's source must be PGC_S_SESSION, so no need to store it */
|
124
|
+
GucContext scontext; /* context that set the prior value */
|
125
|
+
GucContext masked_scontext; /* context that set the masked value */
|
126
|
+
Oid srole; /* role that set the prior value */
|
127
|
+
Oid masked_srole; /* role that set the masked value */
|
128
|
+
config_var_value prior; /* previous value of variable */
|
129
|
+
config_var_value masked; /* SET value in a GUC_SET_LOCAL entry */
|
130
|
+
} GucStack;
|
131
|
+
|
132
|
+
/*
|
133
|
+
* Generic fields applicable to all types of variables
|
134
|
+
*
|
135
|
+
* The short description should be less than 80 chars in length. Some
|
136
|
+
* applications may use the long description as well, and will append
|
137
|
+
* it to the short description. (separated by a newline or '. ')
|
138
|
+
*
|
139
|
+
* srole is the role that set the current value, or BOOTSTRAP_SUPERUSERID
|
140
|
+
* if the value came from an internal source or the config file. Similarly
|
141
|
+
* for reset_srole (which is usually BOOTSTRAP_SUPERUSERID, but not always).
|
142
|
+
*
|
143
|
+
* Variables that are currently of active interest for maintenance
|
144
|
+
* operations are linked into various lists using the xxx_link fields.
|
145
|
+
* The link fields are unused/garbage in variables not currently having
|
146
|
+
* the specified properties.
|
147
|
+
*
|
148
|
+
* Note that sourcefile/sourceline are kept here, and not pushed into stacked
|
149
|
+
* values, although in principle they belong with some stacked value if the
|
150
|
+
* active value is session- or transaction-local. This is to avoid bloating
|
151
|
+
* stack entries. We know they are only relevant when source == PGC_S_FILE.
|
152
|
+
*/
|
153
|
+
struct config_generic
|
154
|
+
{
|
155
|
+
/* constant fields, must be set correctly in initial value: */
|
156
|
+
const char *name; /* name of variable - MUST BE FIRST */
|
157
|
+
GucContext context; /* context required to set the variable */
|
158
|
+
enum config_group group; /* to help organize variables by function */
|
159
|
+
const char *short_desc; /* short desc. of this variable's purpose */
|
160
|
+
const char *long_desc; /* long desc. of this variable's purpose */
|
161
|
+
int flags; /* flag bits, see guc.h */
|
162
|
+
/* variable fields, initialized at runtime: */
|
163
|
+
enum config_type vartype; /* type of variable (set only at startup) */
|
164
|
+
int status; /* status bits, see below */
|
165
|
+
GucSource source; /* source of the current actual value */
|
166
|
+
GucSource reset_source; /* source of the reset_value */
|
167
|
+
GucContext scontext; /* context that set the current value */
|
168
|
+
GucContext reset_scontext; /* context that set the reset value */
|
169
|
+
Oid srole; /* role that set the current value */
|
170
|
+
Oid reset_srole; /* role that set the reset value */
|
171
|
+
GucStack *stack; /* stacked prior values */
|
172
|
+
void *extra; /* "extra" pointer for current actual value */
|
173
|
+
dlist_node nondef_link; /* list link for variables that have source
|
174
|
+
* different from PGC_S_DEFAULT */
|
175
|
+
slist_node stack_link; /* list link for variables that have non-NULL
|
176
|
+
* stack */
|
177
|
+
slist_node report_link; /* list link for variables that have the
|
178
|
+
* GUC_NEEDS_REPORT bit set in status */
|
179
|
+
char *last_reported; /* if variable is GUC_REPORT, value last sent
|
180
|
+
* to client (NULL if not yet sent) */
|
181
|
+
char *sourcefile; /* file current setting is from (NULL if not
|
182
|
+
* set in config file) */
|
183
|
+
int sourceline; /* line in source file */
|
184
|
+
};
|
185
|
+
|
186
|
+
/* bit values in status field */
|
187
|
+
#define GUC_IS_IN_FILE 0x0001 /* found it in config file */
|
188
|
+
/*
|
189
|
+
* Caution: the GUC_IS_IN_FILE bit is transient state for ProcessConfigFile.
|
190
|
+
* Do not assume that its value represents useful information elsewhere.
|
191
|
+
*/
|
192
|
+
#define GUC_PENDING_RESTART 0x0002 /* changed value cannot be applied yet */
|
193
|
+
#define GUC_NEEDS_REPORT 0x0004 /* new value must be reported to client */
|
194
|
+
|
195
|
+
|
196
|
+
/* GUC records for specific variable types */
|
197
|
+
|
198
|
+
struct config_bool
|
199
|
+
{
|
200
|
+
struct config_generic gen;
|
201
|
+
/* constant fields, must be set correctly in initial value: */
|
202
|
+
bool *variable;
|
203
|
+
bool boot_val;
|
204
|
+
GucBoolCheckHook check_hook;
|
205
|
+
GucBoolAssignHook assign_hook;
|
206
|
+
GucShowHook show_hook;
|
207
|
+
/* variable fields, initialized at runtime: */
|
208
|
+
bool reset_val;
|
209
|
+
void *reset_extra;
|
210
|
+
};
|
211
|
+
|
212
|
+
struct config_int
|
213
|
+
{
|
214
|
+
struct config_generic gen;
|
215
|
+
/* constant fields, must be set correctly in initial value: */
|
216
|
+
int *variable;
|
217
|
+
int boot_val;
|
218
|
+
int min;
|
219
|
+
int max;
|
220
|
+
GucIntCheckHook check_hook;
|
221
|
+
GucIntAssignHook assign_hook;
|
222
|
+
GucShowHook show_hook;
|
223
|
+
/* variable fields, initialized at runtime: */
|
224
|
+
int reset_val;
|
225
|
+
void *reset_extra;
|
226
|
+
};
|
227
|
+
|
228
|
+
struct config_real
|
229
|
+
{
|
230
|
+
struct config_generic gen;
|
231
|
+
/* constant fields, must be set correctly in initial value: */
|
232
|
+
double *variable;
|
233
|
+
double boot_val;
|
234
|
+
double min;
|
235
|
+
double max;
|
236
|
+
GucRealCheckHook check_hook;
|
237
|
+
GucRealAssignHook assign_hook;
|
238
|
+
GucShowHook show_hook;
|
239
|
+
/* variable fields, initialized at runtime: */
|
240
|
+
double reset_val;
|
241
|
+
void *reset_extra;
|
242
|
+
};
|
243
|
+
|
244
|
+
/*
|
245
|
+
* A note about string GUCs: the boot_val is allowed to be NULL, which leads
|
246
|
+
* to the reset_val and the actual variable value (*variable) also being NULL.
|
247
|
+
* However, there is no way to set a NULL value subsequently using
|
248
|
+
* set_config_option or any other GUC API. Also, GUC APIs such as SHOW will
|
249
|
+
* display a NULL value as an empty string. Callers that choose to use a NULL
|
250
|
+
* boot_val should overwrite the setting later in startup, or else be careful
|
251
|
+
* that NULL doesn't have semantics that are visibly different from an empty
|
252
|
+
* string.
|
253
|
+
*/
|
254
|
+
struct config_string
|
255
|
+
{
|
256
|
+
struct config_generic gen;
|
257
|
+
/* constant fields, must be set correctly in initial value: */
|
258
|
+
char **variable;
|
259
|
+
const char *boot_val;
|
260
|
+
GucStringCheckHook check_hook;
|
261
|
+
GucStringAssignHook assign_hook;
|
262
|
+
GucShowHook show_hook;
|
263
|
+
/* variable fields, initialized at runtime: */
|
264
|
+
char *reset_val;
|
265
|
+
void *reset_extra;
|
266
|
+
};
|
267
|
+
|
268
|
+
struct config_enum
|
269
|
+
{
|
270
|
+
struct config_generic gen;
|
271
|
+
/* constant fields, must be set correctly in initial value: */
|
272
|
+
int *variable;
|
273
|
+
int boot_val;
|
274
|
+
const struct config_enum_entry *options;
|
275
|
+
GucEnumCheckHook check_hook;
|
276
|
+
GucEnumAssignHook assign_hook;
|
277
|
+
GucShowHook show_hook;
|
278
|
+
/* variable fields, initialized at runtime: */
|
279
|
+
int reset_val;
|
280
|
+
void *reset_extra;
|
281
|
+
};
|
282
|
+
|
283
|
+
/* constant tables corresponding to enums above and in guc.h */
|
284
|
+
extern PGDLLIMPORT const char *const config_group_names[];
|
285
|
+
extern PGDLLIMPORT const char *const config_type_names[];
|
286
|
+
extern PGDLLIMPORT const char *const GucContext_Names[];
|
287
|
+
extern PGDLLIMPORT const char *const GucSource_Names[];
|
288
|
+
|
289
|
+
/* data arrays defining all the built-in GUC variables */
|
290
|
+
extern PGDLLIMPORT struct config_bool ConfigureNamesBool[];
|
291
|
+
extern PGDLLIMPORT struct config_int ConfigureNamesInt[];
|
292
|
+
extern PGDLLIMPORT struct config_real ConfigureNamesReal[];
|
293
|
+
extern PGDLLIMPORT struct config_string ConfigureNamesString[];
|
294
|
+
extern PGDLLIMPORT struct config_enum ConfigureNamesEnum[];
|
295
|
+
|
296
|
+
/* lookup GUC variables, returning config_generic pointers */
|
297
|
+
extern struct config_generic *find_option(const char *name,
|
298
|
+
bool create_placeholders,
|
299
|
+
bool skip_errors,
|
300
|
+
int elevel);
|
301
|
+
extern struct config_generic **get_explain_guc_options(int *num);
|
302
|
+
|
303
|
+
/* get string value of variable */
|
304
|
+
extern char *ShowGUCOption(struct config_generic *record, bool use_units);
|
305
|
+
|
306
|
+
/* get whether or not the GUC variable is visible to current user */
|
307
|
+
extern bool ConfigOptionIsVisible(struct config_generic *conf);
|
308
|
+
|
309
|
+
/* get the current set of variables */
|
310
|
+
extern struct config_generic **get_guc_variables(int *num_vars);
|
311
|
+
|
312
|
+
extern void build_guc_variables(void);
|
313
|
+
|
314
|
+
/* search in enum options */
|
315
|
+
extern const char *config_enum_lookup_by_value(struct config_enum *record, int val);
|
316
|
+
extern bool config_enum_lookup_by_name(struct config_enum *record,
|
317
|
+
const char *value, int *retval);
|
318
|
+
extern char *config_enum_get_options(struct config_enum *record,
|
319
|
+
const char *prefix,
|
320
|
+
const char *suffix,
|
321
|
+
const char *separator);
|
322
|
+
|
323
|
+
#endif /* GUC_TABLES_H */
|
@@ -0,0 +1,153 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* hsearch.h
|
4
|
+
* exported definitions for utils/hash/dynahash.c; see notes therein
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/utils/hsearch.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef HSEARCH_H
|
15
|
+
#define HSEARCH_H
|
16
|
+
|
17
|
+
|
18
|
+
/*
|
19
|
+
* Hash functions must have this signature.
|
20
|
+
*/
|
21
|
+
typedef uint32 (*HashValueFunc) (const void *key, Size keysize);
|
22
|
+
|
23
|
+
/*
|
24
|
+
* Key comparison functions must have this signature. Comparison functions
|
25
|
+
* return zero for match, nonzero for no match. (The comparison function
|
26
|
+
* definition is designed to allow memcmp() and strncmp() to be used directly
|
27
|
+
* as key comparison functions.)
|
28
|
+
*/
|
29
|
+
typedef int (*HashCompareFunc) (const void *key1, const void *key2,
|
30
|
+
Size keysize);
|
31
|
+
|
32
|
+
/*
|
33
|
+
* Key copying functions must have this signature. The return value is not
|
34
|
+
* used. (The definition is set up to allow memcpy() and strlcpy() to be
|
35
|
+
* used directly.)
|
36
|
+
*/
|
37
|
+
typedef void *(*HashCopyFunc) (void *dest, const void *src, Size keysize);
|
38
|
+
|
39
|
+
/*
|
40
|
+
* Space allocation function for a hashtable --- designed to match malloc().
|
41
|
+
* Note: there is no free function API; can't destroy a hashtable unless you
|
42
|
+
* use the default allocator.
|
43
|
+
*/
|
44
|
+
typedef void *(*HashAllocFunc) (Size request);
|
45
|
+
|
46
|
+
/*
|
47
|
+
* HASHELEMENT is the private part of a hashtable entry. The caller's data
|
48
|
+
* follows the HASHELEMENT structure (on a MAXALIGN'd boundary). The hash key
|
49
|
+
* is expected to be at the start of the caller's hash entry data structure.
|
50
|
+
*/
|
51
|
+
typedef struct HASHELEMENT
|
52
|
+
{
|
53
|
+
struct HASHELEMENT *link; /* link to next entry in same bucket */
|
54
|
+
uint32 hashvalue; /* hash function result for this entry */
|
55
|
+
} HASHELEMENT;
|
56
|
+
|
57
|
+
/* Hash table header struct is an opaque type known only within dynahash.c */
|
58
|
+
typedef struct HASHHDR HASHHDR;
|
59
|
+
|
60
|
+
/* Hash table control struct is an opaque type known only within dynahash.c */
|
61
|
+
typedef struct HTAB HTAB;
|
62
|
+
|
63
|
+
/* Parameter data structure for hash_create */
|
64
|
+
/* Only those fields indicated by hash_flags need be set */
|
65
|
+
typedef struct HASHCTL
|
66
|
+
{
|
67
|
+
/* Used if HASH_PARTITION flag is set: */
|
68
|
+
long num_partitions; /* # partitions (must be power of 2) */
|
69
|
+
/* Used if HASH_SEGMENT flag is set: */
|
70
|
+
long ssize; /* segment size */
|
71
|
+
/* Used if HASH_DIRSIZE flag is set: */
|
72
|
+
long dsize; /* (initial) directory size */
|
73
|
+
long max_dsize; /* limit to dsize if dir size is limited */
|
74
|
+
/* Used if HASH_ELEM flag is set (which is now required): */
|
75
|
+
Size keysize; /* hash key length in bytes */
|
76
|
+
Size entrysize; /* total user element size in bytes */
|
77
|
+
/* Used if HASH_FUNCTION flag is set: */
|
78
|
+
HashValueFunc hash; /* hash function */
|
79
|
+
/* Used if HASH_COMPARE flag is set: */
|
80
|
+
HashCompareFunc match; /* key comparison function */
|
81
|
+
/* Used if HASH_KEYCOPY flag is set: */
|
82
|
+
HashCopyFunc keycopy; /* key copying function */
|
83
|
+
/* Used if HASH_ALLOC flag is set: */
|
84
|
+
HashAllocFunc alloc; /* memory allocator */
|
85
|
+
/* Used if HASH_CONTEXT flag is set: */
|
86
|
+
MemoryContext hcxt; /* memory context to use for allocations */
|
87
|
+
/* Used if HASH_SHARED_MEM flag is set: */
|
88
|
+
HASHHDR *hctl; /* location of header in shared mem */
|
89
|
+
} HASHCTL;
|
90
|
+
|
91
|
+
/* Flag bits for hash_create; most indicate which parameters are supplied */
|
92
|
+
#define HASH_PARTITION 0x0001 /* Hashtable is used w/partitioned locking */
|
93
|
+
#define HASH_SEGMENT 0x0002 /* Set segment size */
|
94
|
+
#define HASH_DIRSIZE 0x0004 /* Set directory size (initial and max) */
|
95
|
+
#define HASH_ELEM 0x0008 /* Set keysize and entrysize (now required!) */
|
96
|
+
#define HASH_STRINGS 0x0010 /* Select support functions for string keys */
|
97
|
+
#define HASH_BLOBS 0x0020 /* Select support functions for binary keys */
|
98
|
+
#define HASH_FUNCTION 0x0040 /* Set user defined hash function */
|
99
|
+
#define HASH_COMPARE 0x0080 /* Set user defined comparison function */
|
100
|
+
#define HASH_KEYCOPY 0x0100 /* Set user defined key-copying function */
|
101
|
+
#define HASH_ALLOC 0x0200 /* Set memory allocator */
|
102
|
+
#define HASH_CONTEXT 0x0400 /* Set memory allocation context */
|
103
|
+
#define HASH_SHARED_MEM 0x0800 /* Hashtable is in shared memory */
|
104
|
+
#define HASH_ATTACH 0x1000 /* Do not initialize hctl */
|
105
|
+
#define HASH_FIXED_SIZE 0x2000 /* Initial size is a hard limit */
|
106
|
+
|
107
|
+
/* max_dsize value to indicate expansible directory */
|
108
|
+
#define NO_MAX_DSIZE (-1)
|
109
|
+
|
110
|
+
/* hash_search operations */
|
111
|
+
typedef enum
|
112
|
+
{
|
113
|
+
HASH_FIND,
|
114
|
+
HASH_ENTER,
|
115
|
+
HASH_REMOVE,
|
116
|
+
HASH_ENTER_NULL,
|
117
|
+
} HASHACTION;
|
118
|
+
|
119
|
+
/* hash_seq status (should be considered an opaque type by callers) */
|
120
|
+
typedef struct
|
121
|
+
{
|
122
|
+
HTAB *hashp;
|
123
|
+
uint32 curBucket; /* index of current bucket */
|
124
|
+
HASHELEMENT *curEntry; /* current entry in bucket */
|
125
|
+
} HASH_SEQ_STATUS;
|
126
|
+
|
127
|
+
/*
|
128
|
+
* prototypes for functions in dynahash.c
|
129
|
+
*/
|
130
|
+
extern HTAB *hash_create(const char *tabname, long nelem,
|
131
|
+
const HASHCTL *info, int flags);
|
132
|
+
extern void hash_destroy(HTAB *hashp);
|
133
|
+
extern void hash_stats(const char *where, HTAB *hashp);
|
134
|
+
extern void *hash_search(HTAB *hashp, const void *keyPtr, HASHACTION action,
|
135
|
+
bool *foundPtr);
|
136
|
+
extern uint32 get_hash_value(HTAB *hashp, const void *keyPtr);
|
137
|
+
extern void *hash_search_with_hash_value(HTAB *hashp, const void *keyPtr,
|
138
|
+
uint32 hashvalue, HASHACTION action,
|
139
|
+
bool *foundPtr);
|
140
|
+
extern bool hash_update_hash_key(HTAB *hashp, void *existingEntry,
|
141
|
+
const void *newKeyPtr);
|
142
|
+
extern long hash_get_num_entries(HTAB *hashp);
|
143
|
+
extern void hash_seq_init(HASH_SEQ_STATUS *status, HTAB *hashp);
|
144
|
+
extern void *hash_seq_search(HASH_SEQ_STATUS *status);
|
145
|
+
extern void hash_seq_term(HASH_SEQ_STATUS *status);
|
146
|
+
extern void hash_freeze(HTAB *hashp);
|
147
|
+
extern Size hash_estimate_size(long num_entries, Size entrysize);
|
148
|
+
extern long hash_select_dirsize(long num_entries);
|
149
|
+
extern Size hash_get_shared_size(HASHCTL *info, int flags);
|
150
|
+
extern void AtEOXact_HashTables(bool isCommit);
|
151
|
+
extern void AtEOSubXact_HashTables(bool isCommit, int nestDepth);
|
152
|
+
|
153
|
+
#endif /* HSEARCH_H */
|
@@ -0,0 +1,44 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
* injection_point.h
|
3
|
+
* Definitions related to injection points.
|
4
|
+
*
|
5
|
+
* Copyright (c) 2001-2024, PostgreSQL Global Development Group
|
6
|
+
*
|
7
|
+
* src/include/utils/injection_point.h
|
8
|
+
*-------------------------------------------------------------------------
|
9
|
+
*/
|
10
|
+
|
11
|
+
#ifndef INJECTION_POINT_H
|
12
|
+
#define INJECTION_POINT_H
|
13
|
+
|
14
|
+
/*
|
15
|
+
* Injections points require --enable-injection-points.
|
16
|
+
*/
|
17
|
+
#ifdef USE_INJECTION_POINTS
|
18
|
+
#define INJECTION_POINT(name) InjectionPointRun(name)
|
19
|
+
#else
|
20
|
+
#define INJECTION_POINT(name) ((void) name)
|
21
|
+
#endif
|
22
|
+
|
23
|
+
/*
|
24
|
+
* Typedef for callback function launched by an injection point.
|
25
|
+
*/
|
26
|
+
typedef void (*InjectionPointCallback) (const char *name,
|
27
|
+
const void *private_data);
|
28
|
+
|
29
|
+
extern Size InjectionPointShmemSize(void);
|
30
|
+
extern void InjectionPointShmemInit(void);
|
31
|
+
|
32
|
+
extern void InjectionPointAttach(const char *name,
|
33
|
+
const char *library,
|
34
|
+
const char *function,
|
35
|
+
const void *private_data,
|
36
|
+
int private_data_size);
|
37
|
+
extern void InjectionPointRun(const char *name);
|
38
|
+
extern bool InjectionPointDetach(const char *name);
|
39
|
+
|
40
|
+
#ifdef EXEC_BACKEND
|
41
|
+
extern PGDLLIMPORT struct InjectionPointsCtl *ActiveInjectionPoints;
|
42
|
+
#endif
|
43
|
+
|
44
|
+
#endif /* INJECTION_POINT_H */
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* inval.h
|
4
|
+
* POSTGRES cache invalidation dispatcher definitions.
|
5
|
+
*
|
6
|
+
*
|
7
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
8
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
9
|
+
*
|
10
|
+
* src/include/utils/inval.h
|
11
|
+
*
|
12
|
+
*-------------------------------------------------------------------------
|
13
|
+
*/
|
14
|
+
#ifndef INVAL_H
|
15
|
+
#define INVAL_H
|
16
|
+
|
17
|
+
#include "access/htup.h"
|
18
|
+
#include "storage/relfilelocator.h"
|
19
|
+
#include "utils/relcache.h"
|
20
|
+
|
21
|
+
extern PGDLLIMPORT int debug_discard_caches;
|
22
|
+
|
23
|
+
typedef void (*SyscacheCallbackFunction) (Datum arg, int cacheid, uint32 hashvalue);
|
24
|
+
typedef void (*RelcacheCallbackFunction) (Datum arg, Oid relid);
|
25
|
+
|
26
|
+
|
27
|
+
extern void AcceptInvalidationMessages(void);
|
28
|
+
|
29
|
+
extern void AtEOXact_Inval(bool isCommit);
|
30
|
+
|
31
|
+
extern void AtEOSubXact_Inval(bool isCommit);
|
32
|
+
|
33
|
+
extern void PostPrepare_Inval(void);
|
34
|
+
|
35
|
+
extern void CommandEndInvalidationMessages(void);
|
36
|
+
|
37
|
+
extern void CacheInvalidateHeapTuple(Relation relation,
|
38
|
+
HeapTuple tuple,
|
39
|
+
HeapTuple newtuple);
|
40
|
+
|
41
|
+
extern void CacheInvalidateCatalog(Oid catalogId);
|
42
|
+
|
43
|
+
extern void CacheInvalidateRelcache(Relation relation);
|
44
|
+
|
45
|
+
extern void CacheInvalidateRelcacheAll(void);
|
46
|
+
|
47
|
+
extern void CacheInvalidateRelcacheByTuple(HeapTuple classTuple);
|
48
|
+
|
49
|
+
extern void CacheInvalidateRelcacheByRelid(Oid relid);
|
50
|
+
|
51
|
+
extern void CacheInvalidateSmgr(RelFileLocatorBackend rlocator);
|
52
|
+
|
53
|
+
extern void CacheInvalidateRelmap(Oid databaseId);
|
54
|
+
|
55
|
+
extern void CacheRegisterSyscacheCallback(int cacheid,
|
56
|
+
SyscacheCallbackFunction func,
|
57
|
+
Datum arg);
|
58
|
+
|
59
|
+
extern void CacheRegisterRelcacheCallback(RelcacheCallbackFunction func,
|
60
|
+
Datum arg);
|
61
|
+
|
62
|
+
extern void CallSyscacheCallbacks(int cacheid, uint32 hashvalue);
|
63
|
+
|
64
|
+
extern void InvalidateSystemCaches(void);
|
65
|
+
extern void InvalidateSystemCachesExtended(bool debug_discard);
|
66
|
+
|
67
|
+
extern void LogLogicalInvalidations(void);
|
68
|
+
#endif /* INVAL_H */
|
@@ -0,0 +1,77 @@
|
|
1
|
+
/*-------------------------------------------------------------------------
|
2
|
+
*
|
3
|
+
* logtape.h
|
4
|
+
* Management of "logical tapes" within temporary files.
|
5
|
+
*
|
6
|
+
* See logtape.c for explanations.
|
7
|
+
*
|
8
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
9
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
10
|
+
*
|
11
|
+
* src/include/utils/logtape.h
|
12
|
+
*
|
13
|
+
*-------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
#ifndef LOGTAPE_H
|
17
|
+
#define LOGTAPE_H
|
18
|
+
|
19
|
+
#include "storage/sharedfileset.h"
|
20
|
+
|
21
|
+
/*
|
22
|
+
* LogicalTapeSet and LogicalTape are opaque types whose details are not
|
23
|
+
* known outside logtape.c.
|
24
|
+
*/
|
25
|
+
typedef struct LogicalTapeSet LogicalTapeSet;
|
26
|
+
typedef struct LogicalTape LogicalTape;
|
27
|
+
|
28
|
+
|
29
|
+
/*
|
30
|
+
* The approach tuplesort.c takes to parallel external sorts is that workers,
|
31
|
+
* whose state is almost the same as independent serial sorts, are made to
|
32
|
+
* produce a final materialized tape of sorted output in all cases. This is
|
33
|
+
* frozen, just like any case requiring a final materialized tape. However,
|
34
|
+
* there is one difference, which is that freezing will also export an
|
35
|
+
* underlying shared fileset BufFile for sharing. Freezing produces TapeShare
|
36
|
+
* metadata for the worker when this happens, which is passed along through
|
37
|
+
* shared memory to leader.
|
38
|
+
*
|
39
|
+
* The leader process can then pass an array of TapeShare metadata (one per
|
40
|
+
* worker participant) to LogicalTapeSetCreate(), alongside a handle to a
|
41
|
+
* shared fileset, which is sufficient to construct a new logical tapeset that
|
42
|
+
* consists of each of the tapes materialized by workers.
|
43
|
+
*
|
44
|
+
* Note that while logtape.c does create an empty leader tape at the end of the
|
45
|
+
* tapeset in the leader case, it can never be written to due to a restriction
|
46
|
+
* in the shared buffile infrastructure.
|
47
|
+
*/
|
48
|
+
typedef struct TapeShare
|
49
|
+
{
|
50
|
+
/*
|
51
|
+
* Currently, all the leader process needs is the location of the
|
52
|
+
* materialized tape's first block.
|
53
|
+
*/
|
54
|
+
int64 firstblocknumber;
|
55
|
+
} TapeShare;
|
56
|
+
|
57
|
+
/*
|
58
|
+
* prototypes for functions in logtape.c
|
59
|
+
*/
|
60
|
+
|
61
|
+
extern LogicalTapeSet *LogicalTapeSetCreate(bool preallocate,
|
62
|
+
SharedFileSet *fileset, int worker);
|
63
|
+
extern void LogicalTapeClose(LogicalTape *lt);
|
64
|
+
extern void LogicalTapeSetClose(LogicalTapeSet *lts);
|
65
|
+
extern LogicalTape *LogicalTapeCreate(LogicalTapeSet *lts);
|
66
|
+
extern LogicalTape *LogicalTapeImport(LogicalTapeSet *lts, int worker, TapeShare *shared);
|
67
|
+
extern void LogicalTapeSetForgetFreeSpace(LogicalTapeSet *lts);
|
68
|
+
extern size_t LogicalTapeRead(LogicalTape *lt, void *ptr, size_t size);
|
69
|
+
extern void LogicalTapeWrite(LogicalTape *lt, const void *ptr, size_t size);
|
70
|
+
extern void LogicalTapeRewindForRead(LogicalTape *lt, size_t buffer_size);
|
71
|
+
extern void LogicalTapeFreeze(LogicalTape *lt, TapeShare *share);
|
72
|
+
extern size_t LogicalTapeBackspace(LogicalTape *lt, size_t size);
|
73
|
+
extern void LogicalTapeSeek(LogicalTape *lt, int64 blocknum, int offset);
|
74
|
+
extern void LogicalTapeTell(LogicalTape *lt, int64 *blocknum, int *offset);
|
75
|
+
extern int64 LogicalTapeSetBlocks(LogicalTapeSet *lts);
|
76
|
+
|
77
|
+
#endif /* LOGTAPE_H */
|