pg_query 2.0.3 → 5.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 +165 -0
- data/README.md +67 -29
- data/Rakefile +8 -23
- data/ext/pg_query/extconf.rb +21 -3
- data/ext/pg_query/include/pg_query.h +29 -4
- data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
- data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
- data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
- data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
- data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
- data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
- data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
- data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
- data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
- data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
- data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
- data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
- data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
- data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
- data/ext/pg_query/include/postgres/common/int.h +437 -0
- data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
- 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 +125 -0
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
- data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
- data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
- data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
- data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
- data/ext/pg_query/include/postgres/gram.h +1127 -0
- data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
- data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
- data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
- 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/{mb → postgres/mb}/pg_wchar.h +125 -25
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
- data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
- data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
- data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
- data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/postgres/pgstat.h +778 -0
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
- data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
- data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
- data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
- data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
- data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
- data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
- data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
- data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
- data/ext/pg_query/include/postgres/port/simd.h +375 -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 +26 -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 +594 -0
- data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
- 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_ext.h → postgres/postgres_ext.h} +0 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
- data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
- data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
- data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
- data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
- data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
- data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
- data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
- data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
- data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
- data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
- data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
- data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
- data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
- data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
- data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
- data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
- data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
- data/ext/pg_query/include/protobuf-c.h +7 -3
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +21026 -17002
- data/ext/pg_query/pg_query_deparse.c +1 -9896
- data/ext/pg_query/pg_query_fingerprint.c +162 -50
- data/ext/pg_query/pg_query_fingerprint.h +3 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
- data/ext/pg_query/pg_query_normalize.c +259 -64
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
- data/ext/pg_query/pg_query_ruby.c +6 -1
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +3 -2
- data/ext/pg_query/pg_query_split.c +6 -5
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/protobuf-c.c +34 -27
- data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
- data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
- data/ext/pg_query/src_backend_commands_define.c +11 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +99 -12
- data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +28 -19
- data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
- data/ext/pg_query/src_backend_parser_parser.c +53 -8
- data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
- data/ext/pg_query/src_backend_parser_scansup.c +4 -28
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
- data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
- data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
- data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
- data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
- data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
- data/ext/pg_query/src_common_encnames.c +4 -1
- data/ext/pg_query/src_common_hashfn.c +420 -0
- data/ext/pg_query/src_common_keywords.c +15 -2
- data/ext/pg_query/src_common_kwlist_d.h +545 -498
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +1 -1
- data/ext/pg_query/src_common_stringinfo.c +4 -4
- data/ext/pg_query/src_common_wchar.c +717 -113
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
- data/ext/pg_query/src_port_pg_bitutils.c +103 -40
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_qsort.c +12 -224
- data/ext/pg_query/src_port_snprintf.c +51 -29
- data/ext/pg_query/src_port_strerror.c +9 -19
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/filter_columns.rb +7 -5
- data/lib/pg_query/fingerprint.rb +21 -9
- data/lib/pg_query/node.rb +18 -13
- data/lib/pg_query/param_refs.rb +1 -1
- data/lib/pg_query/parse.rb +141 -50
- data/lib/pg_query/pg_query_pb.rb +175 -3031
- data/lib/pg_query/treewalker.rb +26 -2
- data/lib/pg_query/truncate.rb +54 -8
- data/lib/pg_query/version.rb +1 -1
- data/lib/pg_query.rb +0 -1
- metadata +443 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/rmgr.h +0 -35
- data/ext/pg_query/include/access/xloginsert.h +0 -64
- data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
- data/ext/pg_query/include/catalog/genbki.h +0 -64
- data/ext/pg_query/include/catalog/indexing.h +0 -366
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -37
- data/ext/pg_query/include/common/string.h +0 -19
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1072
- data/ext/pg_query/include/nodes/value.h +0 -61
- data/ext/pg_query/include/parser/gram.h +0 -1067
- data/ext/pg_query/include/parser/kwlist.h +0 -477
- data/ext/pg_query/include/parser/parse_clause.h +0 -54
- data/ext/pg_query/include/parser/parse_collate.h +0 -27
- data/ext/pg_query/include/parser/parse_target.h +0 -46
- data/ext/pg_query/include/parser/parser.h +0 -41
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pgstat.h +0 -1487
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/replication/logicalproto.h +0 -110
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -19
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/regproc.h +0 -28
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
- data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
- data/ext/pg_query/src_common_string.c +0 -86
- data/ext/pg_query/src_port_erand48.c +0 -127
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_random.c +0 -31
- data/ext/pg_query/src_port_strnlen.c +0 -39
- data/lib/pg_query/json_field_names.rb +0 -1402
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* Note: This file must be includable in both frontend and backend contexts,
|
|
12
12
|
* to allow stand-alone tools like pg_receivewal to deal with WAL files.
|
|
13
13
|
*
|
|
14
|
-
* Portions Copyright (c) 1996-
|
|
14
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
15
15
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
16
16
|
*
|
|
17
17
|
* src/include/access/xlog_internal.h
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
#include "lib/stringinfo.h"
|
|
26
26
|
#include "pgtime.h"
|
|
27
27
|
#include "storage/block.h"
|
|
28
|
-
#include "storage/
|
|
28
|
+
#include "storage/relfilelocator.h"
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
/*
|
|
32
32
|
* Each page of XLOG file has a header like this:
|
|
33
33
|
*/
|
|
34
|
-
#define XLOG_PAGE_MAGIC
|
|
34
|
+
#define XLOG_PAGE_MAGIC 0xD113 /* can be used as WAL version indicator */
|
|
35
35
|
|
|
36
36
|
typedef struct XLogPageHeaderData
|
|
37
37
|
{
|
|
@@ -43,11 +43,8 @@ typedef struct XLogPageHeaderData
|
|
|
43
43
|
/*
|
|
44
44
|
* When there is not enough space on current page for whole record, we
|
|
45
45
|
* continue on the next page. xlp_rem_len is the number of bytes
|
|
46
|
-
* remaining from a previous page
|
|
47
|
-
*
|
|
48
|
-
* Note that xlp_rem_len includes backup-block data; that is, it tracks
|
|
49
|
-
* xl_tot_len not xl_len in the initial header. Also note that the
|
|
50
|
-
* continuation data isn't necessarily aligned.
|
|
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.
|
|
51
48
|
*/
|
|
52
49
|
uint32 xlp_rem_len; /* total len of remaining data for record */
|
|
53
50
|
} XLogPageHeaderData;
|
|
@@ -79,8 +76,10 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
|
|
|
79
76
|
#define XLP_LONG_HEADER 0x0002
|
|
80
77
|
/* This flag indicates backup blocks starting in this page are optional */
|
|
81
78
|
#define XLP_BKP_REMOVABLE 0x0004
|
|
79
|
+
/* Replaces a missing contrecord; see CreateOverwriteContrecordRecord */
|
|
80
|
+
#define XLP_FIRST_IS_OVERWRITE_CONTRECORD 0x0008
|
|
82
81
|
/* All defined flag bits in xlp_info (used for validity checking of header) */
|
|
83
|
-
#define XLP_ALL_FLAGS
|
|
82
|
+
#define XLP_ALL_FLAGS 0x000F
|
|
84
83
|
|
|
85
84
|
#define XLogPageHeaderSize(hdr) \
|
|
86
85
|
(((hdr)->xlp_info & XLP_LONG_HEADER) ? SizeOfXLogLongPHD : SizeOfXLogShortPHD)
|
|
@@ -160,74 +159,112 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
|
|
|
160
159
|
#define XLOG_FNAME_LEN 24
|
|
161
160
|
|
|
162
161
|
/*
|
|
163
|
-
* Generate a WAL segment file name. Do not use this
|
|
162
|
+
* Generate a WAL segment file name. Do not use this function in a helper
|
|
164
163
|
* function allocating the result generated.
|
|
165
164
|
*/
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
static inline void
|
|
166
|
+
XLogFileName(char *fname, TimeLineID tli, XLogSegNo logSegNo, int wal_segsz_bytes)
|
|
167
|
+
{
|
|
168
|
+
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X", tli,
|
|
169
|
+
(uint32) (logSegNo / XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
170
|
+
(uint32) (logSegNo % XLogSegmentsPerXLogId(wal_segsz_bytes)));
|
|
171
|
+
}
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
static inline void
|
|
174
|
+
XLogFileNameById(char *fname, TimeLineID tli, uint32 log, uint32 seg)
|
|
175
|
+
{
|
|
176
|
+
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X", tli, log, seg);
|
|
177
|
+
}
|
|
173
178
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
179
|
+
static inline bool
|
|
180
|
+
IsXLogFileName(const char *fname)
|
|
181
|
+
{
|
|
182
|
+
return (strlen(fname) == XLOG_FNAME_LEN && \
|
|
183
|
+
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN);
|
|
184
|
+
}
|
|
177
185
|
|
|
178
186
|
/*
|
|
179
187
|
* XLOG segment with .partial suffix. Used by pg_receivewal and at end of
|
|
180
188
|
* archive recovery, when we want to archive a WAL segment but it might not
|
|
181
189
|
* be complete yet.
|
|
182
190
|
*/
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
191
|
+
static inline bool
|
|
192
|
+
IsPartialXLogFileName(const char *fname)
|
|
193
|
+
{
|
|
194
|
+
return (strlen(fname) == XLOG_FNAME_LEN + strlen(".partial") &&
|
|
195
|
+
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN &&
|
|
196
|
+
strcmp(fname + XLOG_FNAME_LEN, ".partial") == 0);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
static inline void
|
|
200
|
+
XLogFromFileName(const char *fname, TimeLineID *tli, XLogSegNo *logSegNo, int wal_segsz_bytes)
|
|
201
|
+
{
|
|
202
|
+
uint32 log;
|
|
203
|
+
uint32 seg;
|
|
204
|
+
|
|
205
|
+
sscanf(fname, "%08X%08X%08X", tli, &log, &seg);
|
|
206
|
+
*logSegNo = (uint64) log * XLogSegmentsPerXLogId(wal_segsz_bytes) + seg;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
static inline void
|
|
210
|
+
XLogFilePath(char *path, TimeLineID tli, XLogSegNo logSegNo, int wal_segsz_bytes)
|
|
211
|
+
{
|
|
212
|
+
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X", tli,
|
|
213
|
+
(uint32) (logSegNo / XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
214
|
+
(uint32) (logSegNo % XLogSegmentsPerXLogId(wal_segsz_bytes)));
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
static inline void
|
|
218
|
+
TLHistoryFileName(char *fname, TimeLineID tli)
|
|
219
|
+
{
|
|
220
|
+
snprintf(fname, MAXFNAMELEN, "%08X.history", tli);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
static inline bool
|
|
224
|
+
IsTLHistoryFileName(const char *fname)
|
|
225
|
+
{
|
|
226
|
+
return (strlen(fname) == 8 + strlen(".history") &&
|
|
227
|
+
strspn(fname, "0123456789ABCDEF") == 8 &&
|
|
228
|
+
strcmp(fname + 8, ".history") == 0);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
static inline void
|
|
232
|
+
TLHistoryFilePath(char *path, TimeLineID tli)
|
|
233
|
+
{
|
|
234
|
+
snprintf(path, MAXPGPATH, XLOGDIR "/%08X.history", tli);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static inline void
|
|
238
|
+
StatusFilePath(char *path, const char *xlog, const char *suffix)
|
|
239
|
+
{
|
|
240
|
+
snprintf(path, MAXPGPATH, XLOGDIR "/archive_status/%s%s", xlog, suffix);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
static inline void
|
|
244
|
+
BackupHistoryFileName(char *fname, TimeLineID tli, XLogSegNo logSegNo, XLogRecPtr startpoint, int wal_segsz_bytes)
|
|
245
|
+
{
|
|
246
|
+
snprintf(fname, MAXFNAMELEN, "%08X%08X%08X.%08X.backup", tli,
|
|
247
|
+
(uint32) (logSegNo / XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
248
|
+
(uint32) (logSegNo % XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
249
|
+
(uint32) (XLogSegmentOffset(startpoint, wal_segsz_bytes)));
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
static inline bool
|
|
253
|
+
IsBackupHistoryFileName(const char *fname)
|
|
254
|
+
{
|
|
255
|
+
return (strlen(fname) > XLOG_FNAME_LEN &&
|
|
256
|
+
strspn(fname, "0123456789ABCDEF") == XLOG_FNAME_LEN &&
|
|
257
|
+
strcmp(fname + strlen(fname) - strlen(".backup"), ".backup") == 0);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
static inline void
|
|
261
|
+
BackupHistoryFilePath(char *path, TimeLineID tli, XLogSegNo logSegNo, XLogRecPtr startpoint, int wal_segsz_bytes)
|
|
262
|
+
{
|
|
263
|
+
snprintf(path, MAXPGPATH, XLOGDIR "/%08X%08X%08X.%08X.backup", tli,
|
|
264
|
+
(uint32) (logSegNo / XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
265
|
+
(uint32) (logSegNo % XLogSegmentsPerXLogId(wal_segsz_bytes)),
|
|
266
|
+
(uint32) (XLogSegmentOffset((startpoint), wal_segsz_bytes)));
|
|
267
|
+
}
|
|
231
268
|
|
|
232
269
|
/*
|
|
233
270
|
* Information logged when we detect a change in one of the parameters
|
|
@@ -252,6 +289,13 @@ typedef struct xl_restore_point
|
|
|
252
289
|
char rp_name[MAXFNAMELEN];
|
|
253
290
|
} xl_restore_point;
|
|
254
291
|
|
|
292
|
+
/* Overwrite of prior contrecord */
|
|
293
|
+
typedef struct xl_overwrite_contrecord
|
|
294
|
+
{
|
|
295
|
+
XLogRecPtr overwritten_lsn;
|
|
296
|
+
TimestampTz overwrite_time;
|
|
297
|
+
} xl_overwrite_contrecord;
|
|
298
|
+
|
|
255
299
|
/* End of recovery mark, when we don't do an END_OF_RECOVERY checkpoint */
|
|
256
300
|
typedef struct xl_end_of_recovery
|
|
257
301
|
{
|
|
@@ -281,6 +325,9 @@ typedef enum
|
|
|
281
325
|
RECOVERY_TARGET_ACTION_SHUTDOWN
|
|
282
326
|
} RecoveryTargetAction;
|
|
283
327
|
|
|
328
|
+
struct LogicalDecodingContext;
|
|
329
|
+
struct XLogRecordBuffer;
|
|
330
|
+
|
|
284
331
|
/*
|
|
285
332
|
* Method table for resource managers.
|
|
286
333
|
*
|
|
@@ -295,7 +342,8 @@ typedef enum
|
|
|
295
342
|
* rm_mask takes as input a page modified by the resource manager and masks
|
|
296
343
|
* out bits that shouldn't be flagged by wal_consistency_checking.
|
|
297
344
|
*
|
|
298
|
-
* RmgrTable[] is indexed by RmgrId values (see rmgrlist.h).
|
|
345
|
+
* RmgrTable[] is indexed by RmgrId values (see rmgrlist.h). If rm_name is
|
|
346
|
+
* NULL, the corresponding RmgrTable entry is considered invalid.
|
|
299
347
|
*/
|
|
300
348
|
typedef struct RmgrData
|
|
301
349
|
{
|
|
@@ -306,9 +354,31 @@ typedef struct RmgrData
|
|
|
306
354
|
void (*rm_startup) (void);
|
|
307
355
|
void (*rm_cleanup) (void);
|
|
308
356
|
void (*rm_mask) (char *pagedata, BlockNumber blkno);
|
|
357
|
+
void (*rm_decode) (struct LogicalDecodingContext *ctx,
|
|
358
|
+
struct XLogRecordBuffer *buf);
|
|
309
359
|
} RmgrData;
|
|
310
360
|
|
|
311
|
-
extern
|
|
361
|
+
extern PGDLLIMPORT RmgrData RmgrTable[];
|
|
362
|
+
extern void RmgrStartup(void);
|
|
363
|
+
extern void RmgrCleanup(void);
|
|
364
|
+
extern void RmgrNotFound(RmgrId rmid);
|
|
365
|
+
extern void RegisterCustomRmgr(RmgrId rmid, const RmgrData *rmgr);
|
|
366
|
+
|
|
367
|
+
#ifndef FRONTEND
|
|
368
|
+
static inline bool
|
|
369
|
+
RmgrIdExists(RmgrId rmid)
|
|
370
|
+
{
|
|
371
|
+
return RmgrTable[rmid].rm_name != NULL;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
static inline RmgrData
|
|
375
|
+
GetRmgr(RmgrId rmid)
|
|
376
|
+
{
|
|
377
|
+
if (unlikely(!RmgrIdExists(rmid)))
|
|
378
|
+
RmgrNotFound(rmid);
|
|
379
|
+
return RmgrTable[rmid];
|
|
380
|
+
}
|
|
381
|
+
#endif
|
|
312
382
|
|
|
313
383
|
/*
|
|
314
384
|
* Exported to support xlog switching from checkpointer
|
|
@@ -318,13 +388,17 @@ extern XLogRecPtr RequestXLogSwitch(bool mark_unimportant);
|
|
|
318
388
|
|
|
319
389
|
extern void GetOldestRestartPoint(XLogRecPtr *oldrecptr, TimeLineID *oldtli);
|
|
320
390
|
|
|
391
|
+
extern void XLogRecGetBlockRefInfo(XLogReaderState *record, bool pretty,
|
|
392
|
+
bool detailed_format, StringInfo buf,
|
|
393
|
+
uint32 *fpi_len);
|
|
394
|
+
|
|
321
395
|
/*
|
|
322
396
|
* Exported for the functions in timeline.c and xlogarchive.c. Only valid
|
|
323
397
|
* in the startup process.
|
|
324
398
|
*/
|
|
325
|
-
extern bool ArchiveRecoveryRequested;
|
|
326
|
-
extern bool InArchiveRecovery;
|
|
327
|
-
extern bool StandbyMode;
|
|
328
|
-
extern char *recoveryRestoreCommand;
|
|
399
|
+
extern PGDLLIMPORT bool ArchiveRecoveryRequested;
|
|
400
|
+
extern PGDLLIMPORT bool InArchiveRecovery;
|
|
401
|
+
extern PGDLLIMPORT bool StandbyMode;
|
|
402
|
+
extern PGDLLIMPORT char *recoveryRestoreCommand;
|
|
329
403
|
|
|
330
404
|
#endif /* XLOG_INTERNAL_H */
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* xlogbackup.h
|
|
4
|
+
* Definitions for internals of base backups.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* IDENTIFICATION
|
|
10
|
+
* src/include/access/xlogbackup.h
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#ifndef XLOG_BACKUP_H
|
|
15
|
+
#define XLOG_BACKUP_H
|
|
16
|
+
|
|
17
|
+
#include "access/xlogdefs.h"
|
|
18
|
+
#include "pgtime.h"
|
|
19
|
+
|
|
20
|
+
/* Structure to hold backup state. */
|
|
21
|
+
typedef struct BackupState
|
|
22
|
+
{
|
|
23
|
+
/* Fields saved at backup start */
|
|
24
|
+
/* Backup label name one extra byte for null-termination */
|
|
25
|
+
char name[MAXPGPATH + 1];
|
|
26
|
+
XLogRecPtr startpoint; /* backup start WAL location */
|
|
27
|
+
TimeLineID starttli; /* backup start TLI */
|
|
28
|
+
XLogRecPtr checkpointloc; /* last checkpoint location */
|
|
29
|
+
pg_time_t starttime; /* backup start time */
|
|
30
|
+
bool started_in_recovery; /* backup started in recovery? */
|
|
31
|
+
|
|
32
|
+
/* Fields saved at the end of backup */
|
|
33
|
+
XLogRecPtr stoppoint; /* backup stop WAL location */
|
|
34
|
+
TimeLineID stoptli; /* backup stop TLI */
|
|
35
|
+
pg_time_t stoptime; /* backup stop time */
|
|
36
|
+
} BackupState;
|
|
37
|
+
|
|
38
|
+
extern char *build_backup_content(BackupState *state,
|
|
39
|
+
bool ishistoryfile);
|
|
40
|
+
|
|
41
|
+
#endif /* XLOG_BACKUP_H */
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Postgres write-ahead log manager record pointer and
|
|
5
5
|
* timeline number definitions
|
|
6
6
|
*
|
|
7
|
-
* Portions Copyright (c) 1996-
|
|
7
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
8
8
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
9
9
|
*
|
|
10
10
|
* src/include/access/xlogdefs.h
|
|
@@ -35,6 +35,13 @@ typedef uint64 XLogRecPtr;
|
|
|
35
35
|
*/
|
|
36
36
|
#define FirstNormalUnloggedLSN ((XLogRecPtr) 1000)
|
|
37
37
|
|
|
38
|
+
/*
|
|
39
|
+
* Handy macro for printing XLogRecPtr in conventional format, e.g.,
|
|
40
|
+
*
|
|
41
|
+
* printf("%X/%X", LSN_FORMAT_ARGS(lsn));
|
|
42
|
+
*/
|
|
43
|
+
#define LSN_FORMAT_ARGS(lsn) (AssertVariableIsOfTypeMacro((lsn), XLogRecPtr), (uint32) ((lsn) >> 32)), ((uint32) (lsn))
|
|
44
|
+
|
|
38
45
|
/*
|
|
39
46
|
* XLogSegNo - physical log file sequence number.
|
|
40
47
|
*/
|
|
@@ -57,53 +64,19 @@ typedef uint32 TimeLineID;
|
|
|
57
64
|
*/
|
|
58
65
|
typedef uint16 RepOriginId;
|
|
59
66
|
|
|
60
|
-
/*
|
|
61
|
-
* Because O_DIRECT bypasses the kernel buffers, and because we never
|
|
62
|
-
* read those buffers except during crash recovery or if wal_level != minimal,
|
|
63
|
-
* it is a win to use it in all cases where we sync on each write(). We could
|
|
64
|
-
* allow O_DIRECT with fsync(), but it is unclear if fsync() could process
|
|
65
|
-
* writes not buffered in the kernel. Also, O_DIRECT is never enough to force
|
|
66
|
-
* data to the drives, it merely tries to bypass the kernel cache, so we still
|
|
67
|
-
* need O_SYNC/O_DSYNC.
|
|
68
|
-
*/
|
|
69
|
-
#ifdef O_DIRECT
|
|
70
|
-
#define PG_O_DIRECT O_DIRECT
|
|
71
|
-
#else
|
|
72
|
-
#define PG_O_DIRECT 0
|
|
73
|
-
#endif
|
|
74
|
-
|
|
75
67
|
/*
|
|
76
68
|
* This chunk of hackery attempts to determine which file sync methods
|
|
77
69
|
* are available on the current platform, and to choose an appropriate
|
|
78
|
-
* default method.
|
|
79
|
-
*
|
|
70
|
+
* default method.
|
|
71
|
+
*
|
|
72
|
+
* Note that we define our own O_DSYNC on Windows, but not O_SYNC.
|
|
80
73
|
*/
|
|
81
|
-
#if defined(O_SYNC)
|
|
82
|
-
#define OPEN_SYNC_FLAG O_SYNC
|
|
83
|
-
#elif defined(O_FSYNC)
|
|
84
|
-
#define OPEN_SYNC_FLAG O_FSYNC
|
|
85
|
-
#endif
|
|
86
|
-
|
|
87
|
-
#if defined(O_DSYNC)
|
|
88
|
-
#if defined(OPEN_SYNC_FLAG)
|
|
89
|
-
/* O_DSYNC is distinct? */
|
|
90
|
-
#if O_DSYNC != OPEN_SYNC_FLAG
|
|
91
|
-
#define OPEN_DATASYNC_FLAG O_DSYNC
|
|
92
|
-
#endif
|
|
93
|
-
#else /* !defined(OPEN_SYNC_FLAG) */
|
|
94
|
-
/* Win32 only has O_DSYNC */
|
|
95
|
-
#define OPEN_DATASYNC_FLAG O_DSYNC
|
|
96
|
-
#endif
|
|
97
|
-
#endif
|
|
98
|
-
|
|
99
74
|
#if defined(PLATFORM_DEFAULT_SYNC_METHOD)
|
|
100
75
|
#define DEFAULT_SYNC_METHOD PLATFORM_DEFAULT_SYNC_METHOD
|
|
101
|
-
#elif defined(
|
|
76
|
+
#elif defined(O_DSYNC) && (!defined(O_SYNC) || O_DSYNC != O_SYNC)
|
|
102
77
|
#define DEFAULT_SYNC_METHOD SYNC_METHOD_OPEN_DSYNC
|
|
103
|
-
#elif defined(HAVE_FDATASYNC)
|
|
104
|
-
#define DEFAULT_SYNC_METHOD SYNC_METHOD_FDATASYNC
|
|
105
78
|
#else
|
|
106
|
-
#define DEFAULT_SYNC_METHOD
|
|
79
|
+
#define DEFAULT_SYNC_METHOD SYNC_METHOD_FDATASYNC
|
|
107
80
|
#endif
|
|
108
81
|
|
|
109
82
|
#endif /* XLOG_DEFS_H */
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* xlogprefetcher.h
|
|
4
|
+
* Declarations for the recovery prefetching module.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 2022-2023, PostgreSQL Global Development Group
|
|
7
|
+
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
|
+
*
|
|
9
|
+
* IDENTIFICATION
|
|
10
|
+
* src/include/access/xlogprefetcher.h
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef XLOGPREFETCHER_H
|
|
14
|
+
#define XLOGPREFETCHER_H
|
|
15
|
+
|
|
16
|
+
#include "access/xlogdefs.h"
|
|
17
|
+
#include "access/xlogreader.h"
|
|
18
|
+
#include "access/xlogrecord.h"
|
|
19
|
+
|
|
20
|
+
/* GUCs */
|
|
21
|
+
extern PGDLLIMPORT int recovery_prefetch;
|
|
22
|
+
|
|
23
|
+
/* Possible values for recovery_prefetch */
|
|
24
|
+
typedef enum
|
|
25
|
+
{
|
|
26
|
+
RECOVERY_PREFETCH_OFF,
|
|
27
|
+
RECOVERY_PREFETCH_ON,
|
|
28
|
+
RECOVERY_PREFETCH_TRY
|
|
29
|
+
} RecoveryPrefetchValue;
|
|
30
|
+
|
|
31
|
+
struct XLogPrefetcher;
|
|
32
|
+
typedef struct XLogPrefetcher XLogPrefetcher;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
extern void XLogPrefetchReconfigure(void);
|
|
36
|
+
|
|
37
|
+
extern size_t XLogPrefetchShmemSize(void);
|
|
38
|
+
extern void XLogPrefetchShmemInit(void);
|
|
39
|
+
|
|
40
|
+
extern void XLogPrefetchResetStats(void);
|
|
41
|
+
|
|
42
|
+
extern XLogPrefetcher *XLogPrefetcherAllocate(XLogReaderState *reader);
|
|
43
|
+
extern void XLogPrefetcherFree(XLogPrefetcher *prefetcher);
|
|
44
|
+
|
|
45
|
+
extern XLogReaderState *XLogPrefetcherGetReader(XLogPrefetcher *prefetcher);
|
|
46
|
+
|
|
47
|
+
extern void XLogPrefetcherBeginRead(XLogPrefetcher *prefetcher,
|
|
48
|
+
XLogRecPtr recPtr);
|
|
49
|
+
|
|
50
|
+
extern XLogRecord *XLogPrefetcherReadRecord(XLogPrefetcher *prefetcher,
|
|
51
|
+
char **errmsg);
|
|
52
|
+
|
|
53
|
+
extern void XLogPrefetcherComputeStats(XLogPrefetcher *prefetcher);
|
|
54
|
+
|
|
55
|
+
#endif
|