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
@@ -1,303 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* xlog.h
|
3
|
-
*
|
4
|
-
* PostgreSQL write-ahead log manager
|
5
|
-
*
|
6
|
-
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
7
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
8
|
-
*
|
9
|
-
* src/include/access/xlog.h
|
10
|
-
*/
|
11
|
-
#ifndef XLOG_H
|
12
|
-
#define XLOG_H
|
13
|
-
|
14
|
-
#include "access/xlogdefs.h"
|
15
|
-
#include "access/xlogreader.h"
|
16
|
-
#include "datatype/timestamp.h"
|
17
|
-
#include "lib/stringinfo.h"
|
18
|
-
#include "nodes/pg_list.h"
|
19
|
-
|
20
|
-
|
21
|
-
/* Sync methods */
|
22
|
-
#define SYNC_METHOD_FSYNC 0
|
23
|
-
#define SYNC_METHOD_FDATASYNC 1
|
24
|
-
#define SYNC_METHOD_OPEN 2 /* for O_SYNC */
|
25
|
-
#define SYNC_METHOD_FSYNC_WRITETHROUGH 3
|
26
|
-
#define SYNC_METHOD_OPEN_DSYNC 4 /* for O_DSYNC */
|
27
|
-
extern PGDLLIMPORT int sync_method;
|
28
|
-
|
29
|
-
extern PGDLLIMPORT XLogRecPtr ProcLastRecPtr;
|
30
|
-
extern PGDLLIMPORT XLogRecPtr XactLastRecEnd;
|
31
|
-
extern PGDLLIMPORT XLogRecPtr XactLastCommitEnd;
|
32
|
-
|
33
|
-
/* these variables are GUC parameters related to XLOG */
|
34
|
-
extern PGDLLIMPORT int wal_segment_size;
|
35
|
-
extern PGDLLIMPORT int min_wal_size_mb;
|
36
|
-
extern PGDLLIMPORT int max_wal_size_mb;
|
37
|
-
extern PGDLLIMPORT int wal_keep_size_mb;
|
38
|
-
extern PGDLLIMPORT int max_slot_wal_keep_size_mb;
|
39
|
-
extern PGDLLIMPORT int XLOGbuffers;
|
40
|
-
extern PGDLLIMPORT int XLogArchiveTimeout;
|
41
|
-
extern PGDLLIMPORT int wal_retrieve_retry_interval;
|
42
|
-
extern PGDLLIMPORT char *XLogArchiveCommand;
|
43
|
-
extern PGDLLIMPORT bool EnableHotStandby;
|
44
|
-
extern PGDLLIMPORT bool fullPageWrites;
|
45
|
-
extern PGDLLIMPORT bool wal_log_hints;
|
46
|
-
extern PGDLLIMPORT int wal_compression;
|
47
|
-
extern PGDLLIMPORT bool wal_init_zero;
|
48
|
-
extern PGDLLIMPORT bool wal_recycle;
|
49
|
-
extern PGDLLIMPORT bool *wal_consistency_checking;
|
50
|
-
extern PGDLLIMPORT char *wal_consistency_checking_string;
|
51
|
-
extern PGDLLIMPORT bool log_checkpoints;
|
52
|
-
extern PGDLLIMPORT bool track_wal_io_timing;
|
53
|
-
extern PGDLLIMPORT int wal_decode_buffer_size;
|
54
|
-
|
55
|
-
extern PGDLLIMPORT int CheckPointSegments;
|
56
|
-
|
57
|
-
/* Archive modes */
|
58
|
-
typedef enum ArchiveMode
|
59
|
-
{
|
60
|
-
ARCHIVE_MODE_OFF = 0, /* disabled */
|
61
|
-
ARCHIVE_MODE_ON, /* enabled while server is running normally */
|
62
|
-
ARCHIVE_MODE_ALWAYS /* enabled always (even during recovery) */
|
63
|
-
} ArchiveMode;
|
64
|
-
extern PGDLLIMPORT int XLogArchiveMode;
|
65
|
-
|
66
|
-
/* WAL levels */
|
67
|
-
typedef enum WalLevel
|
68
|
-
{
|
69
|
-
WAL_LEVEL_MINIMAL = 0,
|
70
|
-
WAL_LEVEL_REPLICA,
|
71
|
-
WAL_LEVEL_LOGICAL
|
72
|
-
} WalLevel;
|
73
|
-
|
74
|
-
/* Compression algorithms for WAL */
|
75
|
-
typedef enum WalCompression
|
76
|
-
{
|
77
|
-
WAL_COMPRESSION_NONE = 0,
|
78
|
-
WAL_COMPRESSION_PGLZ,
|
79
|
-
WAL_COMPRESSION_LZ4,
|
80
|
-
WAL_COMPRESSION_ZSTD
|
81
|
-
} WalCompression;
|
82
|
-
|
83
|
-
/* Recovery states */
|
84
|
-
typedef enum RecoveryState
|
85
|
-
{
|
86
|
-
RECOVERY_STATE_CRASH = 0, /* crash recovery */
|
87
|
-
RECOVERY_STATE_ARCHIVE, /* archive recovery */
|
88
|
-
RECOVERY_STATE_DONE /* currently in production */
|
89
|
-
} RecoveryState;
|
90
|
-
|
91
|
-
extern PGDLLIMPORT int wal_level;
|
92
|
-
|
93
|
-
/* Is WAL archiving enabled (always or only while server is running normally)? */
|
94
|
-
#define XLogArchivingActive() \
|
95
|
-
(AssertMacro(XLogArchiveMode == ARCHIVE_MODE_OFF || wal_level >= WAL_LEVEL_REPLICA), XLogArchiveMode > ARCHIVE_MODE_OFF)
|
96
|
-
/* Is WAL archiving enabled always (even during recovery)? */
|
97
|
-
#define XLogArchivingAlways() \
|
98
|
-
(AssertMacro(XLogArchiveMode == ARCHIVE_MODE_OFF || wal_level >= WAL_LEVEL_REPLICA), XLogArchiveMode == ARCHIVE_MODE_ALWAYS)
|
99
|
-
|
100
|
-
/*
|
101
|
-
* Is WAL-logging necessary for archival or log-shipping, or can we skip
|
102
|
-
* WAL-logging if we fsync() the data before committing instead?
|
103
|
-
*/
|
104
|
-
#define XLogIsNeeded() (wal_level >= WAL_LEVEL_REPLICA)
|
105
|
-
|
106
|
-
/*
|
107
|
-
* Is a full-page image needed for hint bit updates?
|
108
|
-
*
|
109
|
-
* Normally, we don't WAL-log hint bit updates, but if checksums are enabled,
|
110
|
-
* we have to protect them against torn page writes. When you only set
|
111
|
-
* individual bits on a page, it's still consistent no matter what combination
|
112
|
-
* of the bits make it to disk, but the checksum wouldn't match. Also WAL-log
|
113
|
-
* them if forced by wal_log_hints=on.
|
114
|
-
*/
|
115
|
-
#define XLogHintBitIsNeeded() (DataChecksumsEnabled() || wal_log_hints)
|
116
|
-
|
117
|
-
/* Do we need to WAL-log information required only for Hot Standby and logical replication? */
|
118
|
-
#define XLogStandbyInfoActive() (wal_level >= WAL_LEVEL_REPLICA)
|
119
|
-
|
120
|
-
/* Do we need to WAL-log information required only for logical replication? */
|
121
|
-
#define XLogLogicalInfoActive() (wal_level >= WAL_LEVEL_LOGICAL)
|
122
|
-
|
123
|
-
#ifdef WAL_DEBUG
|
124
|
-
extern PGDLLIMPORT bool XLOG_DEBUG;
|
125
|
-
#endif
|
126
|
-
|
127
|
-
/*
|
128
|
-
* OR-able request flag bits for checkpoints. The "cause" bits are used only
|
129
|
-
* for logging purposes. Note: the flags must be defined so that it's
|
130
|
-
* sensible to OR together request flags arising from different requestors.
|
131
|
-
*/
|
132
|
-
|
133
|
-
/* These directly affect the behavior of CreateCheckPoint and subsidiaries */
|
134
|
-
#define CHECKPOINT_IS_SHUTDOWN 0x0001 /* Checkpoint is for shutdown */
|
135
|
-
#define CHECKPOINT_END_OF_RECOVERY 0x0002 /* Like shutdown checkpoint, but
|
136
|
-
* issued at end of WAL recovery */
|
137
|
-
#define CHECKPOINT_IMMEDIATE 0x0004 /* Do it without delays */
|
138
|
-
#define CHECKPOINT_FORCE 0x0008 /* Force even if no activity */
|
139
|
-
#define CHECKPOINT_FLUSH_ALL 0x0010 /* Flush all pages, including those
|
140
|
-
* belonging to unlogged tables */
|
141
|
-
/* These are important to RequestCheckpoint */
|
142
|
-
#define CHECKPOINT_WAIT 0x0020 /* Wait for completion */
|
143
|
-
#define CHECKPOINT_REQUESTED 0x0040 /* Checkpoint request has been made */
|
144
|
-
/* These indicate the cause of a checkpoint request */
|
145
|
-
#define CHECKPOINT_CAUSE_XLOG 0x0080 /* XLOG consumption */
|
146
|
-
#define CHECKPOINT_CAUSE_TIME 0x0100 /* Elapsed time */
|
147
|
-
|
148
|
-
/*
|
149
|
-
* Flag bits for the record being inserted, set using XLogSetRecordFlags().
|
150
|
-
*/
|
151
|
-
#define XLOG_INCLUDE_ORIGIN 0x01 /* include the replication origin */
|
152
|
-
#define XLOG_MARK_UNIMPORTANT 0x02 /* record not important for durability */
|
153
|
-
|
154
|
-
|
155
|
-
/* Checkpoint statistics */
|
156
|
-
typedef struct CheckpointStatsData
|
157
|
-
{
|
158
|
-
TimestampTz ckpt_start_t; /* start of checkpoint */
|
159
|
-
TimestampTz ckpt_write_t; /* start of flushing buffers */
|
160
|
-
TimestampTz ckpt_sync_t; /* start of fsyncs */
|
161
|
-
TimestampTz ckpt_sync_end_t; /* end of fsyncs */
|
162
|
-
TimestampTz ckpt_end_t; /* end of checkpoint */
|
163
|
-
|
164
|
-
int ckpt_bufs_written; /* # of buffers written */
|
165
|
-
|
166
|
-
int ckpt_segs_added; /* # of new xlog segments created */
|
167
|
-
int ckpt_segs_removed; /* # of xlog segments deleted */
|
168
|
-
int ckpt_segs_recycled; /* # of xlog segments recycled */
|
169
|
-
|
170
|
-
int ckpt_sync_rels; /* # of relations synced */
|
171
|
-
uint64 ckpt_longest_sync; /* Longest sync for one relation */
|
172
|
-
uint64 ckpt_agg_sync_time; /* The sum of all the individual sync
|
173
|
-
* times, which is not necessarily the
|
174
|
-
* same as the total elapsed time for the
|
175
|
-
* entire sync phase. */
|
176
|
-
} CheckpointStatsData;
|
177
|
-
|
178
|
-
extern PGDLLIMPORT CheckpointStatsData CheckpointStats;
|
179
|
-
|
180
|
-
/*
|
181
|
-
* GetWALAvailability return codes
|
182
|
-
*/
|
183
|
-
typedef enum WALAvailability
|
184
|
-
{
|
185
|
-
WALAVAIL_INVALID_LSN, /* parameter error */
|
186
|
-
WALAVAIL_RESERVED, /* WAL segment is within max_wal_size */
|
187
|
-
WALAVAIL_EXTENDED, /* WAL segment is reserved by a slot or
|
188
|
-
* wal_keep_size */
|
189
|
-
WALAVAIL_UNRESERVED, /* no longer reserved, but not removed yet */
|
190
|
-
WALAVAIL_REMOVED /* WAL segment has been removed */
|
191
|
-
} WALAvailability;
|
192
|
-
|
193
|
-
struct XLogRecData;
|
194
|
-
|
195
|
-
extern XLogRecPtr XLogInsertRecord(struct XLogRecData *rdata,
|
196
|
-
XLogRecPtr fpw_lsn,
|
197
|
-
uint8 flags,
|
198
|
-
int num_fpi,
|
199
|
-
bool topxid_included);
|
200
|
-
extern void XLogFlush(XLogRecPtr RecPtr);
|
201
|
-
extern bool XLogBackgroundFlush(void);
|
202
|
-
extern bool XLogNeedsFlush(XLogRecPtr RecPtr);
|
203
|
-
extern int XLogFileInit(XLogSegNo segno, TimeLineID tli);
|
204
|
-
extern int XLogFileOpen(XLogSegNo segno, TimeLineID tli);
|
205
|
-
|
206
|
-
extern void CheckXLogRemoved(XLogSegNo segno, TimeLineID tli);
|
207
|
-
extern XLogSegNo XLogGetLastRemovedSegno(void);
|
208
|
-
extern void XLogSetAsyncXactLSN(XLogRecPtr record);
|
209
|
-
extern void XLogSetReplicationSlotMinimumLSN(XLogRecPtr lsn);
|
210
|
-
|
211
|
-
extern void xlog_redo(XLogReaderState *record);
|
212
|
-
extern void xlog_desc(StringInfo buf, XLogReaderState *record);
|
213
|
-
extern const char *xlog_identify(uint8 info);
|
214
|
-
|
215
|
-
extern void issue_xlog_fsync(int fd, XLogSegNo segno, TimeLineID tli);
|
216
|
-
|
217
|
-
extern bool RecoveryInProgress(void);
|
218
|
-
extern RecoveryState GetRecoveryState(void);
|
219
|
-
extern bool XLogInsertAllowed(void);
|
220
|
-
extern XLogRecPtr GetXLogInsertRecPtr(void);
|
221
|
-
extern XLogRecPtr GetXLogWriteRecPtr(void);
|
222
|
-
|
223
|
-
extern uint64 GetSystemIdentifier(void);
|
224
|
-
extern char *GetMockAuthenticationNonce(void);
|
225
|
-
extern bool DataChecksumsEnabled(void);
|
226
|
-
extern XLogRecPtr GetFakeLSNForUnloggedRel(void);
|
227
|
-
extern Size XLOGShmemSize(void);
|
228
|
-
extern void XLOGShmemInit(void);
|
229
|
-
extern void BootStrapXLOG(void);
|
230
|
-
extern void LocalProcessControlFile(bool reset);
|
231
|
-
extern void StartupXLOG(void);
|
232
|
-
extern void ShutdownXLOG(int code, Datum arg);
|
233
|
-
extern void CreateCheckPoint(int flags);
|
234
|
-
extern bool CreateRestartPoint(int flags);
|
235
|
-
extern WALAvailability GetWALAvailability(XLogRecPtr targetLSN);
|
236
|
-
extern void XLogPutNextOid(Oid nextOid);
|
237
|
-
extern XLogRecPtr XLogRestorePoint(const char *rpName);
|
238
|
-
extern void UpdateFullPageWrites(void);
|
239
|
-
extern void GetFullPageWriteInfo(XLogRecPtr *RedoRecPtr_p, bool *doPageWrites_p);
|
240
|
-
extern XLogRecPtr GetRedoRecPtr(void);
|
241
|
-
extern XLogRecPtr GetInsertRecPtr(void);
|
242
|
-
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
|
243
|
-
extern TimeLineID GetWALInsertionTimeLine(void);
|
244
|
-
extern XLogRecPtr GetLastImportantRecPtr(void);
|
245
|
-
|
246
|
-
extern void SetWalWriterSleeping(bool sleeping);
|
247
|
-
|
248
|
-
extern void assign_max_wal_size(int newval, void *extra);
|
249
|
-
extern void assign_checkpoint_completion_target(double newval, void *extra);
|
250
|
-
|
251
|
-
/*
|
252
|
-
* Routines used by xlogrecovery.c to call back into xlog.c during recovery.
|
253
|
-
*/
|
254
|
-
extern void RemoveNonParentXlogFiles(XLogRecPtr switchpoint, TimeLineID newTLI);
|
255
|
-
extern bool XLogCheckpointNeeded(XLogSegNo new_segno);
|
256
|
-
extern void SwitchIntoArchiveRecovery(XLogRecPtr EndRecPtr, TimeLineID replayTLI);
|
257
|
-
extern void ReachedEndOfBackup(XLogRecPtr EndRecPtr, TimeLineID tli);
|
258
|
-
extern void SetInstallXLogFileSegmentActive(void);
|
259
|
-
extern bool IsInstallXLogFileSegmentActive(void);
|
260
|
-
extern void XLogShutdownWalRcv(void);
|
261
|
-
|
262
|
-
/*
|
263
|
-
* Routines to start, stop, and get status of a base backup.
|
264
|
-
*/
|
265
|
-
|
266
|
-
/*
|
267
|
-
* Session-level status of base backups
|
268
|
-
*
|
269
|
-
* This is used in parallel with the shared memory status to control parallel
|
270
|
-
* execution of base backup functions for a given session, be it a backend
|
271
|
-
* dedicated to replication or a normal backend connected to a database. The
|
272
|
-
* update of the session-level status happens at the same time as the shared
|
273
|
-
* memory counters to keep a consistent global and local state of the backups
|
274
|
-
* running.
|
275
|
-
*/
|
276
|
-
typedef enum SessionBackupState
|
277
|
-
{
|
278
|
-
SESSION_BACKUP_NONE,
|
279
|
-
SESSION_BACKUP_RUNNING,
|
280
|
-
} SessionBackupState;
|
281
|
-
|
282
|
-
extern XLogRecPtr do_pg_backup_start(const char *backupidstr, bool fast,
|
283
|
-
TimeLineID *starttli_p, StringInfo labelfile,
|
284
|
-
List **tablespaces, StringInfo tblspcmapfile);
|
285
|
-
extern XLogRecPtr do_pg_backup_stop(char *labelfile, bool waitforarchive,
|
286
|
-
TimeLineID *stoptli_p);
|
287
|
-
extern void do_pg_abort_backup(int code, Datum arg);
|
288
|
-
extern void register_persistent_abort_backup_handler(void);
|
289
|
-
extern SessionBackupState get_backup_status(void);
|
290
|
-
|
291
|
-
/* File path names (all relative to $PGDATA) */
|
292
|
-
#define RECOVERY_SIGNAL_FILE "recovery.signal"
|
293
|
-
#define STANDBY_SIGNAL_FILE "standby.signal"
|
294
|
-
#define BACKUP_LABEL_FILE "backup_label"
|
295
|
-
#define BACKUP_LABEL_OLD "backup_label.old"
|
296
|
-
|
297
|
-
#define TABLESPACE_MAP "tablespace_map"
|
298
|
-
#define TABLESPACE_MAP_OLD "tablespace_map.old"
|
299
|
-
|
300
|
-
/* files to signal promotion to primary */
|
301
|
-
#define PROMOTE_SIGNAL_FILE "promote"
|
302
|
-
|
303
|
-
#endif /* XLOG_H */
|
@@ -1,366 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* xlog_internal.h
|
3
|
-
*
|
4
|
-
* PostgreSQL write-ahead log internal declarations
|
5
|
-
*
|
6
|
-
* NOTE: this file is intended to contain declarations useful for
|
7
|
-
* manipulating the XLOG files directly, but it is not supposed to be
|
8
|
-
* needed by rmgr routines (redo support for individual record types).
|
9
|
-
* So the XLogRecord typedef and associated stuff appear in xlogrecord.h.
|
10
|
-
*
|
11
|
-
* Note: This file must be includable in both frontend and backend contexts,
|
12
|
-
* to allow stand-alone tools like pg_receivewal to deal with WAL files.
|
13
|
-
*
|
14
|
-
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
15
|
-
* Portions Copyright (c) 1994, Regents of the University of California
|
16
|
-
*
|
17
|
-
* src/include/access/xlog_internal.h
|
18
|
-
*/
|
19
|
-
#ifndef XLOG_INTERNAL_H
|
20
|
-
#define XLOG_INTERNAL_H
|
21
|
-
|
22
|
-
#include "access/xlogdefs.h"
|
23
|
-
#include "access/xlogreader.h"
|
24
|
-
#include "datatype/timestamp.h"
|
25
|
-
#include "lib/stringinfo.h"
|
26
|
-
#include "pgtime.h"
|
27
|
-
#include "storage/block.h"
|
28
|
-
#include "storage/relfilenode.h"
|
29
|
-
|
30
|
-
|
31
|
-
/*
|
32
|
-
* Each page of XLOG file has a header like this:
|
33
|
-
*/
|
34
|
-
#define XLOG_PAGE_MAGIC 0xD110 /* can be used as WAL version indicator */
|
35
|
-
|
36
|
-
typedef struct XLogPageHeaderData
|
37
|
-
{
|
38
|
-
uint16 xlp_magic; /* magic value for correctness checks */
|
39
|
-
uint16 xlp_info; /* flag bits, see below */
|
40
|
-
TimeLineID xlp_tli; /* TimeLineID of first record on page */
|
41
|
-
XLogRecPtr xlp_pageaddr; /* XLOG address of this page */
|
42
|
-
|
43
|
-
/*
|
44
|
-
* When there is not enough space on current page for whole record, we
|
45
|
-
* continue on the next page. xlp_rem_len is the number of bytes
|
46
|
-
* remaining from a previous page; it tracks xl_tot_len in the initial
|
47
|
-
* header. Note that the continuation data isn't necessarily aligned.
|
48
|
-
*/
|
49
|
-
uint32 xlp_rem_len; /* total len of remaining data for record */
|
50
|
-
} XLogPageHeaderData;
|
51
|
-
|
52
|
-
#define SizeOfXLogShortPHD MAXALIGN(sizeof(XLogPageHeaderData))
|
53
|
-
|
54
|
-
typedef XLogPageHeaderData *XLogPageHeader;
|
55
|
-
|
56
|
-
/*
|
57
|
-
* When the XLP_LONG_HEADER flag is set, we store additional fields in the
|
58
|
-
* page header. (This is ordinarily done just in the first page of an
|
59
|
-
* XLOG file.) The additional fields serve to identify the file accurately.
|
60
|
-
*/
|
61
|
-
typedef struct XLogLongPageHeaderData
|
62
|
-
{
|
63
|
-
XLogPageHeaderData std; /* standard header fields */
|
64
|
-
uint64 xlp_sysid; /* system identifier from pg_control */
|
65
|
-
uint32 xlp_seg_size; /* just as a cross-check */
|
66
|
-
uint32 xlp_xlog_blcksz; /* just as a cross-check */
|
67
|
-
} XLogLongPageHeaderData;
|
68
|
-
|
69
|
-
#define SizeOfXLogLongPHD MAXALIGN(sizeof(XLogLongPageHeaderData))
|
70
|
-
|
71
|
-
typedef XLogLongPageHeaderData *XLogLongPageHeader;
|
72
|
-
|
73
|
-
/* When record crosses page boundary, set this flag in new page's header */
|
74
|
-
#define XLP_FIRST_IS_CONTRECORD 0x0001
|
75
|
-
/* This flag indicates a "long" page header */
|
76
|
-
#define XLP_LONG_HEADER 0x0002
|
77
|
-
/* This flag indicates backup blocks starting in this page are optional */
|
78
|
-
#define XLP_BKP_REMOVABLE 0x0004
|
79
|
-
/* Replaces a missing contrecord; see CreateOverwriteContrecordRecord */
|
80
|
-
#define XLP_FIRST_IS_OVERWRITE_CONTRECORD 0x0008
|
81
|
-
/* All defined flag bits in xlp_info (used for validity checking of header) */
|
82
|
-
#define XLP_ALL_FLAGS 0x000F
|
83
|
-
|
84
|
-
#define XLogPageHeaderSize(hdr) \
|
85
|
-
(((hdr)->xlp_info & XLP_LONG_HEADER) ? SizeOfXLogLongPHD : SizeOfXLogShortPHD)
|
86
|
-
|
87
|
-
/* wal_segment_size can range from 1MB to 1GB */
|
88
|
-
#define WalSegMinSize 1024 * 1024
|
89
|
-
#define WalSegMaxSize 1024 * 1024 * 1024
|
90
|
-
/* default number of min and max wal segments */
|
91
|
-
#define DEFAULT_MIN_WAL_SEGS 5
|
92
|
-
#define DEFAULT_MAX_WAL_SEGS 64
|
93
|
-
|
94
|
-
/* check that the given size is a valid wal_segment_size */
|
95
|
-
#define IsPowerOf2(x) (x > 0 && ((x) & ((x)-1)) == 0)
|
96
|
-
#define IsValidWalSegSize(size) \
|
97
|
-
(IsPowerOf2(size) && \
|
98
|
-
((size) >= WalSegMinSize && (size) <= WalSegMaxSize))
|
99
|
-
|
100
|
-
#define XLogSegmentsPerXLogId(wal_segsz_bytes) \
|
101
|
-
(UINT64CONST(0x100000000) / (wal_segsz_bytes))
|
102
|
-
|
103
|
-
#define XLogSegNoOffsetToRecPtr(segno, offset, wal_segsz_bytes, dest) \
|
104
|
-
(dest) = (segno) * (wal_segsz_bytes) + (offset)
|
105
|
-
|
106
|
-
#define XLogSegmentOffset(xlogptr, wal_segsz_bytes) \
|
107
|
-
((xlogptr) & ((wal_segsz_bytes) - 1))
|
108
|
-
|
109
|
-
/*
|
110
|
-
* Compute a segment number from an XLogRecPtr.
|
111
|
-
*
|
112
|
-
* For XLByteToSeg, do the computation at face value. For XLByteToPrevSeg,
|
113
|
-
* a boundary byte is taken to be in the previous segment. This is suitable
|
114
|
-
* for deciding which segment to write given a pointer to a record end,
|
115
|
-
* for example.
|
116
|
-
*/
|
117
|
-
#define XLByteToSeg(xlrp, logSegNo, wal_segsz_bytes) \
|
118
|
-
logSegNo = (xlrp) / (wal_segsz_bytes)
|
119
|
-
|
120
|
-
#define XLByteToPrevSeg(xlrp, logSegNo, wal_segsz_bytes) \
|
121
|
-
logSegNo = ((xlrp) - 1) / (wal_segsz_bytes)
|
122
|
-
|
123
|
-
/*
|
124
|
-
* Convert values of GUCs measured in megabytes to equiv. segment count.
|
125
|
-
* Rounds down.
|
126
|
-
*/
|
127
|
-
#define XLogMBVarToSegs(mbvar, wal_segsz_bytes) \
|
128
|
-
((mbvar) / ((wal_segsz_bytes) / (1024 * 1024)))
|
129
|
-
|
130
|
-
/*
|
131
|
-
* Is an XLogRecPtr within a particular XLOG segment?
|
132
|
-
*
|
133
|
-
* For XLByteInSeg, do the computation at face value. For XLByteInPrevSeg,
|
134
|
-
* a boundary byte is taken to be in the previous segment.
|
135
|
-
*/
|
136
|
-
#define XLByteInSeg(xlrp, logSegNo, wal_segsz_bytes) \
|
137
|
-
(((xlrp) / (wal_segsz_bytes)) == (logSegNo))
|
138
|
-
|
139
|
-
#define XLByteInPrevSeg(xlrp, logSegNo, wal_segsz_bytes) \
|
140
|
-
((((xlrp) - 1) / (wal_segsz_bytes)) == (logSegNo))
|
141
|
-
|
142
|
-
/* Check if an XLogRecPtr value is in a plausible range */
|
143
|
-
#define XRecOffIsValid(xlrp) \
|
144
|
-
((xlrp) % XLOG_BLCKSZ >= SizeOfXLogShortPHD)
|
145
|
-
|
146
|
-
/*
|
147
|
-
* The XLog directory and control file (relative to $PGDATA)
|
148
|
-
*/
|
149
|
-
#define XLOGDIR "pg_wal"
|
150
|
-
#define XLOG_CONTROL_FILE "global/pg_control"
|
151
|
-
|
152
|
-
/*
|
153
|
-
* These macros encapsulate knowledge about the exact layout of XLog file
|
154
|
-
* names, timeline history file names, and archive-status file names.
|
155
|
-
*/
|
156
|
-
#define MAXFNAMELEN 64
|
157
|
-
|
158
|
-
/* Length of XLog file name */
|
159
|
-
#define XLOG_FNAME_LEN 24
|
160
|
-
|
161
|
-
/*
|
162
|
-
* Generate a WAL segment file name. Do not use this macro in a helper
|
163
|
-
* function allocating the result generated.
|
164
|
-
*/
|
165
|
-
#define XLogFileName(fname, tli, logSegNo, wal_segsz_bytes) \
|
166
|
-
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X", tli, \
|
167
|
-
(uint32) ((logSegNo) / XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
168
|
-
(uint32) ((logSegNo) % XLogSegmentsPerXLogId(wal_segsz_bytes)))
|
169
|
-
|
170
|
-
#define XLogFileNameById(fname, tli, log, seg) \
|
171
|
-
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X", tli, log, seg)
|
172
|
-
|
173
|
-
#define IsXLogFileName(fname) \
|
174
|
-
(strlen(fname) == XLOG_FNAME_LEN && \
|
175
|
-
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN)
|
176
|
-
|
177
|
-
/*
|
178
|
-
* XLOG segment with .partial suffix. Used by pg_receivewal and at end of
|
179
|
-
* archive recovery, when we want to archive a WAL segment but it might not
|
180
|
-
* be complete yet.
|
181
|
-
*/
|
182
|
-
#define IsPartialXLogFileName(fname) \
|
183
|
-
(strlen(fname) == XLOG_FNAME_LEN + strlen(".partial") && \
|
184
|
-
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN && \
|
185
|
-
strcmp((fname) + XLOG_FNAME_LEN, ".partial") == 0)
|
186
|
-
|
187
|
-
#define XLogFromFileName(fname, tli, logSegNo, wal_segsz_bytes) \
|
188
|
-
do { \
|
189
|
-
uint32 log; \
|
190
|
-
uint32 seg; \
|
191
|
-
sscanf(fname, "%08X%08X%08X", tli, &log, &seg); \
|
192
|
-
*logSegNo = (uint64) log * XLogSegmentsPerXLogId(wal_segsz_bytes) + seg; \
|
193
|
-
} while (0)
|
194
|
-
|
195
|
-
#define XLogFilePath(path, tli, logSegNo, wal_segsz_bytes) \
|
196
|
-
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X", tli, \
|
197
|
-
(uint32) ((logSegNo) / XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
198
|
-
(uint32) ((logSegNo) % XLogSegmentsPerXLogId(wal_segsz_bytes)))
|
199
|
-
|
200
|
-
#define TLHistoryFileName(fname, tli) \
|
201
|
-
snprintf(fname, MAXFNAMELEN, "%08X.history", tli)
|
202
|
-
|
203
|
-
#define IsTLHistoryFileName(fname) \
|
204
|
-
(strlen(fname) == 8 + strlen(".history") && \
|
205
|
-
strspn(fname, "0123456789ABCDEF") == 8 && \
|
206
|
-
strcmp((fname) + 8, ".history") == 0)
|
207
|
-
|
208
|
-
#define TLHistoryFilePath(path, tli) \
|
209
|
-
snprintf(path, MAXPGPATH, XLOGDIR "/%08X.history", tli)
|
210
|
-
|
211
|
-
#define StatusFilePath(path, xlog, suffix) \
|
212
|
-
snprintf(path, MAXPGPATH, XLOGDIR "/archive_status/%s%s", xlog, suffix)
|
213
|
-
|
214
|
-
#define BackupHistoryFileName(fname, tli, logSegNo, startpoint, wal_segsz_bytes) \
|
215
|
-
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X.%08X.backup", tli, \
|
216
|
-
(uint32) ((logSegNo) / XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
217
|
-
(uint32) ((logSegNo) % XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
218
|
-
(uint32) (XLogSegmentOffset(startpoint, wal_segsz_bytes)))
|
219
|
-
|
220
|
-
#define IsBackupHistoryFileName(fname) \
|
221
|
-
(strlen(fname) > XLOG_FNAME_LEN && \
|
222
|
-
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN && \
|
223
|
-
strcmp((fname) + strlen(fname) - strlen(".backup"), ".backup") == 0)
|
224
|
-
|
225
|
-
#define BackupHistoryFilePath(path, tli, logSegNo, startpoint, wal_segsz_bytes) \
|
226
|
-
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X.%08X.backup", tli, \
|
227
|
-
(uint32) ((logSegNo) / XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
228
|
-
(uint32) ((logSegNo) % XLogSegmentsPerXLogId(wal_segsz_bytes)), \
|
229
|
-
(uint32) (XLogSegmentOffset((startpoint), wal_segsz_bytes)))
|
230
|
-
|
231
|
-
/*
|
232
|
-
* Information logged when we detect a change in one of the parameters
|
233
|
-
* important for Hot Standby.
|
234
|
-
*/
|
235
|
-
typedef struct xl_parameter_change
|
236
|
-
{
|
237
|
-
int MaxConnections;
|
238
|
-
int max_worker_processes;
|
239
|
-
int max_wal_senders;
|
240
|
-
int max_prepared_xacts;
|
241
|
-
int max_locks_per_xact;
|
242
|
-
int wal_level;
|
243
|
-
bool wal_log_hints;
|
244
|
-
bool track_commit_timestamp;
|
245
|
-
} xl_parameter_change;
|
246
|
-
|
247
|
-
/* logs restore point */
|
248
|
-
typedef struct xl_restore_point
|
249
|
-
{
|
250
|
-
TimestampTz rp_time;
|
251
|
-
char rp_name[MAXFNAMELEN];
|
252
|
-
} xl_restore_point;
|
253
|
-
|
254
|
-
/* Overwrite of prior contrecord */
|
255
|
-
typedef struct xl_overwrite_contrecord
|
256
|
-
{
|
257
|
-
XLogRecPtr overwritten_lsn;
|
258
|
-
TimestampTz overwrite_time;
|
259
|
-
} xl_overwrite_contrecord;
|
260
|
-
|
261
|
-
/* End of recovery mark, when we don't do an END_OF_RECOVERY checkpoint */
|
262
|
-
typedef struct xl_end_of_recovery
|
263
|
-
{
|
264
|
-
TimestampTz end_time;
|
265
|
-
TimeLineID ThisTimeLineID; /* new TLI */
|
266
|
-
TimeLineID PrevTimeLineID; /* previous TLI we forked off from */
|
267
|
-
} xl_end_of_recovery;
|
268
|
-
|
269
|
-
/*
|
270
|
-
* The functions in xloginsert.c construct a chain of XLogRecData structs
|
271
|
-
* to represent the final WAL record.
|
272
|
-
*/
|
273
|
-
typedef struct XLogRecData
|
274
|
-
{
|
275
|
-
struct XLogRecData *next; /* next struct in chain, or NULL */
|
276
|
-
char *data; /* start of rmgr data to include */
|
277
|
-
uint32 len; /* length of rmgr data to include */
|
278
|
-
} XLogRecData;
|
279
|
-
|
280
|
-
/*
|
281
|
-
* Recovery target action.
|
282
|
-
*/
|
283
|
-
typedef enum
|
284
|
-
{
|
285
|
-
RECOVERY_TARGET_ACTION_PAUSE,
|
286
|
-
RECOVERY_TARGET_ACTION_PROMOTE,
|
287
|
-
RECOVERY_TARGET_ACTION_SHUTDOWN
|
288
|
-
} RecoveryTargetAction;
|
289
|
-
|
290
|
-
struct LogicalDecodingContext;
|
291
|
-
struct XLogRecordBuffer;
|
292
|
-
|
293
|
-
/*
|
294
|
-
* Method table for resource managers.
|
295
|
-
*
|
296
|
-
* This struct must be kept in sync with the PG_RMGR definition in
|
297
|
-
* rmgr.c.
|
298
|
-
*
|
299
|
-
* rm_identify must return a name for the record based on xl_info (without
|
300
|
-
* reference to the rmid). For example, XLOG_BTREE_VACUUM would be named
|
301
|
-
* "VACUUM". rm_desc can then be called to obtain additional detail for the
|
302
|
-
* record, if available (e.g. the last block).
|
303
|
-
*
|
304
|
-
* rm_mask takes as input a page modified by the resource manager and masks
|
305
|
-
* out bits that shouldn't be flagged by wal_consistency_checking.
|
306
|
-
*
|
307
|
-
* RmgrTable[] is indexed by RmgrId values (see rmgrlist.h). If rm_name is
|
308
|
-
* NULL, the corresponding RmgrTable entry is considered invalid.
|
309
|
-
*/
|
310
|
-
typedef struct RmgrData
|
311
|
-
{
|
312
|
-
const char *rm_name;
|
313
|
-
void (*rm_redo) (XLogReaderState *record);
|
314
|
-
void (*rm_desc) (StringInfo buf, XLogReaderState *record);
|
315
|
-
const char *(*rm_identify) (uint8 info);
|
316
|
-
void (*rm_startup) (void);
|
317
|
-
void (*rm_cleanup) (void);
|
318
|
-
void (*rm_mask) (char *pagedata, BlockNumber blkno);
|
319
|
-
void (*rm_decode) (struct LogicalDecodingContext *ctx,
|
320
|
-
struct XLogRecordBuffer *buf);
|
321
|
-
} RmgrData;
|
322
|
-
|
323
|
-
extern PGDLLIMPORT RmgrData RmgrTable[];
|
324
|
-
extern void RmgrStartup(void);
|
325
|
-
extern void RmgrCleanup(void);
|
326
|
-
extern void RmgrNotFound(RmgrId rmid);
|
327
|
-
extern void RegisterCustomRmgr(RmgrId rmid, RmgrData *rmgr);
|
328
|
-
|
329
|
-
#ifndef FRONTEND
|
330
|
-
static inline bool
|
331
|
-
RmgrIdExists(RmgrId rmid)
|
332
|
-
{
|
333
|
-
return RmgrTable[rmid].rm_name != NULL;
|
334
|
-
}
|
335
|
-
|
336
|
-
static inline RmgrData
|
337
|
-
GetRmgr(RmgrId rmid)
|
338
|
-
{
|
339
|
-
if (unlikely(!RmgrIdExists(rmid)))
|
340
|
-
RmgrNotFound(rmid);
|
341
|
-
return RmgrTable[rmid];
|
342
|
-
}
|
343
|
-
#endif
|
344
|
-
|
345
|
-
/*
|
346
|
-
* Exported to support xlog switching from checkpointer
|
347
|
-
*/
|
348
|
-
extern pg_time_t GetLastSegSwitchData(XLogRecPtr *lastSwitchLSN);
|
349
|
-
extern XLogRecPtr RequestXLogSwitch(bool mark_unimportant);
|
350
|
-
|
351
|
-
extern void GetOldestRestartPoint(XLogRecPtr *oldrecptr, TimeLineID *oldtli);
|
352
|
-
|
353
|
-
extern void XLogRecGetBlockRefInfo(XLogReaderState *record, bool pretty,
|
354
|
-
bool detailed_format, StringInfo buf,
|
355
|
-
uint32 *fpi_len);
|
356
|
-
|
357
|
-
/*
|
358
|
-
* Exported for the functions in timeline.c and xlogarchive.c. Only valid
|
359
|
-
* in the startup process.
|
360
|
-
*/
|
361
|
-
extern PGDLLIMPORT bool ArchiveRecoveryRequested;
|
362
|
-
extern PGDLLIMPORT bool InArchiveRecovery;
|
363
|
-
extern PGDLLIMPORT bool StandbyMode;
|
364
|
-
extern PGDLLIMPORT char *recoveryRestoreCommand;
|
365
|
-
|
366
|
-
#endif /* XLOG_INTERNAL_H */
|