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.
Files changed (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /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-2020, PostgreSQL Global Development Group
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-2020, PostgreSQL Global Development Group
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
- * Functions called from postmaster
31
- * ----------
32
- */
33
- extern int pgarch_start(void);
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-2020, PostgreSQL Global Development Group
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 ReservedBackends;
17
+ extern PGDLLIMPORT bool EnableSSL;
18
+ extern PGDLLIMPORT int SuperuserReservedConnections;
19
+ extern PGDLLIMPORT int ReservedConnections;
19
20
  extern PGDLLIMPORT int PostPortNumber;
20
- extern int Unix_socket_permissions;
21
- extern char *Unix_socket_group;
22
- extern char *Unix_socket_directories;
23
- extern char *ListenAddresses;
24
- extern __thread bool ClientAuthInProgress;
25
- extern int PreAuthDelay;
26
- extern int AuthenticationTimeout;
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 postmaster_alive_fds[2];
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-2020, PostgreSQL Global Development Group
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
- char is_last; /* last chunk of message? 't' or 'f' ('T' or
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 Log_RotationAge;
67
- extern int Log_RotationSize;
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 Log_file_mode;
75
+ extern PGDLLIMPORT bool Log_truncate_on_rotation;
76
+ extern PGDLLIMPORT int Log_file_mode;
72
77
 
73
78
  #ifndef WIN32
74
- extern int syslogPipe[2];
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 dest);
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-2020, PostgreSQL Global Development Group
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 WalWriterDelay;
17
- extern int WalWriterFlushAfter;
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; /* information about RE */
60
- #define REG_UBACKREF 000001
61
- #define REG_ULOOKAROUND 000002
62
- #define REG_UBOUNDS 000004
63
- #define REG_UBRACES 000010
64
- #define REG_UBSALNUM 000020
65
- #define REG_UPBOTCH 000040
66
- #define REG_UBBS 000100
67
- #define REG_UNONPOSIX 000200
68
- #define REG_UUNSPEC 000400
69
- #define REG_UUNPORT 001000
70
- #define REG_ULOCALE 002000
71
- #define REG_UEMPTYMATCH 004000
72
- #define REG_UIMPOSSIBLE 010000
73
- #define REG_USHORTEST 020000
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 /* don't care about subexpressions */
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 *, const pg_wchar *, size_t, int, Oid);
173
- extern int pg_regexec(regex_t *, const pg_wchar *, size_t, size_t, rm_detail_t *, size_t, regmatch_t[], int);
174
- extern int pg_regprefix(regex_t *, pg_wchar **, size_t *);
175
- extern void pg_regfree(regex_t *);
176
- extern size_t pg_regerror(int, const regex_t *, char *, size_t);
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-2020, PostgreSQL Global Development Group
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 max_logical_replication_workers;
16
- extern int max_sync_workers_per_subscription;
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 */