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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* postgres transaction system definitions
|
|
5
5
|
*
|
|
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/xact.h
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
#include "access/transam.h"
|
|
18
18
|
#include "access/xlogreader.h"
|
|
19
|
+
#include "datatype/timestamp.h"
|
|
19
20
|
#include "lib/stringinfo.h"
|
|
20
21
|
#include "nodes/pg_list.h"
|
|
21
|
-
#include "storage/
|
|
22
|
+
#include "storage/relfilelocator.h"
|
|
22
23
|
#include "storage/sinval.h"
|
|
23
|
-
#include "utils/datetime.h"
|
|
24
24
|
|
|
25
25
|
/*
|
|
26
26
|
* Maximum size of Global Transaction ID (including '\0').
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
#define XACT_REPEATABLE_READ 2
|
|
39
39
|
#define XACT_SERIALIZABLE 3
|
|
40
40
|
|
|
41
|
-
extern int
|
|
41
|
+
extern PGDLLIMPORT int DefaultXactIsoLevel;
|
|
42
42
|
extern PGDLLIMPORT int XactIsoLevel;
|
|
43
43
|
|
|
44
44
|
/*
|
|
@@ -52,18 +52,18 @@ extern PGDLLIMPORT int XactIsoLevel;
|
|
|
52
52
|
#define IsolationIsSerializable() (XactIsoLevel == XACT_SERIALIZABLE)
|
|
53
53
|
|
|
54
54
|
/* Xact read-only state */
|
|
55
|
-
extern bool DefaultXactReadOnly;
|
|
56
|
-
extern bool XactReadOnly;
|
|
55
|
+
extern PGDLLIMPORT bool DefaultXactReadOnly;
|
|
56
|
+
extern PGDLLIMPORT bool XactReadOnly;
|
|
57
57
|
|
|
58
58
|
/* flag for logging statements in this transaction */
|
|
59
|
-
extern bool xact_is_sampled;
|
|
59
|
+
extern PGDLLIMPORT bool xact_is_sampled;
|
|
60
60
|
|
|
61
61
|
/*
|
|
62
62
|
* Xact is deferrable -- only meaningful (currently) for read only
|
|
63
63
|
* SERIALIZABLE transactions
|
|
64
64
|
*/
|
|
65
|
-
extern bool DefaultXactDeferrable;
|
|
66
|
-
extern bool XactDeferrable;
|
|
65
|
+
extern PGDLLIMPORT bool DefaultXactDeferrable;
|
|
66
|
+
extern PGDLLIMPORT bool XactDeferrable;
|
|
67
67
|
|
|
68
68
|
typedef enum
|
|
69
69
|
{
|
|
@@ -72,15 +72,19 @@ typedef enum
|
|
|
72
72
|
SYNCHRONOUS_COMMIT_REMOTE_WRITE, /* wait for local flush and remote
|
|
73
73
|
* write */
|
|
74
74
|
SYNCHRONOUS_COMMIT_REMOTE_FLUSH, /* wait for local and remote flush */
|
|
75
|
-
SYNCHRONOUS_COMMIT_REMOTE_APPLY /* wait for local and remote flush
|
|
76
|
-
|
|
75
|
+
SYNCHRONOUS_COMMIT_REMOTE_APPLY /* wait for local and remote flush and
|
|
76
|
+
* remote apply */
|
|
77
77
|
} SyncCommitLevel;
|
|
78
78
|
|
|
79
79
|
/* Define the default setting for synchronous_commit */
|
|
80
80
|
#define SYNCHRONOUS_COMMIT_ON SYNCHRONOUS_COMMIT_REMOTE_FLUSH
|
|
81
81
|
|
|
82
82
|
/* Synchronous commit level */
|
|
83
|
-
extern int
|
|
83
|
+
extern PGDLLIMPORT int synchronous_commit;
|
|
84
|
+
|
|
85
|
+
/* used during logical streaming of a transaction */
|
|
86
|
+
extern PGDLLIMPORT TransactionId CheckXidAlive;
|
|
87
|
+
extern PGDLLIMPORT bool bsysscan;
|
|
84
88
|
|
|
85
89
|
/*
|
|
86
90
|
* Miscellaneous flag bits to record events which occur on the top level
|
|
@@ -89,7 +93,7 @@ extern int synchronous_commit;
|
|
|
89
93
|
* globally accessible, so can be set from anywhere in the code which requires
|
|
90
94
|
* recording flags.
|
|
91
95
|
*/
|
|
92
|
-
extern int
|
|
96
|
+
extern PGDLLIMPORT int MyXactFlags;
|
|
93
97
|
|
|
94
98
|
/*
|
|
95
99
|
* XACT_FLAGS_ACCESSEDTEMPNAMESPACE - set when a temporary object is accessed.
|
|
@@ -103,6 +107,19 @@ extern int MyXactFlags;
|
|
|
103
107
|
*/
|
|
104
108
|
#define XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK (1U << 1)
|
|
105
109
|
|
|
110
|
+
/*
|
|
111
|
+
* XACT_FLAGS_NEEDIMMEDIATECOMMIT - records whether the top level statement
|
|
112
|
+
* is one that requires immediate commit, such as CREATE DATABASE.
|
|
113
|
+
*/
|
|
114
|
+
#define XACT_FLAGS_NEEDIMMEDIATECOMMIT (1U << 2)
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* XACT_FLAGS_PIPELINING - set when we complete an extended-query-protocol
|
|
118
|
+
* Execute message. This is useful for detecting that an implicit transaction
|
|
119
|
+
* block has been created via pipelining.
|
|
120
|
+
*/
|
|
121
|
+
#define XACT_FLAGS_PIPELINING (1U << 3)
|
|
122
|
+
|
|
106
123
|
/*
|
|
107
124
|
* start- and end-of-transaction callbacks for dynamically loaded modules
|
|
108
125
|
*/
|
|
@@ -131,6 +148,14 @@ typedef enum
|
|
|
131
148
|
typedef void (*SubXactCallback) (SubXactEvent event, SubTransactionId mySubid,
|
|
132
149
|
SubTransactionId parentSubid, void *arg);
|
|
133
150
|
|
|
151
|
+
/* Data structure for Save/RestoreTransactionCharacteristics */
|
|
152
|
+
typedef struct SavedTransactionCharacteristics
|
|
153
|
+
{
|
|
154
|
+
int save_XactIsoLevel;
|
|
155
|
+
bool save_XactReadOnly;
|
|
156
|
+
bool save_XactDeferrable;
|
|
157
|
+
} SavedTransactionCharacteristics;
|
|
158
|
+
|
|
134
159
|
|
|
135
160
|
/* ----------------
|
|
136
161
|
* transaction-related XLOG entries
|
|
@@ -147,7 +172,7 @@ typedef void (*SubXactCallback) (SubXactEvent event, SubTransactionId mySubid,
|
|
|
147
172
|
#define XLOG_XACT_COMMIT_PREPARED 0x30
|
|
148
173
|
#define XLOG_XACT_ABORT_PREPARED 0x40
|
|
149
174
|
#define XLOG_XACT_ASSIGNMENT 0x50
|
|
150
|
-
|
|
175
|
+
#define XLOG_XACT_INVALIDATIONS 0x60
|
|
151
176
|
/* free opcode 0x70 */
|
|
152
177
|
|
|
153
178
|
/* mask for filtering opcodes out of xl_info */
|
|
@@ -162,12 +187,13 @@ typedef void (*SubXactCallback) (SubXactEvent event, SubTransactionId mySubid,
|
|
|
162
187
|
*/
|
|
163
188
|
#define XACT_XINFO_HAS_DBINFO (1U << 0)
|
|
164
189
|
#define XACT_XINFO_HAS_SUBXACTS (1U << 1)
|
|
165
|
-
#define
|
|
190
|
+
#define XACT_XINFO_HAS_RELFILELOCATORS (1U << 2)
|
|
166
191
|
#define XACT_XINFO_HAS_INVALS (1U << 3)
|
|
167
192
|
#define XACT_XINFO_HAS_TWOPHASE (1U << 4)
|
|
168
193
|
#define XACT_XINFO_HAS_ORIGIN (1U << 5)
|
|
169
194
|
#define XACT_XINFO_HAS_AE_LOCKS (1U << 6)
|
|
170
195
|
#define XACT_XINFO_HAS_GID (1U << 7)
|
|
196
|
+
#define XACT_XINFO_HAS_DROPPED_STATS (1U << 8)
|
|
171
197
|
|
|
172
198
|
/*
|
|
173
199
|
* Also stored in xinfo, these indicating a variety of additional actions that
|
|
@@ -218,9 +244,10 @@ typedef struct xl_xact_assignment
|
|
|
218
244
|
typedef struct xl_xact_xinfo
|
|
219
245
|
{
|
|
220
246
|
/*
|
|
221
|
-
* Even though we right now only require
|
|
222
|
-
* four so following records don't have to care about alignment.
|
|
223
|
-
* records can be large, so copying large portions isn't
|
|
247
|
+
* Even though we right now only require two bytes of space in xinfo we
|
|
248
|
+
* use four so following records don't have to care about alignment.
|
|
249
|
+
* Commit records can be large, so copying large portions isn't
|
|
250
|
+
* attractive.
|
|
224
251
|
*/
|
|
225
252
|
uint32 xinfo;
|
|
226
253
|
} xl_xact_xinfo;
|
|
@@ -238,12 +265,33 @@ typedef struct xl_xact_subxacts
|
|
|
238
265
|
} xl_xact_subxacts;
|
|
239
266
|
#define MinSizeOfXactSubxacts offsetof(xl_xact_subxacts, subxacts)
|
|
240
267
|
|
|
241
|
-
typedef struct
|
|
268
|
+
typedef struct xl_xact_relfilelocators
|
|
242
269
|
{
|
|
243
270
|
int nrels; /* number of relations */
|
|
244
|
-
|
|
245
|
-
}
|
|
246
|
-
#define
|
|
271
|
+
RelFileLocator xlocators[FLEXIBLE_ARRAY_MEMBER];
|
|
272
|
+
} xl_xact_relfilelocators;
|
|
273
|
+
#define MinSizeOfXactRelfileLocators offsetof(xl_xact_relfilelocators, xlocators)
|
|
274
|
+
|
|
275
|
+
/*
|
|
276
|
+
* A transactionally dropped statistics entry.
|
|
277
|
+
*
|
|
278
|
+
* Declared here rather than pgstat.h because pgstat.h can't be included from
|
|
279
|
+
* frontend code, but the WAL format needs to be readable by frontend
|
|
280
|
+
* programs.
|
|
281
|
+
*/
|
|
282
|
+
typedef struct xl_xact_stats_item
|
|
283
|
+
{
|
|
284
|
+
int kind;
|
|
285
|
+
Oid dboid;
|
|
286
|
+
Oid objoid;
|
|
287
|
+
} xl_xact_stats_item;
|
|
288
|
+
|
|
289
|
+
typedef struct xl_xact_stats_items
|
|
290
|
+
{
|
|
291
|
+
int nitems;
|
|
292
|
+
xl_xact_stats_item items[FLEXIBLE_ARRAY_MEMBER];
|
|
293
|
+
} xl_xact_stats_items;
|
|
294
|
+
#define MinSizeOfXactStatsItems offsetof(xl_xact_stats_items, items)
|
|
247
295
|
|
|
248
296
|
typedef struct xl_xact_invals
|
|
249
297
|
{
|
|
@@ -270,7 +318,8 @@ typedef struct xl_xact_commit
|
|
|
270
318
|
/* xl_xact_xinfo follows if XLOG_XACT_HAS_INFO */
|
|
271
319
|
/* xl_xact_dbinfo follows if XINFO_HAS_DBINFO */
|
|
272
320
|
/* xl_xact_subxacts follows if XINFO_HAS_SUBXACT */
|
|
273
|
-
/*
|
|
321
|
+
/* xl_xact_relfilelocators follows if XINFO_HAS_RELFILELOCATORS */
|
|
322
|
+
/* xl_xact_stats_items follows if XINFO_HAS_DROPPED_STATS */
|
|
274
323
|
/* xl_xact_invals follows if XINFO_HAS_INVALS */
|
|
275
324
|
/* xl_xact_twophase follows if XINFO_HAS_TWOPHASE */
|
|
276
325
|
/* twophase_gid follows if XINFO_HAS_GID. As a null-terminated string. */
|
|
@@ -285,7 +334,8 @@ typedef struct xl_xact_abort
|
|
|
285
334
|
/* xl_xact_xinfo follows if XLOG_XACT_HAS_INFO */
|
|
286
335
|
/* xl_xact_dbinfo follows if XINFO_HAS_DBINFO */
|
|
287
336
|
/* xl_xact_subxacts follows if XINFO_HAS_SUBXACT */
|
|
288
|
-
/*
|
|
337
|
+
/* xl_xact_relfilelocators follows if XINFO_HAS_RELFILELOCATORS */
|
|
338
|
+
/* xl_xact_stats_items follows if XINFO_HAS_DROPPED_STATS */
|
|
289
339
|
/* No invalidation messages needed. */
|
|
290
340
|
/* xl_xact_twophase follows if XINFO_HAS_TWOPHASE */
|
|
291
341
|
/* twophase_gid follows if XINFO_HAS_GID. As a null-terminated string. */
|
|
@@ -304,6 +354,8 @@ typedef struct xl_xact_prepare
|
|
|
304
354
|
int32 nsubxacts; /* number of following subxact XIDs */
|
|
305
355
|
int32 ncommitrels; /* number of delete-on-commit rels */
|
|
306
356
|
int32 nabortrels; /* number of delete-on-abort rels */
|
|
357
|
+
int32 ncommitstats; /* number of stats to drop on commit */
|
|
358
|
+
int32 nabortstats; /* number of stats to drop on abort */
|
|
307
359
|
int32 ninvalmsgs; /* number of cache invalidation messages */
|
|
308
360
|
bool initfileinval; /* does relcache init file need invalidation? */
|
|
309
361
|
uint16 gidlen; /* length of the GID - GID follows the header */
|
|
@@ -328,7 +380,10 @@ typedef struct xl_xact_parsed_commit
|
|
|
328
380
|
TransactionId *subxacts;
|
|
329
381
|
|
|
330
382
|
int nrels;
|
|
331
|
-
|
|
383
|
+
RelFileLocator *xlocators;
|
|
384
|
+
|
|
385
|
+
int nstats;
|
|
386
|
+
xl_xact_stats_item *stats;
|
|
332
387
|
|
|
333
388
|
int nmsgs;
|
|
334
389
|
SharedInvalidationMessage *msgs;
|
|
@@ -336,7 +391,9 @@ typedef struct xl_xact_parsed_commit
|
|
|
336
391
|
TransactionId twophase_xid; /* only for 2PC */
|
|
337
392
|
char twophase_gid[GIDSIZE]; /* only for 2PC */
|
|
338
393
|
int nabortrels; /* only for 2PC */
|
|
339
|
-
|
|
394
|
+
RelFileLocator *abortlocators; /* only for 2PC */
|
|
395
|
+
int nabortstats; /* only for 2PC */
|
|
396
|
+
xl_xact_stats_item *abortstats; /* only for 2PC */
|
|
340
397
|
|
|
341
398
|
XLogRecPtr origin_lsn;
|
|
342
399
|
TimestampTz origin_timestamp;
|
|
@@ -356,7 +413,10 @@ typedef struct xl_xact_parsed_abort
|
|
|
356
413
|
TransactionId *subxacts;
|
|
357
414
|
|
|
358
415
|
int nrels;
|
|
359
|
-
|
|
416
|
+
RelFileLocator *xlocators;
|
|
417
|
+
|
|
418
|
+
int nstats;
|
|
419
|
+
xl_xact_stats_item *stats;
|
|
360
420
|
|
|
361
421
|
TransactionId twophase_xid; /* only for 2PC */
|
|
362
422
|
char twophase_gid[GIDSIZE]; /* only for 2PC */
|
|
@@ -395,8 +455,8 @@ extern bool TransactionIdIsCurrentTransactionId(TransactionId xid);
|
|
|
395
455
|
extern void CommandCounterIncrement(void);
|
|
396
456
|
extern void ForceSyncCommit(void);
|
|
397
457
|
extern void StartTransactionCommand(void);
|
|
398
|
-
extern void SaveTransactionCharacteristics(
|
|
399
|
-
extern void RestoreTransactionCharacteristics(
|
|
458
|
+
extern void SaveTransactionCharacteristics(SavedTransactionCharacteristics *s);
|
|
459
|
+
extern void RestoreTransactionCharacteristics(const SavedTransactionCharacteristics *s);
|
|
400
460
|
extern void CommitTransactionCommand(void);
|
|
401
461
|
extern void AbortCurrentTransaction(void);
|
|
402
462
|
extern void BeginTransactionBlock(void);
|
|
@@ -429,20 +489,27 @@ extern void UnregisterXactCallback(XactCallback callback, void *arg);
|
|
|
429
489
|
extern void RegisterSubXactCallback(SubXactCallback callback, void *arg);
|
|
430
490
|
extern void UnregisterSubXactCallback(SubXactCallback callback, void *arg);
|
|
431
491
|
|
|
492
|
+
extern bool IsSubxactTopXidLogPending(void);
|
|
493
|
+
extern void MarkSubxactTopXidLogged(void);
|
|
494
|
+
|
|
432
495
|
extern int xactGetCommittedChildren(TransactionId **ptr);
|
|
433
496
|
|
|
434
497
|
extern XLogRecPtr XactLogCommitRecord(TimestampTz commit_time,
|
|
435
498
|
int nsubxacts, TransactionId *subxacts,
|
|
436
|
-
int nrels,
|
|
499
|
+
int nrels, RelFileLocator *rels,
|
|
500
|
+
int ndroppedstats,
|
|
501
|
+
xl_xact_stats_item *droppedstats,
|
|
437
502
|
int nmsgs, SharedInvalidationMessage *msgs,
|
|
438
|
-
bool relcacheInval,
|
|
503
|
+
bool relcacheInval,
|
|
439
504
|
int xactflags,
|
|
440
505
|
TransactionId twophase_xid,
|
|
441
506
|
const char *twophase_gid);
|
|
442
507
|
|
|
443
508
|
extern XLogRecPtr XactLogAbortRecord(TimestampTz abort_time,
|
|
444
509
|
int nsubxacts, TransactionId *subxacts,
|
|
445
|
-
int nrels,
|
|
510
|
+
int nrels, RelFileLocator *rels,
|
|
511
|
+
int ndroppedstats,
|
|
512
|
+
xl_xact_stats_item *droppedstats,
|
|
446
513
|
int xactflags, TransactionId twophase_xid,
|
|
447
514
|
const char *twophase_gid);
|
|
448
515
|
extern void xact_redo(XLogReaderState *record);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* PostgreSQL write-ahead log manager
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
8
8
|
*
|
|
9
9
|
* src/include/access/xlog.h
|
|
@@ -11,14 +11,11 @@
|
|
|
11
11
|
#ifndef XLOG_H
|
|
12
12
|
#define XLOG_H
|
|
13
13
|
|
|
14
|
-
#include "access/
|
|
14
|
+
#include "access/xlogbackup.h"
|
|
15
15
|
#include "access/xlogdefs.h"
|
|
16
|
-
#include "access/xloginsert.h"
|
|
17
|
-
#include "access/xlogreader.h"
|
|
18
16
|
#include "datatype/timestamp.h"
|
|
19
17
|
#include "lib/stringinfo.h"
|
|
20
18
|
#include "nodes/pg_list.h"
|
|
21
|
-
#include "storage/fd.h"
|
|
22
19
|
|
|
23
20
|
|
|
24
21
|
/* Sync methods */
|
|
@@ -27,127 +24,35 @@
|
|
|
27
24
|
#define SYNC_METHOD_OPEN 2 /* for O_SYNC */
|
|
28
25
|
#define SYNC_METHOD_FSYNC_WRITETHROUGH 3
|
|
29
26
|
#define SYNC_METHOD_OPEN_DSYNC 4 /* for O_DSYNC */
|
|
30
|
-
extern int
|
|
27
|
+
extern PGDLLIMPORT int sync_method;
|
|
31
28
|
|
|
32
|
-
extern PGDLLIMPORT
|
|
33
|
-
|
|
34
|
-
/*
|
|
35
|
-
* Prior to 8.4, all activity during recovery was carried out by the startup
|
|
36
|
-
* process. This local variable continues to be used in many parts of the
|
|
37
|
-
* code to indicate actions taken by RecoveryManagers. Other processes that
|
|
38
|
-
* potentially perform work during recovery should check RecoveryInProgress().
|
|
39
|
-
* See XLogCtl notes in xlog.c.
|
|
40
|
-
*/
|
|
41
|
-
extern bool InRecovery;
|
|
42
|
-
|
|
43
|
-
/*
|
|
44
|
-
* Like InRecovery, standbyState is only valid in the startup process.
|
|
45
|
-
* In all other processes it will have the value STANDBY_DISABLED (so
|
|
46
|
-
* InHotStandby will read as false).
|
|
47
|
-
*
|
|
48
|
-
* In DISABLED state, we're performing crash recovery or hot standby was
|
|
49
|
-
* disabled in postgresql.conf.
|
|
50
|
-
*
|
|
51
|
-
* In INITIALIZED state, we've run InitRecoveryTransactionEnvironment, but
|
|
52
|
-
* we haven't yet processed a RUNNING_XACTS or shutdown-checkpoint WAL record
|
|
53
|
-
* to initialize our master-transaction tracking system.
|
|
54
|
-
*
|
|
55
|
-
* When the transaction tracking is initialized, we enter the SNAPSHOT_PENDING
|
|
56
|
-
* state. The tracked information might still be incomplete, so we can't allow
|
|
57
|
-
* connections yet, but redo functions must update the in-memory state when
|
|
58
|
-
* appropriate.
|
|
59
|
-
*
|
|
60
|
-
* In SNAPSHOT_READY mode, we have full knowledge of transactions that are
|
|
61
|
-
* (or were) running in the master at the current WAL location. Snapshots
|
|
62
|
-
* can be taken, and read-only queries can be run.
|
|
63
|
-
*/
|
|
64
|
-
typedef enum
|
|
65
|
-
{
|
|
66
|
-
STANDBY_DISABLED,
|
|
67
|
-
STANDBY_INITIALIZED,
|
|
68
|
-
STANDBY_SNAPSHOT_PENDING,
|
|
69
|
-
STANDBY_SNAPSHOT_READY
|
|
70
|
-
} HotStandbyState;
|
|
71
|
-
|
|
72
|
-
extern HotStandbyState standbyState;
|
|
73
|
-
|
|
74
|
-
#define InHotStandby (standbyState >= STANDBY_SNAPSHOT_PENDING)
|
|
75
|
-
|
|
76
|
-
/*
|
|
77
|
-
* Recovery target type.
|
|
78
|
-
* Only set during a Point in Time recovery, not when in standby mode.
|
|
79
|
-
*/
|
|
80
|
-
typedef enum
|
|
81
|
-
{
|
|
82
|
-
RECOVERY_TARGET_UNSET,
|
|
83
|
-
RECOVERY_TARGET_XID,
|
|
84
|
-
RECOVERY_TARGET_TIME,
|
|
85
|
-
RECOVERY_TARGET_NAME,
|
|
86
|
-
RECOVERY_TARGET_LSN,
|
|
87
|
-
RECOVERY_TARGET_IMMEDIATE
|
|
88
|
-
} RecoveryTargetType;
|
|
89
|
-
|
|
90
|
-
/*
|
|
91
|
-
* Recovery target TimeLine goal
|
|
92
|
-
*/
|
|
93
|
-
typedef enum
|
|
94
|
-
{
|
|
95
|
-
RECOVERY_TARGET_TIMELINE_CONTROLFILE,
|
|
96
|
-
RECOVERY_TARGET_TIMELINE_LATEST,
|
|
97
|
-
RECOVERY_TARGET_TIMELINE_NUMERIC
|
|
98
|
-
} RecoveryTargetTimeLineGoal;
|
|
99
|
-
|
|
100
|
-
extern XLogRecPtr ProcLastRecPtr;
|
|
101
|
-
extern XLogRecPtr XactLastRecEnd;
|
|
29
|
+
extern PGDLLIMPORT XLogRecPtr ProcLastRecPtr;
|
|
30
|
+
extern PGDLLIMPORT XLogRecPtr XactLastRecEnd;
|
|
102
31
|
extern PGDLLIMPORT XLogRecPtr XactLastCommitEnd;
|
|
103
32
|
|
|
104
|
-
extern bool reachedConsistency;
|
|
105
|
-
|
|
106
33
|
/* these variables are GUC parameters related to XLOG */
|
|
107
|
-
extern int
|
|
108
|
-
extern int
|
|
109
|
-
extern int
|
|
110
|
-
extern int
|
|
111
|
-
extern int
|
|
112
|
-
extern int
|
|
113
|
-
extern int
|
|
114
|
-
extern int
|
|
115
|
-
extern char *XLogArchiveCommand;
|
|
116
|
-
extern bool EnableHotStandby;
|
|
117
|
-
extern bool fullPageWrites;
|
|
118
|
-
extern bool wal_log_hints;
|
|
119
|
-
extern
|
|
120
|
-
extern bool wal_init_zero;
|
|
121
|
-
extern bool wal_recycle;
|
|
122
|
-
extern bool *wal_consistency_checking;
|
|
123
|
-
extern char *wal_consistency_checking_string;
|
|
124
|
-
extern bool log_checkpoints;
|
|
125
|
-
extern
|
|
126
|
-
extern
|
|
127
|
-
|
|
128
|
-
extern
|
|
129
|
-
extern int recoveryTargetAction;
|
|
130
|
-
extern int recovery_min_apply_delay;
|
|
131
|
-
extern char *PrimaryConnInfo;
|
|
132
|
-
extern char *PrimarySlotName;
|
|
133
|
-
extern bool wal_receiver_create_temp_slot;
|
|
134
|
-
|
|
135
|
-
/* indirectly set via GUC system */
|
|
136
|
-
extern TransactionId recoveryTargetXid;
|
|
137
|
-
extern char *recovery_target_time_string;
|
|
138
|
-
extern const char *recoveryTargetName;
|
|
139
|
-
extern XLogRecPtr recoveryTargetLSN;
|
|
140
|
-
extern RecoveryTargetType recoveryTarget;
|
|
141
|
-
extern char *PromoteTriggerFile;
|
|
142
|
-
extern RecoveryTargetTimeLineGoal recoveryTargetTimeLineGoal;
|
|
143
|
-
extern TimeLineID recoveryTargetTLIRequested;
|
|
144
|
-
extern TimeLineID recoveryTargetTLI;
|
|
145
|
-
|
|
146
|
-
extern int CheckPointSegments;
|
|
147
|
-
|
|
148
|
-
/* option set locally in startup process only when signal files exist */
|
|
149
|
-
extern bool StandbyModeRequested;
|
|
150
|
-
extern bool StandbyMode;
|
|
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;
|
|
151
56
|
|
|
152
57
|
/* Archive modes */
|
|
153
58
|
typedef enum ArchiveMode
|
|
@@ -156,7 +61,7 @@ typedef enum ArchiveMode
|
|
|
156
61
|
ARCHIVE_MODE_ON, /* enabled while server is running normally */
|
|
157
62
|
ARCHIVE_MODE_ALWAYS /* enabled always (even during recovery) */
|
|
158
63
|
} ArchiveMode;
|
|
159
|
-
extern int
|
|
64
|
+
extern PGDLLIMPORT int XLogArchiveMode;
|
|
160
65
|
|
|
161
66
|
/* WAL levels */
|
|
162
67
|
typedef enum WalLevel
|
|
@@ -166,6 +71,15 @@ typedef enum WalLevel
|
|
|
166
71
|
WAL_LEVEL_LOGICAL
|
|
167
72
|
} WalLevel;
|
|
168
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
|
+
|
|
169
83
|
/* Recovery states */
|
|
170
84
|
typedef enum RecoveryState
|
|
171
85
|
{
|
|
@@ -182,7 +96,6 @@ extern PGDLLIMPORT int wal_level;
|
|
|
182
96
|
/* Is WAL archiving enabled always (even during recovery)? */
|
|
183
97
|
#define XLogArchivingAlways() \
|
|
184
98
|
(AssertMacro(XLogArchiveMode == ARCHIVE_MODE_OFF || wal_level >= WAL_LEVEL_REPLICA), XLogArchiveMode == ARCHIVE_MODE_ALWAYS)
|
|
185
|
-
#define XLogArchiveCommandSet() (XLogArchiveCommand[0] != '\0')
|
|
186
99
|
|
|
187
100
|
/*
|
|
188
101
|
* Is WAL-logging necessary for archival or log-shipping, or can we skip
|
|
@@ -208,7 +121,7 @@ extern PGDLLIMPORT int wal_level;
|
|
|
208
121
|
#define XLogLogicalInfoActive() (wal_level >= WAL_LEVEL_LOGICAL)
|
|
209
122
|
|
|
210
123
|
#ifdef WAL_DEBUG
|
|
211
|
-
extern bool XLOG_DEBUG;
|
|
124
|
+
extern PGDLLIMPORT bool XLOG_DEBUG;
|
|
212
125
|
#endif
|
|
213
126
|
|
|
214
127
|
/*
|
|
@@ -262,7 +175,7 @@ typedef struct CheckpointStatsData
|
|
|
262
175
|
* entire sync phase. */
|
|
263
176
|
} CheckpointStatsData;
|
|
264
177
|
|
|
265
|
-
extern CheckpointStatsData CheckpointStats;
|
|
178
|
+
extern PGDLLIMPORT CheckpointStatsData CheckpointStats;
|
|
266
179
|
|
|
267
180
|
/*
|
|
268
181
|
* GetWALAvailability return codes
|
|
@@ -278,43 +191,36 @@ typedef enum WALAvailability
|
|
|
278
191
|
} WALAvailability;
|
|
279
192
|
|
|
280
193
|
struct XLogRecData;
|
|
194
|
+
struct XLogReaderState;
|
|
281
195
|
|
|
282
196
|
extern XLogRecPtr XLogInsertRecord(struct XLogRecData *rdata,
|
|
283
197
|
XLogRecPtr fpw_lsn,
|
|
284
198
|
uint8 flags,
|
|
285
|
-
int num_fpi
|
|
286
|
-
|
|
199
|
+
int num_fpi,
|
|
200
|
+
bool topxid_included);
|
|
201
|
+
extern void XLogFlush(XLogRecPtr record);
|
|
287
202
|
extern bool XLogBackgroundFlush(void);
|
|
288
|
-
extern bool XLogNeedsFlush(XLogRecPtr
|
|
289
|
-
extern int XLogFileInit(XLogSegNo
|
|
290
|
-
extern int XLogFileOpen(XLogSegNo segno);
|
|
203
|
+
extern bool XLogNeedsFlush(XLogRecPtr record);
|
|
204
|
+
extern int XLogFileInit(XLogSegNo logsegno, TimeLineID logtli);
|
|
205
|
+
extern int XLogFileOpen(XLogSegNo segno, TimeLineID tli);
|
|
291
206
|
|
|
292
207
|
extern void CheckXLogRemoved(XLogSegNo segno, TimeLineID tli);
|
|
293
208
|
extern XLogSegNo XLogGetLastRemovedSegno(void);
|
|
294
|
-
extern void XLogSetAsyncXactLSN(XLogRecPtr
|
|
209
|
+
extern void XLogSetAsyncXactLSN(XLogRecPtr asyncXactLSN);
|
|
295
210
|
extern void XLogSetReplicationSlotMinimumLSN(XLogRecPtr lsn);
|
|
296
211
|
|
|
297
|
-
extern void xlog_redo(XLogReaderState *record);
|
|
298
|
-
extern void xlog_desc(StringInfo buf, XLogReaderState *record);
|
|
212
|
+
extern void xlog_redo(struct XLogReaderState *record);
|
|
213
|
+
extern void xlog_desc(StringInfo buf, struct XLogReaderState *record);
|
|
299
214
|
extern const char *xlog_identify(uint8 info);
|
|
300
215
|
|
|
301
|
-
extern void issue_xlog_fsync(int fd, XLogSegNo segno);
|
|
216
|
+
extern void issue_xlog_fsync(int fd, XLogSegNo segno, TimeLineID tli);
|
|
302
217
|
|
|
303
218
|
extern bool RecoveryInProgress(void);
|
|
304
219
|
extern RecoveryState GetRecoveryState(void);
|
|
305
|
-
extern bool HotStandbyActive(void);
|
|
306
|
-
extern bool HotStandbyActiveInReplay(void);
|
|
307
220
|
extern bool XLogInsertAllowed(void);
|
|
308
|
-
extern void GetXLogReceiptTime(TimestampTz *rtime, bool *fromStream);
|
|
309
|
-
extern XLogRecPtr GetXLogReplayRecPtr(TimeLineID *replayTLI);
|
|
310
221
|
extern XLogRecPtr GetXLogInsertRecPtr(void);
|
|
311
222
|
extern XLogRecPtr GetXLogWriteRecPtr(void);
|
|
312
|
-
extern bool RecoveryIsPaused(void);
|
|
313
|
-
extern void SetRecoveryPause(bool recoveryPause);
|
|
314
|
-
extern TimestampTz GetLatestXTime(void);
|
|
315
|
-
extern TimestampTz GetCurrentChunkReplayStartTime(void);
|
|
316
223
|
|
|
317
|
-
extern void UpdateControlFile(void);
|
|
318
224
|
extern uint64 GetSystemIdentifier(void);
|
|
319
225
|
extern char *GetMockAuthenticationNonce(void);
|
|
320
226
|
extern bool DataChecksumsEnabled(void);
|
|
@@ -322,34 +228,36 @@ extern XLogRecPtr GetFakeLSNForUnloggedRel(void);
|
|
|
322
228
|
extern Size XLOGShmemSize(void);
|
|
323
229
|
extern void XLOGShmemInit(void);
|
|
324
230
|
extern void BootStrapXLOG(void);
|
|
231
|
+
extern void InitializeWalConsistencyChecking(void);
|
|
325
232
|
extern void LocalProcessControlFile(bool reset);
|
|
233
|
+
extern WalLevel GetActiveWalLevelOnStandby(void);
|
|
326
234
|
extern void StartupXLOG(void);
|
|
327
235
|
extern void ShutdownXLOG(int code, Datum arg);
|
|
328
|
-
extern void InitXLOGAccess(void);
|
|
329
236
|
extern void CreateCheckPoint(int flags);
|
|
330
237
|
extern bool CreateRestartPoint(int flags);
|
|
331
238
|
extern WALAvailability GetWALAvailability(XLogRecPtr targetLSN);
|
|
332
|
-
extern XLogRecPtr CalculateMaxmumSafeLSN(void);
|
|
333
239
|
extern void XLogPutNextOid(Oid nextOid);
|
|
334
240
|
extern XLogRecPtr XLogRestorePoint(const char *rpName);
|
|
335
241
|
extern void UpdateFullPageWrites(void);
|
|
336
242
|
extern void GetFullPageWriteInfo(XLogRecPtr *RedoRecPtr_p, bool *doPageWrites_p);
|
|
337
243
|
extern XLogRecPtr GetRedoRecPtr(void);
|
|
338
244
|
extern XLogRecPtr GetInsertRecPtr(void);
|
|
339
|
-
extern XLogRecPtr GetFlushRecPtr(
|
|
245
|
+
extern XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI);
|
|
246
|
+
extern TimeLineID GetWALInsertionTimeLine(void);
|
|
340
247
|
extern XLogRecPtr GetLastImportantRecPtr(void);
|
|
341
|
-
extern void RemovePromoteSignalFiles(void);
|
|
342
248
|
|
|
343
|
-
extern bool PromoteIsTriggered(void);
|
|
344
|
-
extern bool CheckPromoteSignal(void);
|
|
345
|
-
extern void WakeupRecovery(void);
|
|
346
249
|
extern void SetWalWriterSleeping(bool sleeping);
|
|
347
250
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
extern void
|
|
352
|
-
extern
|
|
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);
|
|
353
261
|
|
|
354
262
|
/*
|
|
355
263
|
* Routines to start, stop, and get status of a base backup.
|
|
@@ -368,16 +276,13 @@ extern void assign_checkpoint_completion_target(double newval, void *extra);
|
|
|
368
276
|
typedef enum SessionBackupState
|
|
369
277
|
{
|
|
370
278
|
SESSION_BACKUP_NONE,
|
|
371
|
-
|
|
372
|
-
SESSION_BACKUP_NON_EXCLUSIVE
|
|
279
|
+
SESSION_BACKUP_RUNNING,
|
|
373
280
|
} SessionBackupState;
|
|
374
281
|
|
|
375
|
-
extern
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
extern XLogRecPtr do_pg_stop_backup(char *labelfile, bool waitforarchive,
|
|
380
|
-
TimeLineID *stoptli_p);
|
|
282
|
+
extern void do_pg_backup_start(const char *backupidstr, bool fast,
|
|
283
|
+
List **tablespaces, BackupState *state,
|
|
284
|
+
StringInfo tblspcmapfile);
|
|
285
|
+
extern void do_pg_backup_stop(BackupState *state, bool waitforarchive);
|
|
381
286
|
extern void do_pg_abort_backup(int code, Datum arg);
|
|
382
287
|
extern void register_persistent_abort_backup_handler(void);
|
|
383
288
|
extern SessionBackupState get_backup_status(void);
|
|
@@ -393,6 +298,5 @@ extern SessionBackupState get_backup_status(void);
|
|
|
393
298
|
|
|
394
299
|
/* files to signal promotion to primary */
|
|
395
300
|
#define PROMOTE_SIGNAL_FILE "promote"
|
|
396
|
-
#define FALLBACK_PROMOTE_SIGNAL_FILE "fallback_promote"
|
|
397
301
|
|
|
398
302
|
#endif /* XLOG_H */
|