pg_query 4.2.1 → 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 +31 -0
- data/README.md +6 -8
- data/Rakefile +5 -6
- data/ext/pg_query/extconf.rb +14 -4
- data/ext/pg_query/include/pg_query.h +27 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
- data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
- data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
- data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
- data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
- data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
- data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
- 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 +1 -1
- data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
- 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 +1 -1
- data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
- data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
- 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 +58 -98
- data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
- data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
- data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
- data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
- data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
- data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
- data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
- data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
- data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
- data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
- data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
- data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
- data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
- data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
- data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
- data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -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 +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
- data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
- data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
- data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
- data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
- 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 +4 -4
- data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
- data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
- data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
- 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 +1 -1
- data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
- data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
- data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
- 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/{common → postgres/common}/string.h +5 -3
- data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
- data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
- 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 +11 -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 +34 -17
- data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
- data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
- 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} +21 -2
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
- 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 +2 -2
- data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
- data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
- data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
- data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
- data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
- data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
- data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
- data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
- data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
- 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 +35 -18
- data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
- data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
- data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
- data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
- data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
- data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
- data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
- 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 +96 -511
- 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 +377 -139
- data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
- data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
- data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
- data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
- data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
- data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
- 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/{nodes → postgres/nodes}/value.h +12 -2
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
- data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
- data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
- data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
- data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
- data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
- data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
- 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 +1 -1
- data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
- data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
- data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
- data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
- data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
- data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
- data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
- 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} +1 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
- data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
- data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
- data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -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 +1 -1
- 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 +62 -25
- 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} +42 -75
- 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 +1 -4
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
- data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
- data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
- data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
- data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
- data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
- data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
- data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
- data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
- data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
- data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
- data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
- data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
- 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 +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
- data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
- data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
- data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
- data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
- data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
- data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -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 +94 -57
- data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
- data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
- data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
- 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 +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
- data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
- data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
- data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
- data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
- 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 +3 -3
- data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
- data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
- data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
- data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
- data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
- data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
- 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 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
- data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
- data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
- data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
- data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
- data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
- data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
- data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
- data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
- 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 +41 -21
- data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
- 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 +7 -6
- data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
- data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
- data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
- data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
- 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 +20 -5
- data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
- data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
- data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
- data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
- data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
- 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/{utils → postgres/utils}/regproc.h +3 -3
- data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
- data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
- 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 +6 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
- data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
- data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
- data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
- data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
- data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
- data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
- data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
- data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
- data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +19755 -17757
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +1 -1
- data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
- data/ext/pg_query/pg_query_scan.c +1 -1
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11067 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
- data/ext/pg_query/src_backend_commands_define.c +1 -1
- data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +14 -2
- data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
- data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
- data/ext/pg_query/src_backend_parser_parser.c +28 -2
- data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
- data/ext/pg_query/src_backend_parser_scansup.c +1 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
- data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
- 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 +449 -312
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
- 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 +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +534 -510
- 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 +9 -8
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +79 -5
- data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
- data/ext/pg_query/src_port_snprintf.c +6 -10
- data/ext/pg_query/src_port_strerror.c +1 -1
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +2 -3
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/parse.rb +1 -1
- data/lib/pg_query/pg_query_pb.rb +166 -3191
- data/lib/pg_query/treewalker.rb +23 -5
- data/lib/pg_query/version.rb +1 -1
- metadata +432 -380
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- 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/rls.h +0 -50
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
- /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
- /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
- /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* postmaster.h
|
|
4
4
|
* Exports from postmaster/postmaster.c.
|
|
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/postmaster/postmaster.h
|
|
@@ -15,13 +15,14 @@
|
|
|
15
15
|
|
|
16
16
|
/* GUC options */
|
|
17
17
|
extern PGDLLIMPORT bool EnableSSL;
|
|
18
|
-
extern PGDLLIMPORT int
|
|
18
|
+
extern PGDLLIMPORT int SuperuserReservedConnections;
|
|
19
|
+
extern PGDLLIMPORT int ReservedConnections;
|
|
19
20
|
extern PGDLLIMPORT int PostPortNumber;
|
|
20
21
|
extern PGDLLIMPORT int Unix_socket_permissions;
|
|
21
22
|
extern PGDLLIMPORT char *Unix_socket_group;
|
|
22
23
|
extern PGDLLIMPORT char *Unix_socket_directories;
|
|
23
24
|
extern PGDLLIMPORT char *ListenAddresses;
|
|
24
|
-
extern PGDLLIMPORT
|
|
25
|
+
extern PGDLLIMPORT bool ClientAuthInProgress;
|
|
25
26
|
extern PGDLLIMPORT int PreAuthDelay;
|
|
26
27
|
extern PGDLLIMPORT int AuthenticationTimeout;
|
|
27
28
|
extern PGDLLIMPORT bool Log_connections;
|
|
@@ -30,6 +31,8 @@ extern PGDLLIMPORT bool enable_bonjour;
|
|
|
30
31
|
extern PGDLLIMPORT char *bonjour_name;
|
|
31
32
|
extern PGDLLIMPORT bool restart_after_crash;
|
|
32
33
|
extern PGDLLIMPORT bool remove_temp_files_after_crash;
|
|
34
|
+
extern PGDLLIMPORT bool send_abort_for_crash;
|
|
35
|
+
extern PGDLLIMPORT bool send_abort_for_kill;
|
|
33
36
|
|
|
34
37
|
#ifdef WIN32
|
|
35
38
|
extern PGDLLIMPORT HANDLE PostmasterHandle;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* startup.h
|
|
4
4
|
* Exports from postmaster/startup.c.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/postmaster/startup.h
|
|
9
9
|
*
|
|
@@ -32,6 +32,8 @@ extern void PostRestoreCommand(void);
|
|
|
32
32
|
extern bool IsPromoteSignaled(void);
|
|
33
33
|
extern void ResetPromoteSignaled(void);
|
|
34
34
|
|
|
35
|
+
extern void enable_startup_progress_timeout(void);
|
|
36
|
+
extern void disable_startup_progress_timeout(void);
|
|
35
37
|
extern void begin_startup_progress_phase(void);
|
|
36
38
|
extern void startup_progress_timeout_handler(void);
|
|
37
39
|
extern bool has_startup_progress_timeout_expired(long *secs, int *usecs);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* syslogger.h
|
|
4
4
|
* Exports from postmaster/syslogger.c.
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2004-
|
|
6
|
+
* Copyright (c) 2004-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/postmaster/syslogger.h
|
|
9
9
|
*
|
|
@@ -84,7 +84,7 @@ extern PGDLLIMPORT HANDLE syslogPipe[2];
|
|
|
84
84
|
|
|
85
85
|
extern int SysLogger_Start(void);
|
|
86
86
|
|
|
87
|
-
extern void write_syslogger_file(const char *buffer, int count, int
|
|
87
|
+
extern void write_syslogger_file(const char *buffer, int count, int destination);
|
|
88
88
|
|
|
89
89
|
#ifdef EXEC_BACKEND
|
|
90
90
|
extern void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* walwriter.h
|
|
4
4
|
* Exports from postmaster/walwriter.c.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 1996-
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/postmaster/walwriter.h
|
|
9
9
|
*
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
#ifndef _WALWRITER_H
|
|
13
13
|
#define _WALWRITER_H
|
|
14
14
|
|
|
15
|
+
#define DEFAULT_WAL_WRITER_FLUSH_AFTER ((1024 * 1024) / XLOG_BLCKSZ)
|
|
16
|
+
|
|
15
17
|
/* GUC options */
|
|
16
18
|
extern PGDLLIMPORT int WalWriterDelay;
|
|
17
19
|
extern PGDLLIMPORT int WalWriterFlushAfter;
|
|
@@ -156,7 +156,6 @@ typedef struct
|
|
|
156
156
|
#define REG_BADOPT 18 /* invalid embedded option */
|
|
157
157
|
#define REG_ETOOBIG 19 /* regular expression is too complex */
|
|
158
158
|
#define REG_ECOLORS 20 /* too many colors */
|
|
159
|
-
#define REG_CANCEL 21 /* operation cancelled */
|
|
160
159
|
/* two specials for debugging and testing */
|
|
161
160
|
#define REG_ATOI 101 /* convert error-code name to number */
|
|
162
161
|
#define REG_ITOA 102 /* convert error-code number to name */
|
|
@@ -171,11 +170,15 @@ typedef struct
|
|
|
171
170
|
*/
|
|
172
171
|
|
|
173
172
|
/* regcomp.c */
|
|
174
|
-
extern int pg_regcomp(regex_t
|
|
175
|
-
|
|
176
|
-
extern int
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
extern int pg_regcomp(regex_t *re, const pg_wchar *string, size_t len,
|
|
174
|
+
int flags, Oid collation);
|
|
175
|
+
extern int pg_regexec(regex_t *re, const pg_wchar *string, size_t len,
|
|
176
|
+
size_t search_start, rm_detail_t *details,
|
|
177
|
+
size_t nmatch, regmatch_t pmatch[], int flags);
|
|
178
|
+
extern int pg_regprefix(regex_t *re, pg_wchar **string, size_t *slength);
|
|
179
|
+
extern void pg_regfree(regex_t *re);
|
|
180
|
+
extern size_t pg_regerror(int errcode, const regex_t *preg, char *errbuf,
|
|
181
|
+
size_t errbuf_size);
|
|
179
182
|
|
|
180
183
|
/* regexp.c */
|
|
181
184
|
extern regex_t *RE_compile_and_cache(text *text_re, int cflags, Oid collation);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* logicallauncher.h
|
|
4
4
|
* Exports for logical replication launcher.
|
|
5
5
|
*
|
|
6
|
-
* Portions Copyright (c) 2016-
|
|
6
|
+
* Portions Copyright (c) 2016-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* src/include/replication/logicallauncher.h
|
|
9
9
|
*
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
extern PGDLLIMPORT int max_logical_replication_workers;
|
|
16
16
|
extern PGDLLIMPORT int max_sync_workers_per_subscription;
|
|
17
|
+
extern PGDLLIMPORT int max_parallel_apply_workers_per_subscription;
|
|
17
18
|
|
|
18
19
|
extern void ApplyLauncherRegister(void);
|
|
19
20
|
extern void ApplyLauncherMain(Datum main_arg);
|
|
@@ -21,9 +22,13 @@ extern void ApplyLauncherMain(Datum main_arg);
|
|
|
21
22
|
extern Size ApplyLauncherShmemSize(void);
|
|
22
23
|
extern void ApplyLauncherShmemInit(void);
|
|
23
24
|
|
|
25
|
+
extern void ApplyLauncherForgetWorkerStartTime(Oid subid);
|
|
26
|
+
|
|
24
27
|
extern void ApplyLauncherWakeupAtCommit(void);
|
|
25
28
|
extern void AtEOXact_ApplyLauncher(bool isCommit);
|
|
26
29
|
|
|
27
30
|
extern bool IsLogicalLauncher(void);
|
|
28
31
|
|
|
32
|
+
extern pid_t GetLeaderApplyWorkerPid(pid_t pid);
|
|
33
|
+
|
|
29
34
|
#endif /* LOGICALLAUNCHER_H */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* logicalproto.h
|
|
4
4
|
* logical replication protocol
|
|
5
5
|
*
|
|
6
|
-
* Copyright (c) 2015-
|
|
6
|
+
* Copyright (c) 2015-2023, PostgreSQL Global Development Group
|
|
7
7
|
*
|
|
8
8
|
* IDENTIFICATION
|
|
9
9
|
* src/include/replication/logicalproto.h
|
|
@@ -32,12 +32,17 @@
|
|
|
32
32
|
*
|
|
33
33
|
* LOGICALREP_PROTO_TWOPHASE_VERSION_NUM is the minimum protocol version with
|
|
34
34
|
* support for two-phase commit decoding (at prepare time). Introduced in PG15.
|
|
35
|
+
*
|
|
36
|
+
* LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM is the minimum protocol version
|
|
37
|
+
* where we support applying large streaming transactions in parallel.
|
|
38
|
+
* Introduced in PG16.
|
|
35
39
|
*/
|
|
36
40
|
#define LOGICALREP_PROTO_MIN_VERSION_NUM 1
|
|
37
41
|
#define LOGICALREP_PROTO_VERSION_NUM 1
|
|
38
42
|
#define LOGICALREP_PROTO_STREAM_VERSION_NUM 2
|
|
39
43
|
#define LOGICALREP_PROTO_TWOPHASE_VERSION_NUM 3
|
|
40
|
-
#define
|
|
44
|
+
#define LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM 4
|
|
45
|
+
#define LOGICALREP_PROTO_MAX_VERSION_NUM LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM
|
|
41
46
|
|
|
42
47
|
/*
|
|
43
48
|
* Logical message types
|
|
@@ -175,6 +180,17 @@ typedef struct LogicalRepRollbackPreparedTxnData
|
|
|
175
180
|
char gid[GIDSIZE];
|
|
176
181
|
} LogicalRepRollbackPreparedTxnData;
|
|
177
182
|
|
|
183
|
+
/*
|
|
184
|
+
* Transaction protocol information for stream abort.
|
|
185
|
+
*/
|
|
186
|
+
typedef struct LogicalRepStreamAbortData
|
|
187
|
+
{
|
|
188
|
+
TransactionId xid;
|
|
189
|
+
TransactionId subxid;
|
|
190
|
+
XLogRecPtr abort_lsn;
|
|
191
|
+
TimestampTz abort_time;
|
|
192
|
+
} LogicalRepStreamAbortData;
|
|
193
|
+
|
|
178
194
|
extern void logicalrep_write_begin(StringInfo out, ReorderBufferTXN *txn);
|
|
179
195
|
extern void logicalrep_read_begin(StringInfo in,
|
|
180
196
|
LogicalRepBeginData *begin_data);
|
|
@@ -219,8 +235,8 @@ extern LogicalRepRelId logicalrep_read_update(StringInfo in,
|
|
|
219
235
|
bool *has_oldtuple, LogicalRepTupleData *oldtup,
|
|
220
236
|
LogicalRepTupleData *newtup);
|
|
221
237
|
extern void logicalrep_write_delete(StringInfo out, TransactionId xid,
|
|
222
|
-
Relation rel, TupleTableSlot *
|
|
223
|
-
bool binary);
|
|
238
|
+
Relation rel, TupleTableSlot *oldslot,
|
|
239
|
+
bool binary, Bitmapset *columns);
|
|
224
240
|
extern LogicalRepRelId logicalrep_read_delete(StringInfo in,
|
|
225
241
|
LogicalRepTupleData *oldtup);
|
|
226
242
|
extern void logicalrep_write_truncate(StringInfo out, TransactionId xid,
|
|
@@ -235,7 +251,7 @@ extern void logicalrep_write_rel(StringInfo out, TransactionId xid,
|
|
|
235
251
|
extern LogicalRepRelation *logicalrep_read_rel(StringInfo in);
|
|
236
252
|
extern void logicalrep_write_typ(StringInfo out, TransactionId xid,
|
|
237
253
|
Oid typoid);
|
|
238
|
-
extern void logicalrep_read_typ(StringInfo
|
|
254
|
+
extern void logicalrep_read_typ(StringInfo in, LogicalRepTyp *ltyp);
|
|
239
255
|
extern void logicalrep_write_stream_start(StringInfo out, TransactionId xid,
|
|
240
256
|
bool first_segment);
|
|
241
257
|
extern TransactionId logicalrep_read_stream_start(StringInfo in,
|
|
@@ -243,12 +259,16 @@ extern TransactionId logicalrep_read_stream_start(StringInfo in,
|
|
|
243
259
|
extern void logicalrep_write_stream_stop(StringInfo out);
|
|
244
260
|
extern void logicalrep_write_stream_commit(StringInfo out, ReorderBufferTXN *txn,
|
|
245
261
|
XLogRecPtr commit_lsn);
|
|
246
|
-
extern TransactionId logicalrep_read_stream_commit(StringInfo
|
|
262
|
+
extern TransactionId logicalrep_read_stream_commit(StringInfo in,
|
|
247
263
|
LogicalRepCommitData *commit_data);
|
|
248
264
|
extern void logicalrep_write_stream_abort(StringInfo out, TransactionId xid,
|
|
249
|
-
TransactionId subxid
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
265
|
+
TransactionId subxid,
|
|
266
|
+
XLogRecPtr abort_lsn,
|
|
267
|
+
TimestampTz abort_time,
|
|
268
|
+
bool write_abort_info);
|
|
269
|
+
extern void logicalrep_read_stream_abort(StringInfo in,
|
|
270
|
+
LogicalRepStreamAbortData *abort_data,
|
|
271
|
+
bool read_abort_info);
|
|
272
|
+
extern const char *logicalrep_message_type(LogicalRepMsgType action);
|
|
253
273
|
|
|
254
274
|
#endif /* LOGICAL_PROTO_H */
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* logicalworker.h
|
|
4
|
+
* Exports for logical replication workers.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 2016-2023, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* src/include/replication/logicalworker.h
|
|
9
|
+
*
|
|
10
|
+
*-------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
#ifndef LOGICALWORKER_H
|
|
13
|
+
#define LOGICALWORKER_H
|
|
14
|
+
|
|
15
|
+
#include <signal.h>
|
|
16
|
+
|
|
17
|
+
extern PGDLLIMPORT volatile sig_atomic_t ParallelApplyMessagePending;
|
|
18
|
+
|
|
19
|
+
extern void ApplyWorkerMain(Datum main_arg);
|
|
20
|
+
extern void ParallelApplyWorkerMain(Datum main_arg);
|
|
21
|
+
|
|
22
|
+
extern bool IsLogicalWorker(void);
|
|
23
|
+
extern bool IsLogicalParallelApplyWorker(void);
|
|
24
|
+
|
|
25
|
+
extern void HandleParallelApplyMessageInterrupt(void);
|
|
26
|
+
extern void HandleParallelApplyMessages(void);
|
|
27
|
+
|
|
28
|
+
extern void LogicalRepWorkersWakeupAtCommit(Oid subid);
|
|
29
|
+
|
|
30
|
+
extern void AtEOXact_LogicalRepWorkers(bool isCommit);
|
|
31
|
+
|
|
32
|
+
#endif /* LOGICALWORKER_H */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* origin.h
|
|
3
3
|
* Exports from replication/logical/origin.c
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2023, PostgreSQL Global Development Group
|
|
6
6
|
*
|
|
7
7
|
* src/include/replication/origin.h
|
|
8
8
|
*-------------------------------------------------------------------------
|
|
@@ -38,8 +38,8 @@ extern PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn;
|
|
|
38
38
|
extern PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp;
|
|
39
39
|
|
|
40
40
|
/* API for querying & manipulating replication origins */
|
|
41
|
-
extern RepOriginId replorigin_by_name(const char *
|
|
42
|
-
extern RepOriginId replorigin_create(const char *
|
|
41
|
+
extern RepOriginId replorigin_by_name(const char *roname, bool missing_ok);
|
|
42
|
+
extern RepOriginId replorigin_create(const char *roname);
|
|
43
43
|
extern void replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait);
|
|
44
44
|
extern bool replorigin_by_oid(RepOriginId roident, bool missing_ok,
|
|
45
45
|
char **roname);
|
|
@@ -53,7 +53,7 @@ extern XLogRecPtr replorigin_get_progress(RepOriginId node, bool flush);
|
|
|
53
53
|
|
|
54
54
|
extern void replorigin_session_advance(XLogRecPtr remote_commit,
|
|
55
55
|
XLogRecPtr local_commit);
|
|
56
|
-
extern void replorigin_session_setup(RepOriginId node);
|
|
56
|
+
extern void replorigin_session_setup(RepOriginId node, int acquired_by);
|
|
57
57
|
extern void replorigin_session_reset(void);
|
|
58
58
|
extern XLogRecPtr replorigin_session_get_progress(bool flush);
|
|
59
59
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* reorderbuffer.h
|
|
3
3
|
* PostgreSQL logical replay/reorder buffer management.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2012-
|
|
5
|
+
* Copyright (c) 2012-2023, PostgreSQL Global Development Group
|
|
6
6
|
*
|
|
7
7
|
* src/include/replication/reorderbuffer.h
|
|
8
8
|
*/
|
|
@@ -17,7 +17,16 @@
|
|
|
17
17
|
#include "utils/snapshot.h"
|
|
18
18
|
#include "utils/timestamp.h"
|
|
19
19
|
|
|
20
|
+
/* GUC variables */
|
|
20
21
|
extern PGDLLIMPORT int logical_decoding_work_mem;
|
|
22
|
+
extern PGDLLIMPORT int debug_logical_replication_streaming;
|
|
23
|
+
|
|
24
|
+
/* possible values for debug_logical_replication_streaming */
|
|
25
|
+
typedef enum
|
|
26
|
+
{
|
|
27
|
+
DEBUG_LOGICAL_REP_STREAMING_BUFFERED,
|
|
28
|
+
DEBUG_LOGICAL_REP_STREAMING_IMMEDIATE
|
|
29
|
+
} DebugLogicalRepStreamingMode;
|
|
21
30
|
|
|
22
31
|
/* an individual tuple, stored in one chunk of memory */
|
|
23
32
|
typedef struct ReorderBufferTupleBuf
|
|
@@ -99,7 +108,7 @@ typedef struct ReorderBufferChange
|
|
|
99
108
|
struct
|
|
100
109
|
{
|
|
101
110
|
/* relation that has been changed */
|
|
102
|
-
|
|
111
|
+
RelFileLocator rlocator;
|
|
103
112
|
|
|
104
113
|
/* no previously reassembled toast chunks are necessary anymore */
|
|
105
114
|
bool clear_toast_afterwards;
|
|
@@ -145,7 +154,7 @@ typedef struct ReorderBufferChange
|
|
|
145
154
|
*/
|
|
146
155
|
struct
|
|
147
156
|
{
|
|
148
|
-
|
|
157
|
+
RelFileLocator locator;
|
|
149
158
|
ItemPointerData tid;
|
|
150
159
|
CommandId cmin;
|
|
151
160
|
CommandId cmax;
|
|
@@ -168,14 +177,15 @@ typedef struct ReorderBufferChange
|
|
|
168
177
|
} ReorderBufferChange;
|
|
169
178
|
|
|
170
179
|
/* ReorderBufferTXN txn_flags */
|
|
171
|
-
#define RBTXN_HAS_CATALOG_CHANGES
|
|
172
|
-
#define RBTXN_IS_SUBXACT
|
|
173
|
-
#define RBTXN_IS_SERIALIZED
|
|
174
|
-
#define RBTXN_IS_SERIALIZED_CLEAR
|
|
175
|
-
#define RBTXN_IS_STREAMED
|
|
176
|
-
#define RBTXN_HAS_PARTIAL_CHANGE
|
|
177
|
-
#define RBTXN_PREPARE
|
|
178
|
-
#define RBTXN_SKIPPED_PREPARE
|
|
180
|
+
#define RBTXN_HAS_CATALOG_CHANGES 0x0001
|
|
181
|
+
#define RBTXN_IS_SUBXACT 0x0002
|
|
182
|
+
#define RBTXN_IS_SERIALIZED 0x0004
|
|
183
|
+
#define RBTXN_IS_SERIALIZED_CLEAR 0x0008
|
|
184
|
+
#define RBTXN_IS_STREAMED 0x0010
|
|
185
|
+
#define RBTXN_HAS_PARTIAL_CHANGE 0x0020
|
|
186
|
+
#define RBTXN_PREPARE 0x0040
|
|
187
|
+
#define RBTXN_SKIPPED_PREPARE 0x0080
|
|
188
|
+
#define RBTXN_HAS_STREAMABLE_CHANGE 0x0100
|
|
179
189
|
|
|
180
190
|
/* Does the transaction have catalog changes? */
|
|
181
191
|
#define rbtxn_has_catalog_changes(txn) \
|
|
@@ -207,6 +217,12 @@ typedef struct ReorderBufferChange
|
|
|
207
217
|
((txn)->txn_flags & RBTXN_HAS_PARTIAL_CHANGE) != 0 \
|
|
208
218
|
)
|
|
209
219
|
|
|
220
|
+
/* Does this transaction contain streamable changes? */
|
|
221
|
+
#define rbtxn_has_streamable_change(txn) \
|
|
222
|
+
( \
|
|
223
|
+
((txn)->txn_flags & RBTXN_HAS_STREAMABLE_CHANGE) != 0 \
|
|
224
|
+
)
|
|
225
|
+
|
|
210
226
|
/*
|
|
211
227
|
* Has this transaction been streamed to downstream?
|
|
212
228
|
*
|
|
@@ -233,6 +249,24 @@ typedef struct ReorderBufferChange
|
|
|
233
249
|
((txn)->txn_flags & RBTXN_SKIPPED_PREPARE) != 0 \
|
|
234
250
|
)
|
|
235
251
|
|
|
252
|
+
/* Is this a top-level transaction? */
|
|
253
|
+
#define rbtxn_is_toptxn(txn) \
|
|
254
|
+
( \
|
|
255
|
+
(txn)->toptxn == NULL \
|
|
256
|
+
)
|
|
257
|
+
|
|
258
|
+
/* Is this a subtransaction? */
|
|
259
|
+
#define rbtxn_is_subtxn(txn) \
|
|
260
|
+
( \
|
|
261
|
+
(txn)->toptxn != NULL \
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
/* Get the top-level transaction of this (sub)transaction. */
|
|
265
|
+
#define rbtxn_get_toptxn(txn) \
|
|
266
|
+
( \
|
|
267
|
+
rbtxn_is_subtxn(txn) ? (txn)->toptxn : (txn) \
|
|
268
|
+
)
|
|
269
|
+
|
|
236
270
|
typedef struct ReorderBufferTXN
|
|
237
271
|
{
|
|
238
272
|
/* See above */
|
|
@@ -262,7 +296,7 @@ typedef struct ReorderBufferTXN
|
|
|
262
296
|
* aborted. This can be a
|
|
263
297
|
* * plain commit record
|
|
264
298
|
* * plain commit record, of a parent transaction
|
|
265
|
-
* * prepared
|
|
299
|
+
* * prepared transaction
|
|
266
300
|
* * prepared transaction commit
|
|
267
301
|
* * plain abort record
|
|
268
302
|
* * prepared transaction abort
|
|
@@ -301,6 +335,7 @@ typedef struct ReorderBufferTXN
|
|
|
301
335
|
{
|
|
302
336
|
TimestampTz commit_time;
|
|
303
337
|
TimestampTz prepare_time;
|
|
338
|
+
TimestampTz abort_time;
|
|
304
339
|
} xact_time;
|
|
305
340
|
|
|
306
341
|
/*
|
|
@@ -380,6 +415,11 @@ typedef struct ReorderBufferTXN
|
|
|
380
415
|
*/
|
|
381
416
|
dlist_node node;
|
|
382
417
|
|
|
418
|
+
/*
|
|
419
|
+
* A node in the list of catalog modifying transactions
|
|
420
|
+
*/
|
|
421
|
+
dlist_node catchange_node;
|
|
422
|
+
|
|
383
423
|
/*
|
|
384
424
|
* Size of this transaction (changes currently in memory, in bytes).
|
|
385
425
|
*/
|
|
@@ -504,6 +544,12 @@ typedef void (*ReorderBufferStreamTruncateCB) (
|
|
|
504
544
|
Relation relations[],
|
|
505
545
|
ReorderBufferChange *change);
|
|
506
546
|
|
|
547
|
+
/* update progress txn callback signature */
|
|
548
|
+
typedef void (*ReorderBufferUpdateProgressTxnCB) (
|
|
549
|
+
ReorderBuffer *rb,
|
|
550
|
+
ReorderBufferTXN *txn,
|
|
551
|
+
XLogRecPtr lsn);
|
|
552
|
+
|
|
507
553
|
struct ReorderBuffer
|
|
508
554
|
{
|
|
509
555
|
/*
|
|
@@ -526,6 +572,11 @@ struct ReorderBuffer
|
|
|
526
572
|
*/
|
|
527
573
|
dlist_head txns_by_base_snapshot_lsn;
|
|
528
574
|
|
|
575
|
+
/*
|
|
576
|
+
* Transactions and subtransactions that have modified system catalogs.
|
|
577
|
+
*/
|
|
578
|
+
dclist_head catchange_txns;
|
|
579
|
+
|
|
529
580
|
/*
|
|
530
581
|
* one-entry sized cache for by_txn. Very frequently the same txn gets
|
|
531
582
|
* looked up over and over again.
|
|
@@ -562,6 +613,12 @@ struct ReorderBuffer
|
|
|
562
613
|
ReorderBufferStreamMessageCB stream_message;
|
|
563
614
|
ReorderBufferStreamTruncateCB stream_truncate;
|
|
564
615
|
|
|
616
|
+
/*
|
|
617
|
+
* Callback to be called when updating progress during sending data of a
|
|
618
|
+
* transaction (and its subtransactions) to the output plugin.
|
|
619
|
+
*/
|
|
620
|
+
ReorderBufferUpdateProgressTxnCB update_progress_txn;
|
|
621
|
+
|
|
565
622
|
/*
|
|
566
623
|
* Pointer that will be passed untouched to the callbacks.
|
|
567
624
|
*/
|
|
@@ -619,23 +676,27 @@ struct ReorderBuffer
|
|
|
619
676
|
|
|
620
677
|
|
|
621
678
|
extern ReorderBuffer *ReorderBufferAllocate(void);
|
|
622
|
-
extern void ReorderBufferFree(ReorderBuffer *);
|
|
679
|
+
extern void ReorderBufferFree(ReorderBuffer *rb);
|
|
623
680
|
|
|
624
|
-
extern ReorderBufferTupleBuf *ReorderBufferGetTupleBuf(ReorderBuffer
|
|
625
|
-
|
|
626
|
-
extern
|
|
627
|
-
|
|
681
|
+
extern ReorderBufferTupleBuf *ReorderBufferGetTupleBuf(ReorderBuffer *rb,
|
|
682
|
+
Size tuple_len);
|
|
683
|
+
extern void ReorderBufferReturnTupleBuf(ReorderBuffer *rb,
|
|
684
|
+
ReorderBufferTupleBuf *tuple);
|
|
685
|
+
extern ReorderBufferChange *ReorderBufferGetChange(ReorderBuffer *rb);
|
|
686
|
+
extern void ReorderBufferReturnChange(ReorderBuffer *rb,
|
|
687
|
+
ReorderBufferChange *change, bool upd_mem);
|
|
628
688
|
|
|
629
|
-
extern Oid *ReorderBufferGetRelids(ReorderBuffer
|
|
630
|
-
extern void ReorderBufferReturnRelids(ReorderBuffer
|
|
689
|
+
extern Oid *ReorderBufferGetRelids(ReorderBuffer *rb, int nrelids);
|
|
690
|
+
extern void ReorderBufferReturnRelids(ReorderBuffer *rb, Oid *relids);
|
|
631
691
|
|
|
632
|
-
extern void ReorderBufferQueueChange(ReorderBuffer
|
|
633
|
-
XLogRecPtr lsn, ReorderBufferChange
|
|
692
|
+
extern void ReorderBufferQueueChange(ReorderBuffer *rb, TransactionId xid,
|
|
693
|
+
XLogRecPtr lsn, ReorderBufferChange *change,
|
|
634
694
|
bool toast_insert);
|
|
635
|
-
extern void ReorderBufferQueueMessage(ReorderBuffer
|
|
695
|
+
extern void ReorderBufferQueueMessage(ReorderBuffer *rb, TransactionId xid,
|
|
696
|
+
Snapshot snap, XLogRecPtr lsn,
|
|
636
697
|
bool transactional, const char *prefix,
|
|
637
698
|
Size message_size, const char *message);
|
|
638
|
-
extern void ReorderBufferCommit(ReorderBuffer
|
|
699
|
+
extern void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid,
|
|
639
700
|
XLogRecPtr commit_lsn, XLogRecPtr end_lsn,
|
|
640
701
|
TimestampTz commit_time, RepOriginId origin_id, XLogRecPtr origin_lsn);
|
|
641
702
|
extern void ReorderBufferFinishPrepared(ReorderBuffer *rb, TransactionId xid,
|
|
@@ -644,30 +705,36 @@ extern void ReorderBufferFinishPrepared(ReorderBuffer *rb, TransactionId xid,
|
|
|
644
705
|
TimestampTz commit_time,
|
|
645
706
|
RepOriginId origin_id, XLogRecPtr origin_lsn,
|
|
646
707
|
char *gid, bool is_commit);
|
|
647
|
-
extern void ReorderBufferAssignChild(ReorderBuffer
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
extern void
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
extern void
|
|
656
|
-
extern void
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
708
|
+
extern void ReorderBufferAssignChild(ReorderBuffer *rb, TransactionId xid,
|
|
709
|
+
TransactionId subxid, XLogRecPtr lsn);
|
|
710
|
+
extern void ReorderBufferCommitChild(ReorderBuffer *rb, TransactionId xid,
|
|
711
|
+
TransactionId subxid, XLogRecPtr commit_lsn,
|
|
712
|
+
XLogRecPtr end_lsn);
|
|
713
|
+
extern void ReorderBufferAbort(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn,
|
|
714
|
+
TimestampTz abort_time);
|
|
715
|
+
extern void ReorderBufferAbortOld(ReorderBuffer *rb, TransactionId oldestRunningXid);
|
|
716
|
+
extern void ReorderBufferForget(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn);
|
|
717
|
+
extern void ReorderBufferInvalidate(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn);
|
|
718
|
+
|
|
719
|
+
extern void ReorderBufferSetBaseSnapshot(ReorderBuffer *rb, TransactionId xid,
|
|
720
|
+
XLogRecPtr lsn, Snapshot snap);
|
|
721
|
+
extern void ReorderBufferAddSnapshot(ReorderBuffer *rb, TransactionId xid,
|
|
722
|
+
XLogRecPtr lsn, Snapshot snap);
|
|
723
|
+
extern void ReorderBufferAddNewCommandId(ReorderBuffer *rb, TransactionId xid,
|
|
724
|
+
XLogRecPtr lsn, CommandId cid);
|
|
725
|
+
extern void ReorderBufferAddNewTupleCids(ReorderBuffer *rb, TransactionId xid,
|
|
726
|
+
XLogRecPtr lsn, RelFileLocator locator,
|
|
727
|
+
ItemPointerData tid,
|
|
661
728
|
CommandId cmin, CommandId cmax, CommandId combocid);
|
|
662
|
-
extern void ReorderBufferAddInvalidations(ReorderBuffer
|
|
729
|
+
extern void ReorderBufferAddInvalidations(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn,
|
|
663
730
|
Size nmsgs, SharedInvalidationMessage *msgs);
|
|
664
|
-
extern void ReorderBufferImmediateInvalidation(ReorderBuffer
|
|
731
|
+
extern void ReorderBufferImmediateInvalidation(ReorderBuffer *rb, uint32 ninvalidations,
|
|
665
732
|
SharedInvalidationMessage *invalidations);
|
|
666
|
-
extern void ReorderBufferProcessXid(ReorderBuffer
|
|
733
|
+
extern void ReorderBufferProcessXid(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn);
|
|
667
734
|
|
|
668
|
-
extern void ReorderBufferXidSetCatalogChanges(ReorderBuffer
|
|
669
|
-
extern bool ReorderBufferXidHasCatalogChanges(ReorderBuffer
|
|
670
|
-
extern bool ReorderBufferXidHasBaseSnapshot(ReorderBuffer
|
|
735
|
+
extern void ReorderBufferXidSetCatalogChanges(ReorderBuffer *rb, TransactionId xid, XLogRecPtr lsn);
|
|
736
|
+
extern bool ReorderBufferXidHasCatalogChanges(ReorderBuffer *rb, TransactionId xid);
|
|
737
|
+
extern bool ReorderBufferXidHasBaseSnapshot(ReorderBuffer *rb, TransactionId xid);
|
|
671
738
|
|
|
672
739
|
extern bool ReorderBufferRememberPrepareInfo(ReorderBuffer *rb, TransactionId xid,
|
|
673
740
|
XLogRecPtr prepare_lsn, XLogRecPtr end_lsn,
|
|
@@ -675,10 +742,11 @@ extern bool ReorderBufferRememberPrepareInfo(ReorderBuffer *rb, TransactionId xi
|
|
|
675
742
|
RepOriginId origin_id, XLogRecPtr origin_lsn);
|
|
676
743
|
extern void ReorderBufferSkipPrepare(ReorderBuffer *rb, TransactionId xid);
|
|
677
744
|
extern void ReorderBufferPrepare(ReorderBuffer *rb, TransactionId xid, char *gid);
|
|
678
|
-
extern ReorderBufferTXN *ReorderBufferGetOldestTXN(ReorderBuffer *);
|
|
745
|
+
extern ReorderBufferTXN *ReorderBufferGetOldestTXN(ReorderBuffer *rb);
|
|
679
746
|
extern TransactionId ReorderBufferGetOldestXmin(ReorderBuffer *rb);
|
|
747
|
+
extern TransactionId *ReorderBufferGetCatalogChangesXacts(ReorderBuffer *rb);
|
|
680
748
|
|
|
681
|
-
extern void ReorderBufferSetRestartPoint(ReorderBuffer
|
|
749
|
+
extern void ReorderBufferSetRestartPoint(ReorderBuffer *rb, XLogRecPtr ptr);
|
|
682
750
|
|
|
683
751
|
extern void StartupReorderBuffer(void);
|
|
684
752
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* slot.h
|
|
3
3
|
* Replication slot management.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2012-
|
|
5
|
+
* Copyright (c) 2012-2023, PostgreSQL Global Development Group
|
|
6
6
|
*
|
|
7
7
|
*-------------------------------------------------------------------------
|
|
8
8
|
*/
|
|
@@ -37,6 +37,21 @@ typedef enum ReplicationSlotPersistency
|
|
|
37
37
|
RS_TEMPORARY
|
|
38
38
|
} ReplicationSlotPersistency;
|
|
39
39
|
|
|
40
|
+
/*
|
|
41
|
+
* Slots can be invalidated, e.g. due to max_slot_wal_keep_size. If so, the
|
|
42
|
+
* 'invalidated' field is set to a value other than _NONE.
|
|
43
|
+
*/
|
|
44
|
+
typedef enum ReplicationSlotInvalidationCause
|
|
45
|
+
{
|
|
46
|
+
RS_INVAL_NONE,
|
|
47
|
+
/* required WAL has been removed */
|
|
48
|
+
RS_INVAL_WAL_REMOVED,
|
|
49
|
+
/* required rows have been removed */
|
|
50
|
+
RS_INVAL_HORIZON,
|
|
51
|
+
/* wal_level insufficient for slot */
|
|
52
|
+
RS_INVAL_WAL_LEVEL,
|
|
53
|
+
} ReplicationSlotInvalidationCause;
|
|
54
|
+
|
|
40
55
|
/*
|
|
41
56
|
* On-Disk data of a replication slot, preserved across restarts.
|
|
42
57
|
*/
|
|
@@ -72,8 +87,8 @@ typedef struct ReplicationSlotPersistentData
|
|
|
72
87
|
/* oldest LSN that might be required by this replication slot */
|
|
73
88
|
XLogRecPtr restart_lsn;
|
|
74
89
|
|
|
75
|
-
/*
|
|
76
|
-
|
|
90
|
+
/* RS_INVAL_NONE if valid, or the reason for having been invalidated */
|
|
91
|
+
ReplicationSlotInvalidationCause invalidated;
|
|
77
92
|
|
|
78
93
|
/*
|
|
79
94
|
* Oldest LSN that the client has acked receipt for. This is used as the
|
|
@@ -195,7 +210,8 @@ extern void ReplicationSlotsShmemInit(void);
|
|
|
195
210
|
|
|
196
211
|
/* management of individual slots */
|
|
197
212
|
extern void ReplicationSlotCreate(const char *name, bool db_specific,
|
|
198
|
-
ReplicationSlotPersistency
|
|
213
|
+
ReplicationSlotPersistency persistency,
|
|
214
|
+
bool two_phase);
|
|
199
215
|
extern void ReplicationSlotPersist(void);
|
|
200
216
|
extern void ReplicationSlotDrop(const char *name, bool nowait);
|
|
201
217
|
|
|
@@ -214,11 +230,14 @@ extern void ReplicationSlotsComputeRequiredLSN(void);
|
|
|
214
230
|
extern XLogRecPtr ReplicationSlotsComputeLogicalRestartLSN(void);
|
|
215
231
|
extern bool ReplicationSlotsCountDBSlots(Oid dboid, int *nslots, int *nactive);
|
|
216
232
|
extern void ReplicationSlotsDropDBSlots(Oid dboid);
|
|
217
|
-
extern bool InvalidateObsoleteReplicationSlots(
|
|
233
|
+
extern bool InvalidateObsoleteReplicationSlots(ReplicationSlotInvalidationCause cause,
|
|
234
|
+
XLogSegNo oldestSegno,
|
|
235
|
+
Oid dboid,
|
|
236
|
+
TransactionId snapshotConflictHorizon);
|
|
218
237
|
extern ReplicationSlot *SearchNamedReplicationSlot(const char *name, bool need_lock);
|
|
219
238
|
extern int ReplicationSlotIndex(ReplicationSlot *slot);
|
|
220
239
|
extern bool ReplicationSlotName(int index, Name name);
|
|
221
|
-
extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname,
|
|
240
|
+
extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, Size szslot);
|
|
222
241
|
extern void ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok);
|
|
223
242
|
|
|
224
243
|
extern void StartupReplicationSlots(void);
|