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
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* have their own implementations, but we provide a few generic things
|
|
8
8
|
* here to facilitate code reuse.
|
|
9
9
|
*
|
|
10
|
-
* Portions Copyright (c) 1996-
|
|
10
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
11
11
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
12
12
|
*
|
|
13
13
|
* IDENTIFICATION
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pgarch.h
|
|
4
4
|
* Exports from postmaster/pgarch.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/pgarch.h
|
|
@@ -26,14 +26,11 @@
|
|
|
26
26
|
#define MAX_XFN_CHARS 40
|
|
27
27
|
#define VALID_XFN_CHARS "0123456789ABCDEF.history.backup.partial"
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
extern
|
|
34
|
-
|
|
35
|
-
#ifdef EXEC_BACKEND
|
|
36
|
-
extern void PgArchiverMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
37
|
-
#endif
|
|
29
|
+
extern Size PgArchShmemSize(void);
|
|
30
|
+
extern void PgArchShmemInit(void);
|
|
31
|
+
extern bool PgArchCanRestart(void);
|
|
32
|
+
extern void PgArchiverMain(void) pg_attribute_noreturn();
|
|
33
|
+
extern void PgArchWakeup(void);
|
|
34
|
+
extern void PgArchForceDirScan(void);
|
|
38
35
|
|
|
39
36
|
#endif /* _PGARCH_H */
|
|
@@ -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
|
|
@@ -14,26 +14,30 @@
|
|
|
14
14
|
#define _POSTMASTER_H
|
|
15
15
|
|
|
16
16
|
/* GUC options */
|
|
17
|
-
extern bool EnableSSL;
|
|
18
|
-
extern int
|
|
17
|
+
extern PGDLLIMPORT bool EnableSSL;
|
|
18
|
+
extern PGDLLIMPORT int SuperuserReservedConnections;
|
|
19
|
+
extern PGDLLIMPORT int ReservedConnections;
|
|
19
20
|
extern PGDLLIMPORT int PostPortNumber;
|
|
20
|
-
extern int
|
|
21
|
-
extern char *Unix_socket_group;
|
|
22
|
-
extern char *Unix_socket_directories;
|
|
23
|
-
extern char *ListenAddresses;
|
|
24
|
-
extern
|
|
25
|
-
extern int
|
|
26
|
-
extern int
|
|
27
|
-
extern bool Log_connections;
|
|
28
|
-
extern bool log_hostname;
|
|
29
|
-
extern bool enable_bonjour;
|
|
30
|
-
extern char *bonjour_name;
|
|
31
|
-
extern bool restart_after_crash;
|
|
21
|
+
extern PGDLLIMPORT int Unix_socket_permissions;
|
|
22
|
+
extern PGDLLIMPORT char *Unix_socket_group;
|
|
23
|
+
extern PGDLLIMPORT char *Unix_socket_directories;
|
|
24
|
+
extern PGDLLIMPORT char *ListenAddresses;
|
|
25
|
+
extern PGDLLIMPORT bool ClientAuthInProgress;
|
|
26
|
+
extern PGDLLIMPORT int PreAuthDelay;
|
|
27
|
+
extern PGDLLIMPORT int AuthenticationTimeout;
|
|
28
|
+
extern PGDLLIMPORT bool Log_connections;
|
|
29
|
+
extern PGDLLIMPORT bool log_hostname;
|
|
30
|
+
extern PGDLLIMPORT bool enable_bonjour;
|
|
31
|
+
extern PGDLLIMPORT char *bonjour_name;
|
|
32
|
+
extern PGDLLIMPORT bool restart_after_crash;
|
|
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;
|
|
32
36
|
|
|
33
37
|
#ifdef WIN32
|
|
34
|
-
extern HANDLE PostmasterHandle;
|
|
38
|
+
extern PGDLLIMPORT HANDLE PostmasterHandle;
|
|
35
39
|
#else
|
|
36
|
-
extern int
|
|
40
|
+
extern PGDLLIMPORT int postmaster_alive_fds[2];
|
|
37
41
|
|
|
38
42
|
/*
|
|
39
43
|
* Constants that represent which of postmaster_alive_fds is held by
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* startup.h
|
|
4
|
+
* Exports from postmaster/startup.c.
|
|
5
|
+
*
|
|
6
|
+
* Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* src/include/postmaster/startup.h
|
|
9
|
+
*
|
|
10
|
+
*-------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
#ifndef _STARTUP_H
|
|
13
|
+
#define _STARTUP_H
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* Log the startup progress message if a timer has expired.
|
|
17
|
+
*/
|
|
18
|
+
#define ereport_startup_progress(msg, ...) \
|
|
19
|
+
do { \
|
|
20
|
+
long secs; \
|
|
21
|
+
int usecs; \
|
|
22
|
+
if (has_startup_progress_timeout_expired(&secs, &usecs)) \
|
|
23
|
+
ereport(LOG, errmsg(msg, secs, (usecs / 10000), __VA_ARGS__ )); \
|
|
24
|
+
} while(0)
|
|
25
|
+
|
|
26
|
+
extern PGDLLIMPORT int log_startup_progress_interval;
|
|
27
|
+
|
|
28
|
+
extern void HandleStartupProcInterrupts(void);
|
|
29
|
+
extern void StartupProcessMain(void) pg_attribute_noreturn();
|
|
30
|
+
extern void PreRestoreCommand(void);
|
|
31
|
+
extern void PostRestoreCommand(void);
|
|
32
|
+
extern bool IsPromoteSignaled(void);
|
|
33
|
+
extern void ResetPromoteSignaled(void);
|
|
34
|
+
|
|
35
|
+
extern void enable_startup_progress_timeout(void);
|
|
36
|
+
extern void disable_startup_progress_timeout(void);
|
|
37
|
+
extern void begin_startup_progress_phase(void);
|
|
38
|
+
extern void startup_progress_timeout_handler(void);
|
|
39
|
+
extern bool has_startup_progress_timeout_expired(long *secs, int *usecs);
|
|
40
|
+
|
|
41
|
+
#endif /* _STARTUP_H */
|
|
@@ -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
|
*
|
|
@@ -46,8 +46,7 @@ typedef struct
|
|
|
46
46
|
char nuls[2]; /* always \0\0 */
|
|
47
47
|
uint16 len; /* size of this chunk (counts data only) */
|
|
48
48
|
int32 pid; /* writer's pid */
|
|
49
|
-
|
|
50
|
-
* 'F' for CSV case) */
|
|
49
|
+
bits8 flags; /* bitmask of PIPE_PROTO_* */
|
|
51
50
|
char data[FLEXIBLE_ARRAY_MEMBER]; /* data payload starts here */
|
|
52
51
|
} PipeProtoHeader;
|
|
53
52
|
|
|
@@ -60,26 +59,32 @@ typedef union
|
|
|
60
59
|
#define PIPE_HEADER_SIZE offsetof(PipeProtoHeader, data)
|
|
61
60
|
#define PIPE_MAX_PAYLOAD ((int) (PIPE_CHUNK_SIZE - PIPE_HEADER_SIZE))
|
|
62
61
|
|
|
62
|
+
/* flag bits for PipeProtoHeader->flags */
|
|
63
|
+
#define PIPE_PROTO_IS_LAST 0x01 /* last chunk of message? */
|
|
64
|
+
/* log destinations */
|
|
65
|
+
#define PIPE_PROTO_DEST_STDERR 0x10
|
|
66
|
+
#define PIPE_PROTO_DEST_CSVLOG 0x20
|
|
67
|
+
#define PIPE_PROTO_DEST_JSONLOG 0x40
|
|
63
68
|
|
|
64
69
|
/* GUC options */
|
|
65
|
-
extern bool Logging_collector;
|
|
66
|
-
extern int
|
|
67
|
-
extern int
|
|
70
|
+
extern PGDLLIMPORT bool Logging_collector;
|
|
71
|
+
extern PGDLLIMPORT int Log_RotationAge;
|
|
72
|
+
extern PGDLLIMPORT int Log_RotationSize;
|
|
68
73
|
extern PGDLLIMPORT char *Log_directory;
|
|
69
74
|
extern PGDLLIMPORT char *Log_filename;
|
|
70
|
-
extern bool Log_truncate_on_rotation;
|
|
71
|
-
extern int
|
|
75
|
+
extern PGDLLIMPORT bool Log_truncate_on_rotation;
|
|
76
|
+
extern PGDLLIMPORT int Log_file_mode;
|
|
72
77
|
|
|
73
78
|
#ifndef WIN32
|
|
74
|
-
extern int
|
|
79
|
+
extern PGDLLIMPORT int syslogPipe[2];
|
|
75
80
|
#else
|
|
76
|
-
extern HANDLE syslogPipe[2];
|
|
81
|
+
extern PGDLLIMPORT HANDLE syslogPipe[2];
|
|
77
82
|
#endif
|
|
78
83
|
|
|
79
84
|
|
|
80
85
|
extern int SysLogger_Start(void);
|
|
81
86
|
|
|
82
|
-
extern void write_syslogger_file(const char *buffer, int count, int
|
|
87
|
+
extern void write_syslogger_file(const char *buffer, int count, int destination);
|
|
83
88
|
|
|
84
89
|
#ifdef EXEC_BACKEND
|
|
85
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,9 +12,11 @@
|
|
|
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
|
-
extern int
|
|
17
|
-
extern int
|
|
18
|
+
extern PGDLLIMPORT int WalWriterDelay;
|
|
19
|
+
extern PGDLLIMPORT int WalWriterFlushAfter;
|
|
18
20
|
|
|
19
21
|
extern void WalWriterMain(void) pg_attribute_noreturn();
|
|
20
22
|
|
|
@@ -56,21 +56,23 @@ typedef struct
|
|
|
56
56
|
{
|
|
57
57
|
int re_magic; /* magic number */
|
|
58
58
|
size_t re_nsub; /* number of subexpressions */
|
|
59
|
-
long re_info; /*
|
|
60
|
-
#define REG_UBACKREF
|
|
61
|
-
#define REG_ULOOKAROUND
|
|
62
|
-
#define REG_UBOUNDS
|
|
63
|
-
#define REG_UBRACES
|
|
64
|
-
#define REG_UBSALNUM
|
|
65
|
-
#define REG_UPBOTCH
|
|
66
|
-
|
|
67
|
-
#define
|
|
68
|
-
#define
|
|
69
|
-
#define
|
|
70
|
-
|
|
71
|
-
#define
|
|
72
|
-
#define
|
|
73
|
-
#define
|
|
59
|
+
long re_info; /* bitmask of the following flags: */
|
|
60
|
+
#define REG_UBACKREF 000001 /* has back-reference (\n) */
|
|
61
|
+
#define REG_ULOOKAROUND 000002 /* has lookahead/lookbehind constraint */
|
|
62
|
+
#define REG_UBOUNDS 000004 /* has bounded quantifier ({m,n}) */
|
|
63
|
+
#define REG_UBRACES 000010 /* has { that doesn't begin a quantifier */
|
|
64
|
+
#define REG_UBSALNUM 000020 /* has backslash-alphanumeric in non-ARE */
|
|
65
|
+
#define REG_UPBOTCH 000040 /* has unmatched right paren in ERE (legal
|
|
66
|
+
* per spec, but that was a mistake) */
|
|
67
|
+
#define REG_UBBS 000100 /* has backslash within bracket expr */
|
|
68
|
+
#define REG_UNONPOSIX 000200 /* has any construct that extends POSIX */
|
|
69
|
+
#define REG_UUNSPEC 000400 /* has any case disallowed by POSIX, e.g.
|
|
70
|
+
* an empty branch */
|
|
71
|
+
#define REG_UUNPORT 001000 /* has numeric character code dependency */
|
|
72
|
+
#define REG_ULOCALE 002000 /* has locale dependency */
|
|
73
|
+
#define REG_UEMPTYMATCH 004000 /* can match a zero-length string */
|
|
74
|
+
#define REG_UIMPOSSIBLE 010000 /* provably cannot match anything */
|
|
75
|
+
#define REG_USHORTEST 020000 /* has non-greedy quantifier */
|
|
74
76
|
int re_csize; /* sizeof(character) */
|
|
75
77
|
char *re_endp; /* backward compatibility kludge */
|
|
76
78
|
Oid re_collation; /* Collation that defines LC_CTYPE behavior */
|
|
@@ -104,7 +106,7 @@ typedef struct
|
|
|
104
106
|
#define REG_QUOTE 000004 /* no special characters, none */
|
|
105
107
|
#define REG_NOSPEC REG_QUOTE /* historical synonym */
|
|
106
108
|
#define REG_ICASE 000010 /* ignore case */
|
|
107
|
-
#define REG_NOSUB 000020 /*
|
|
109
|
+
#define REG_NOSUB 000020 /* caller doesn't need subexpr match data */
|
|
108
110
|
#define REG_EXPANDED 000040 /* expanded format, white space & comments */
|
|
109
111
|
#define REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
|
|
110
112
|
#define REG_NLANCH 000200 /* ^ matches after \n, $ before */
|
|
@@ -154,7 +156,6 @@ typedef struct
|
|
|
154
156
|
#define REG_BADOPT 18 /* invalid embedded option */
|
|
155
157
|
#define REG_ETOOBIG 19 /* regular expression is too complex */
|
|
156
158
|
#define REG_ECOLORS 20 /* too many colors */
|
|
157
|
-
#define REG_CANCEL 21 /* operation cancelled */
|
|
158
159
|
/* two specials for debugging and testing */
|
|
159
160
|
#define REG_ATOI 101 /* convert error-code name to number */
|
|
160
161
|
#define REG_ITOA 102 /* convert error-code number to name */
|
|
@@ -169,11 +170,15 @@ typedef struct
|
|
|
169
170
|
*/
|
|
170
171
|
|
|
171
172
|
/* regcomp.c */
|
|
172
|
-
extern int pg_regcomp(regex_t
|
|
173
|
-
|
|
174
|
-
extern int
|
|
175
|
-
|
|
176
|
-
|
|
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);
|
|
177
182
|
|
|
178
183
|
/* regexp.c */
|
|
179
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
|
*
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
#ifndef LOGICALLAUNCHER_H
|
|
13
13
|
#define LOGICALLAUNCHER_H
|
|
14
14
|
|
|
15
|
-
extern int
|
|
16
|
-
extern int
|
|
15
|
+
extern PGDLLIMPORT int max_logical_replication_workers;
|
|
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,11 +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
|
-
extern bool XactManipulatesLogicalReplicationWorkers(void);
|
|
26
28
|
extern void AtEOXact_ApplyLauncher(bool isCommit);
|
|
27
|
-
extern void AtEOSubXact_ApplyLauncher(bool isCommit, int nestDepth);
|
|
28
29
|
|
|
29
30
|
extern bool IsLogicalLauncher(void);
|
|
30
31
|
|
|
32
|
+
extern pid_t GetLeaderApplyWorkerPid(pid_t pid);
|
|
33
|
+
|
|
31
34
|
#endif /* LOGICALLAUNCHER_H */
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/*-------------------------------------------------------------------------
|
|
2
|
+
*
|
|
3
|
+
* logicalproto.h
|
|
4
|
+
* logical replication protocol
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2015-2023, PostgreSQL Global Development Group
|
|
7
|
+
*
|
|
8
|
+
* IDENTIFICATION
|
|
9
|
+
* src/include/replication/logicalproto.h
|
|
10
|
+
*
|
|
11
|
+
*-------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
#ifndef LOGICAL_PROTO_H
|
|
14
|
+
#define LOGICAL_PROTO_H
|
|
15
|
+
|
|
16
|
+
#include "access/xact.h"
|
|
17
|
+
#include "executor/tuptable.h"
|
|
18
|
+
#include "replication/reorderbuffer.h"
|
|
19
|
+
#include "utils/rel.h"
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* Protocol capabilities
|
|
23
|
+
*
|
|
24
|
+
* LOGICALREP_PROTO_VERSION_NUM is our native protocol.
|
|
25
|
+
* LOGICALREP_PROTO_MAX_VERSION_NUM is the greatest version we can support.
|
|
26
|
+
* LOGICALREP_PROTO_MIN_VERSION_NUM is the oldest version we
|
|
27
|
+
* have backwards compatibility for. The client requests protocol version at
|
|
28
|
+
* connect time.
|
|
29
|
+
*
|
|
30
|
+
* LOGICALREP_PROTO_STREAM_VERSION_NUM is the minimum protocol version with
|
|
31
|
+
* support for streaming large transactions. Introduced in PG14.
|
|
32
|
+
*
|
|
33
|
+
* LOGICALREP_PROTO_TWOPHASE_VERSION_NUM is the minimum protocol version with
|
|
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.
|
|
39
|
+
*/
|
|
40
|
+
#define LOGICALREP_PROTO_MIN_VERSION_NUM 1
|
|
41
|
+
#define LOGICALREP_PROTO_VERSION_NUM 1
|
|
42
|
+
#define LOGICALREP_PROTO_STREAM_VERSION_NUM 2
|
|
43
|
+
#define LOGICALREP_PROTO_TWOPHASE_VERSION_NUM 3
|
|
44
|
+
#define LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM 4
|
|
45
|
+
#define LOGICALREP_PROTO_MAX_VERSION_NUM LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* Logical message types
|
|
49
|
+
*
|
|
50
|
+
* Used by logical replication wire protocol.
|
|
51
|
+
*
|
|
52
|
+
* Note: though this is an enum, the values are used to identify message types
|
|
53
|
+
* in logical replication protocol, which uses a single byte to identify a
|
|
54
|
+
* message type. Hence the values should be single-byte wide and preferably
|
|
55
|
+
* human-readable characters.
|
|
56
|
+
*/
|
|
57
|
+
typedef enum LogicalRepMsgType
|
|
58
|
+
{
|
|
59
|
+
LOGICAL_REP_MSG_BEGIN = 'B',
|
|
60
|
+
LOGICAL_REP_MSG_COMMIT = 'C',
|
|
61
|
+
LOGICAL_REP_MSG_ORIGIN = 'O',
|
|
62
|
+
LOGICAL_REP_MSG_INSERT = 'I',
|
|
63
|
+
LOGICAL_REP_MSG_UPDATE = 'U',
|
|
64
|
+
LOGICAL_REP_MSG_DELETE = 'D',
|
|
65
|
+
LOGICAL_REP_MSG_TRUNCATE = 'T',
|
|
66
|
+
LOGICAL_REP_MSG_RELATION = 'R',
|
|
67
|
+
LOGICAL_REP_MSG_TYPE = 'Y',
|
|
68
|
+
LOGICAL_REP_MSG_MESSAGE = 'M',
|
|
69
|
+
LOGICAL_REP_MSG_BEGIN_PREPARE = 'b',
|
|
70
|
+
LOGICAL_REP_MSG_PREPARE = 'P',
|
|
71
|
+
LOGICAL_REP_MSG_COMMIT_PREPARED = 'K',
|
|
72
|
+
LOGICAL_REP_MSG_ROLLBACK_PREPARED = 'r',
|
|
73
|
+
LOGICAL_REP_MSG_STREAM_START = 'S',
|
|
74
|
+
LOGICAL_REP_MSG_STREAM_STOP = 'E',
|
|
75
|
+
LOGICAL_REP_MSG_STREAM_COMMIT = 'c',
|
|
76
|
+
LOGICAL_REP_MSG_STREAM_ABORT = 'A',
|
|
77
|
+
LOGICAL_REP_MSG_STREAM_PREPARE = 'p'
|
|
78
|
+
} LogicalRepMsgType;
|
|
79
|
+
|
|
80
|
+
/*
|
|
81
|
+
* This struct stores a tuple received via logical replication.
|
|
82
|
+
* Keep in mind that the columns correspond to the *remote* table.
|
|
83
|
+
*/
|
|
84
|
+
typedef struct LogicalRepTupleData
|
|
85
|
+
{
|
|
86
|
+
/* Array of StringInfos, one per column; some may be unused */
|
|
87
|
+
StringInfoData *colvalues;
|
|
88
|
+
/* Array of markers for null/unchanged/text/binary, one per column */
|
|
89
|
+
char *colstatus;
|
|
90
|
+
/* Length of above arrays */
|
|
91
|
+
int ncols;
|
|
92
|
+
} LogicalRepTupleData;
|
|
93
|
+
|
|
94
|
+
/* Possible values for LogicalRepTupleData.colstatus[colnum] */
|
|
95
|
+
/* These values are also used in the on-the-wire protocol */
|
|
96
|
+
#define LOGICALREP_COLUMN_NULL 'n'
|
|
97
|
+
#define LOGICALREP_COLUMN_UNCHANGED 'u'
|
|
98
|
+
#define LOGICALREP_COLUMN_TEXT 't'
|
|
99
|
+
#define LOGICALREP_COLUMN_BINARY 'b' /* added in PG14 */
|
|
100
|
+
|
|
101
|
+
typedef uint32 LogicalRepRelId;
|
|
102
|
+
|
|
103
|
+
/* Relation information */
|
|
104
|
+
typedef struct LogicalRepRelation
|
|
105
|
+
{
|
|
106
|
+
/* Info coming from the remote side. */
|
|
107
|
+
LogicalRepRelId remoteid; /* unique id of the relation */
|
|
108
|
+
char *nspname; /* schema name */
|
|
109
|
+
char *relname; /* relation name */
|
|
110
|
+
int natts; /* number of columns */
|
|
111
|
+
char **attnames; /* column names */
|
|
112
|
+
Oid *atttyps; /* column types */
|
|
113
|
+
char replident; /* replica identity */
|
|
114
|
+
char relkind; /* remote relation kind */
|
|
115
|
+
Bitmapset *attkeys; /* Bitmap of key columns */
|
|
116
|
+
} LogicalRepRelation;
|
|
117
|
+
|
|
118
|
+
/* Type mapping info */
|
|
119
|
+
typedef struct LogicalRepTyp
|
|
120
|
+
{
|
|
121
|
+
Oid remoteid; /* unique id of the remote type */
|
|
122
|
+
char *nspname; /* schema name of remote type */
|
|
123
|
+
char *typname; /* name of the remote type */
|
|
124
|
+
} LogicalRepTyp;
|
|
125
|
+
|
|
126
|
+
/* Transaction info */
|
|
127
|
+
typedef struct LogicalRepBeginData
|
|
128
|
+
{
|
|
129
|
+
XLogRecPtr final_lsn;
|
|
130
|
+
TimestampTz committime;
|
|
131
|
+
TransactionId xid;
|
|
132
|
+
} LogicalRepBeginData;
|
|
133
|
+
|
|
134
|
+
typedef struct LogicalRepCommitData
|
|
135
|
+
{
|
|
136
|
+
XLogRecPtr commit_lsn;
|
|
137
|
+
XLogRecPtr end_lsn;
|
|
138
|
+
TimestampTz committime;
|
|
139
|
+
} LogicalRepCommitData;
|
|
140
|
+
|
|
141
|
+
/*
|
|
142
|
+
* Prepared transaction protocol information for begin_prepare, and prepare.
|
|
143
|
+
*/
|
|
144
|
+
typedef struct LogicalRepPreparedTxnData
|
|
145
|
+
{
|
|
146
|
+
XLogRecPtr prepare_lsn;
|
|
147
|
+
XLogRecPtr end_lsn;
|
|
148
|
+
TimestampTz prepare_time;
|
|
149
|
+
TransactionId xid;
|
|
150
|
+
char gid[GIDSIZE];
|
|
151
|
+
} LogicalRepPreparedTxnData;
|
|
152
|
+
|
|
153
|
+
/*
|
|
154
|
+
* Prepared transaction protocol information for commit prepared.
|
|
155
|
+
*/
|
|
156
|
+
typedef struct LogicalRepCommitPreparedTxnData
|
|
157
|
+
{
|
|
158
|
+
XLogRecPtr commit_lsn;
|
|
159
|
+
XLogRecPtr end_lsn;
|
|
160
|
+
TimestampTz commit_time;
|
|
161
|
+
TransactionId xid;
|
|
162
|
+
char gid[GIDSIZE];
|
|
163
|
+
} LogicalRepCommitPreparedTxnData;
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
* Rollback Prepared transaction protocol information. The prepare information
|
|
167
|
+
* prepare_end_lsn and prepare_time are used to check if the downstream has
|
|
168
|
+
* received this prepared transaction in which case it can apply the rollback,
|
|
169
|
+
* otherwise, it can skip the rollback operation. The gid alone is not
|
|
170
|
+
* sufficient because the downstream node can have a prepared transaction with
|
|
171
|
+
* same identifier.
|
|
172
|
+
*/
|
|
173
|
+
typedef struct LogicalRepRollbackPreparedTxnData
|
|
174
|
+
{
|
|
175
|
+
XLogRecPtr prepare_end_lsn;
|
|
176
|
+
XLogRecPtr rollback_end_lsn;
|
|
177
|
+
TimestampTz prepare_time;
|
|
178
|
+
TimestampTz rollback_time;
|
|
179
|
+
TransactionId xid;
|
|
180
|
+
char gid[GIDSIZE];
|
|
181
|
+
} LogicalRepRollbackPreparedTxnData;
|
|
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
|
+
|
|
194
|
+
extern void logicalrep_write_begin(StringInfo out, ReorderBufferTXN *txn);
|
|
195
|
+
extern void logicalrep_read_begin(StringInfo in,
|
|
196
|
+
LogicalRepBeginData *begin_data);
|
|
197
|
+
extern void logicalrep_write_commit(StringInfo out, ReorderBufferTXN *txn,
|
|
198
|
+
XLogRecPtr commit_lsn);
|
|
199
|
+
extern void logicalrep_read_commit(StringInfo in,
|
|
200
|
+
LogicalRepCommitData *commit_data);
|
|
201
|
+
extern void logicalrep_write_begin_prepare(StringInfo out, ReorderBufferTXN *txn);
|
|
202
|
+
extern void logicalrep_read_begin_prepare(StringInfo in,
|
|
203
|
+
LogicalRepPreparedTxnData *begin_data);
|
|
204
|
+
extern void logicalrep_write_prepare(StringInfo out, ReorderBufferTXN *txn,
|
|
205
|
+
XLogRecPtr prepare_lsn);
|
|
206
|
+
extern void logicalrep_read_prepare(StringInfo in,
|
|
207
|
+
LogicalRepPreparedTxnData *prepare_data);
|
|
208
|
+
extern void logicalrep_write_commit_prepared(StringInfo out, ReorderBufferTXN *txn,
|
|
209
|
+
XLogRecPtr commit_lsn);
|
|
210
|
+
extern void logicalrep_read_commit_prepared(StringInfo in,
|
|
211
|
+
LogicalRepCommitPreparedTxnData *prepare_data);
|
|
212
|
+
extern void logicalrep_write_rollback_prepared(StringInfo out, ReorderBufferTXN *txn,
|
|
213
|
+
XLogRecPtr prepare_end_lsn,
|
|
214
|
+
TimestampTz prepare_time);
|
|
215
|
+
extern void logicalrep_read_rollback_prepared(StringInfo in,
|
|
216
|
+
LogicalRepRollbackPreparedTxnData *rollback_data);
|
|
217
|
+
extern void logicalrep_write_stream_prepare(StringInfo out, ReorderBufferTXN *txn,
|
|
218
|
+
XLogRecPtr prepare_lsn);
|
|
219
|
+
extern void logicalrep_read_stream_prepare(StringInfo in,
|
|
220
|
+
LogicalRepPreparedTxnData *prepare_data);
|
|
221
|
+
|
|
222
|
+
extern void logicalrep_write_origin(StringInfo out, const char *origin,
|
|
223
|
+
XLogRecPtr origin_lsn);
|
|
224
|
+
extern char *logicalrep_read_origin(StringInfo in, XLogRecPtr *origin_lsn);
|
|
225
|
+
extern void logicalrep_write_insert(StringInfo out, TransactionId xid,
|
|
226
|
+
Relation rel,
|
|
227
|
+
TupleTableSlot *newslot,
|
|
228
|
+
bool binary, Bitmapset *columns);
|
|
229
|
+
extern LogicalRepRelId logicalrep_read_insert(StringInfo in, LogicalRepTupleData *newtup);
|
|
230
|
+
extern void logicalrep_write_update(StringInfo out, TransactionId xid,
|
|
231
|
+
Relation rel,
|
|
232
|
+
TupleTableSlot *oldslot,
|
|
233
|
+
TupleTableSlot *newslot, bool binary, Bitmapset *columns);
|
|
234
|
+
extern LogicalRepRelId logicalrep_read_update(StringInfo in,
|
|
235
|
+
bool *has_oldtuple, LogicalRepTupleData *oldtup,
|
|
236
|
+
LogicalRepTupleData *newtup);
|
|
237
|
+
extern void logicalrep_write_delete(StringInfo out, TransactionId xid,
|
|
238
|
+
Relation rel, TupleTableSlot *oldslot,
|
|
239
|
+
bool binary, Bitmapset *columns);
|
|
240
|
+
extern LogicalRepRelId logicalrep_read_delete(StringInfo in,
|
|
241
|
+
LogicalRepTupleData *oldtup);
|
|
242
|
+
extern void logicalrep_write_truncate(StringInfo out, TransactionId xid,
|
|
243
|
+
int nrelids, Oid relids[],
|
|
244
|
+
bool cascade, bool restart_seqs);
|
|
245
|
+
extern List *logicalrep_read_truncate(StringInfo in,
|
|
246
|
+
bool *cascade, bool *restart_seqs);
|
|
247
|
+
extern void logicalrep_write_message(StringInfo out, TransactionId xid, XLogRecPtr lsn,
|
|
248
|
+
bool transactional, const char *prefix, Size sz, const char *message);
|
|
249
|
+
extern void logicalrep_write_rel(StringInfo out, TransactionId xid,
|
|
250
|
+
Relation rel, Bitmapset *columns);
|
|
251
|
+
extern LogicalRepRelation *logicalrep_read_rel(StringInfo in);
|
|
252
|
+
extern void logicalrep_write_typ(StringInfo out, TransactionId xid,
|
|
253
|
+
Oid typoid);
|
|
254
|
+
extern void logicalrep_read_typ(StringInfo in, LogicalRepTyp *ltyp);
|
|
255
|
+
extern void logicalrep_write_stream_start(StringInfo out, TransactionId xid,
|
|
256
|
+
bool first_segment);
|
|
257
|
+
extern TransactionId logicalrep_read_stream_start(StringInfo in,
|
|
258
|
+
bool *first_segment);
|
|
259
|
+
extern void logicalrep_write_stream_stop(StringInfo out);
|
|
260
|
+
extern void logicalrep_write_stream_commit(StringInfo out, ReorderBufferTXN *txn,
|
|
261
|
+
XLogRecPtr commit_lsn);
|
|
262
|
+
extern TransactionId logicalrep_read_stream_commit(StringInfo in,
|
|
263
|
+
LogicalRepCommitData *commit_data);
|
|
264
|
+
extern void logicalrep_write_stream_abort(StringInfo out, TransactionId xid,
|
|
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);
|
|
273
|
+
|
|
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 */
|