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
@@ -2,7 +2,7 @@
2
2
  * slot.h
3
3
  * Replication slot management.
4
4
  *
5
- * Copyright (c) 2012-2020, PostgreSQL Global Development Group
5
+ * Copyright (c) 2012-2023, PostgreSQL Global Development Group
6
6
  *
7
7
  *-------------------------------------------------------------------------
8
8
  */
@@ -15,6 +15,7 @@
15
15
  #include "storage/lwlock.h"
16
16
  #include "storage/shmem.h"
17
17
  #include "storage/spin.h"
18
+ #include "replication/walreceiver.h"
18
19
 
19
20
  /*
20
21
  * Behaviour of replication slots, upon release or crash.
@@ -36,13 +37,20 @@ typedef enum ReplicationSlotPersistency
36
37
  RS_TEMPORARY
37
38
  } ReplicationSlotPersistency;
38
39
 
39
- /* For ReplicationSlotAcquire, q.v. */
40
- typedef enum SlotAcquireBehavior
40
+ /*
41
+ * Slots can be invalidated, e.g. due to max_slot_wal_keep_size. If so, the
42
+ * 'invalidated' field is set to a value other than _NONE.
43
+ */
44
+ typedef enum ReplicationSlotInvalidationCause
41
45
  {
42
- SAB_Error,
43
- SAB_Block,
44
- SAB_Inquire
45
- } SlotAcquireBehavior;
46
+ RS_INVAL_NONE,
47
+ /* required WAL has been removed */
48
+ RS_INVAL_WAL_REMOVED,
49
+ /* required rows have been removed */
50
+ RS_INVAL_HORIZON,
51
+ /* wal_level insufficient for slot */
52
+ RS_INVAL_WAL_LEVEL,
53
+ } ReplicationSlotInvalidationCause;
46
54
 
47
55
  /*
48
56
  * On-Disk data of a replication slot, preserved across restarts.
@@ -79,8 +87,8 @@ typedef struct ReplicationSlotPersistentData
79
87
  /* oldest LSN that might be required by this replication slot */
80
88
  XLogRecPtr restart_lsn;
81
89
 
82
- /* restart_lsn is copied here when the slot is invalidated */
83
- XLogRecPtr invalidated_at;
90
+ /* RS_INVAL_NONE if valid, or the reason for having been invalidated */
91
+ ReplicationSlotInvalidationCause invalidated;
84
92
 
85
93
  /*
86
94
  * Oldest LSN that the client has acked receipt for. This is used as the
@@ -90,6 +98,17 @@ typedef struct ReplicationSlotPersistentData
90
98
  */
91
99
  XLogRecPtr confirmed_flush;
92
100
 
101
+ /*
102
+ * LSN at which we enabled two_phase commit for this slot or LSN at which
103
+ * we found a consistent point at the time of slot creation.
104
+ */
105
+ XLogRecPtr two_phase_at;
106
+
107
+ /*
108
+ * Allow decoding of prepared transactions?
109
+ */
110
+ bool two_phase;
111
+
93
112
  /* plugin name */
94
113
  NameData plugin;
95
114
  } ReplicationSlotPersistentData;
@@ -191,17 +210,19 @@ extern void ReplicationSlotsShmemInit(void);
191
210
 
192
211
  /* management of individual slots */
193
212
  extern void ReplicationSlotCreate(const char *name, bool db_specific,
194
- ReplicationSlotPersistency p);
213
+ ReplicationSlotPersistency persistency,
214
+ bool two_phase);
195
215
  extern void ReplicationSlotPersist(void);
196
216
  extern void ReplicationSlotDrop(const char *name, bool nowait);
197
217
 
198
- extern int ReplicationSlotAcquire(const char *name, SlotAcquireBehavior behavior);
218
+ extern void ReplicationSlotAcquire(const char *name, bool nowait);
199
219
  extern void ReplicationSlotRelease(void);
200
220
  extern void ReplicationSlotCleanup(void);
201
221
  extern void ReplicationSlotSave(void);
202
222
  extern void ReplicationSlotMarkDirty(void);
203
223
 
204
224
  /* misc stuff */
225
+ extern void ReplicationSlotInitialize(void);
205
226
  extern bool ReplicationSlotValidateName(const char *name, int elevel);
206
227
  extern void ReplicationSlotReserveWal(void);
207
228
  extern void ReplicationSlotsComputeRequiredXmin(bool already_locked);
@@ -209,11 +230,20 @@ extern void ReplicationSlotsComputeRequiredLSN(void);
209
230
  extern XLogRecPtr ReplicationSlotsComputeLogicalRestartLSN(void);
210
231
  extern bool ReplicationSlotsCountDBSlots(Oid dboid, int *nslots, int *nactive);
211
232
  extern void ReplicationSlotsDropDBSlots(Oid dboid);
212
- extern void InvalidateObsoleteReplicationSlots(XLogSegNo oldestSegno);
233
+ extern bool InvalidateObsoleteReplicationSlots(ReplicationSlotInvalidationCause cause,
234
+ XLogSegNo oldestSegno,
235
+ Oid dboid,
236
+ TransactionId snapshotConflictHorizon);
237
+ extern ReplicationSlot *SearchNamedReplicationSlot(const char *name, bool need_lock);
238
+ extern int ReplicationSlotIndex(ReplicationSlot *slot);
239
+ extern bool ReplicationSlotName(int index, Name name);
240
+ extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, Size szslot);
241
+ extern void ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok);
213
242
 
214
243
  extern void StartupReplicationSlots(void);
215
244
  extern void CheckPointReplicationSlots(void);
216
245
 
217
246
  extern void CheckSlotRequirements(void);
247
+ extern void CheckSlotPermissions(void);
218
248
 
219
249
  #endif /* SLOT_H */
@@ -3,7 +3,7 @@
3
3
  * syncrep.h
4
4
  * Exports from replication/syncrep.c.
5
5
  *
6
- * Portions Copyright (c) 2010-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2010-2023, PostgreSQL Global Development Group
7
7
  *
8
8
  * IDENTIFICATION
9
9
  * src/include/replication/syncrep.h
@@ -14,7 +14,6 @@
14
14
  #define _SYNCREP_H
15
15
 
16
16
  #include "access/xlogdefs.h"
17
- #include "utils/guc.h"
18
17
 
19
18
  #define SyncRepRequested() \
20
19
  (max_wal_senders > 0 && synchronous_commit > SYNCHRONOUS_COMMIT_LOCAL_FLUSH)
@@ -72,14 +71,14 @@ typedef struct SyncRepConfigData
72
71
  char member_names[FLEXIBLE_ARRAY_MEMBER];
73
72
  } SyncRepConfigData;
74
73
 
75
- extern SyncRepConfigData *SyncRepConfig;
74
+ extern PGDLLIMPORT SyncRepConfigData *SyncRepConfig;
76
75
 
77
76
  /* communication variables for parsing synchronous_standby_names GUC */
78
- extern SyncRepConfigData *syncrep_parse_result;
79
- extern char *syncrep_parse_error_msg;
77
+ extern PGDLLIMPORT SyncRepConfigData *syncrep_parse_result;
78
+ extern PGDLLIMPORT char *syncrep_parse_error_msg;
80
79
 
81
80
  /* user-settable parameters for synchronous replication */
82
- extern char *SyncRepStandbyNames;
81
+ extern PGDLLIMPORT char *SyncRepStandbyNames;
83
82
 
84
83
  /* called by user backend */
85
84
  extern void SyncRepWaitForLSN(XLogRecPtr lsn, bool commit);
@@ -97,11 +96,6 @@ extern int SyncRepGetCandidateStandbys(SyncRepStandbyData **standbys);
97
96
  /* called by checkpointer */
98
97
  extern void SyncRepUpdateSyncStandbysDefined(void);
99
98
 
100
- /* GUC infrastructure */
101
- extern bool check_synchronous_standby_names(char **newval, void **extra, GucSource source);
102
- extern void assign_synchronous_standby_names(const char *newval, void *extra);
103
- extern void assign_synchronous_commit(int newval, void *extra);
104
-
105
99
  /*
106
100
  * Internal functions for parsing synchronous_standby_names grammar,
107
101
  * in syncrep_gram.y and syncrep_scanner.l
@@ -109,7 +103,7 @@ extern void assign_synchronous_commit(int newval, void *extra);
109
103
  extern int syncrep_yyparse(void);
110
104
  extern int syncrep_yylex(void);
111
105
  extern void syncrep_yyerror(const char *str);
112
- extern void syncrep_scanner_init(const char *query_string);
106
+ extern void syncrep_scanner_init(const char *str);
113
107
  extern void syncrep_scanner_finish(void);
114
108
 
115
109
  #endif /* _SYNCREP_H */
@@ -3,7 +3,7 @@
3
3
  * walreceiver.h
4
4
  * Exports from replication/walreceiverfuncs.c.
5
5
  *
6
- * Portions Copyright (c) 2010-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2010-2023, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/replication/walreceiver.h
9
9
  *
@@ -12,21 +12,24 @@
12
12
  #ifndef _WALRECEIVER_H
13
13
  #define _WALRECEIVER_H
14
14
 
15
+ #include <netdb.h>
16
+ #include <sys/socket.h>
17
+
15
18
  #include "access/xlog.h"
16
19
  #include "access/xlogdefs.h"
17
- #include "getaddrinfo.h" /* for NI_MAXHOST */
18
20
  #include "pgtime.h"
19
21
  #include "port/atomics.h"
20
22
  #include "replication/logicalproto.h"
21
23
  #include "replication/walsender.h"
24
+ #include "storage/condition_variable.h"
22
25
  #include "storage/latch.h"
23
26
  #include "storage/spin.h"
24
27
  #include "utils/tuplestore.h"
25
28
 
26
29
  /* user-settable parameters */
27
- extern int wal_receiver_status_interval;
28
- extern int wal_receiver_timeout;
29
- extern bool hot_standby_feedback;
30
+ extern PGDLLIMPORT int wal_receiver_status_interval;
31
+ extern PGDLLIMPORT int wal_receiver_timeout;
32
+ extern PGDLLIMPORT bool hot_standby_feedback;
30
33
 
31
34
  /*
32
35
  * MAXCONNINFO: maximum size of a connection string.
@@ -62,6 +65,7 @@ typedef struct
62
65
  */
63
66
  pid_t pid;
64
67
  WalRcvState walRcvState;
68
+ ConditionVariable walRcvStoppedCV;
65
69
  pg_time_t startTime;
66
70
 
67
71
  /*
@@ -158,7 +162,7 @@ typedef struct
158
162
  sig_atomic_t force_reply; /* used as a bool */
159
163
  } WalRcvData;
160
164
 
161
- extern WalRcvData *WalRcv;
165
+ extern PGDLLIMPORT WalRcvData *WalRcv;
162
166
 
163
167
  typedef struct
164
168
  {
@@ -177,6 +181,12 @@ typedef struct
177
181
  {
178
182
  uint32 proto_version; /* Logical protocol version */
179
183
  List *publication_names; /* String list of publications */
184
+ bool binary; /* Ask publisher to use binary */
185
+ char *streaming_str; /* Streaming of large transactions */
186
+ bool twophase; /* Streaming of two-phase transactions at
187
+ * prepare time */
188
+ char *origin; /* Only publish data originating from the
189
+ * specified origin */
180
190
  } logical;
181
191
  } proto;
182
192
  } WalRcvStreamOptions;
@@ -208,44 +218,172 @@ typedef enum
208
218
  typedef struct WalRcvExecResult
209
219
  {
210
220
  WalRcvExecStatus status;
221
+ int sqlstate;
211
222
  char *err;
212
223
  Tuplestorestate *tuplestore;
213
224
  TupleDesc tupledesc;
214
225
  } WalRcvExecResult;
215
226
 
216
- /* libpqwalreceiver hooks */
217
- typedef WalReceiverConn *(*walrcv_connect_fn) (const char *conninfo, bool logical,
227
+ /* WAL receiver - libpqwalreceiver hooks */
228
+
229
+ /*
230
+ * walrcv_connect_fn
231
+ *
232
+ * Establish connection to a cluster. 'logical' is true if the
233
+ * connection is logical, and false if the connection is physical.
234
+ * 'appname' is a name associated to the connection, to use for example
235
+ * with fallback_application_name or application_name. Returns the
236
+ * details about the connection established, as defined by
237
+ * WalReceiverConn for each WAL receiver module. On error, NULL is
238
+ * returned with 'err' including the error generated.
239
+ */
240
+ typedef WalReceiverConn *(*walrcv_connect_fn) (const char *conninfo,
241
+ bool logical,
242
+ bool must_use_password,
218
243
  const char *appname,
219
244
  char **err);
220
- typedef void (*walrcv_check_conninfo_fn) (const char *conninfo);
245
+
246
+ /*
247
+ * walrcv_check_conninfo_fn
248
+ *
249
+ * Parse and validate the connection string given as of 'conninfo'.
250
+ */
251
+ typedef void (*walrcv_check_conninfo_fn) (const char *conninfo,
252
+ bool must_use_password);
253
+
254
+ /*
255
+ * walrcv_get_conninfo_fn
256
+ *
257
+ * Returns a user-displayable conninfo string. Note that any
258
+ * security-sensitive fields should be obfuscated.
259
+ */
221
260
  typedef char *(*walrcv_get_conninfo_fn) (WalReceiverConn *conn);
261
+
262
+ /*
263
+ * walrcv_get_senderinfo_fn
264
+ *
265
+ * Provide information of the WAL sender this WAL receiver is connected
266
+ * to, as of 'sender_host' for the host of the sender and 'sender_port'
267
+ * for its port.
268
+ */
222
269
  typedef void (*walrcv_get_senderinfo_fn) (WalReceiverConn *conn,
223
270
  char **sender_host,
224
271
  int *sender_port);
272
+
273
+ /*
274
+ * walrcv_identify_system_fn
275
+ *
276
+ * Run IDENTIFY_SYSTEM on the cluster connected to and validate the
277
+ * identity of the cluster. Returns the system ID of the cluster
278
+ * connected to. 'primary_tli' is the timeline ID of the sender.
279
+ */
225
280
  typedef char *(*walrcv_identify_system_fn) (WalReceiverConn *conn,
226
281
  TimeLineID *primary_tli);
282
+
283
+ /*
284
+ * walrcv_server_version_fn
285
+ *
286
+ * Returns the version number of the cluster connected to.
287
+ */
227
288
  typedef int (*walrcv_server_version_fn) (WalReceiverConn *conn);
289
+
290
+ /*
291
+ * walrcv_readtimelinehistoryfile_fn
292
+ *
293
+ * Fetch from cluster the timeline history file for timeline 'tli'.
294
+ * Returns the name of the timeline history file as of 'filename', its
295
+ * contents as of 'content' and its 'size'.
296
+ */
228
297
  typedef void (*walrcv_readtimelinehistoryfile_fn) (WalReceiverConn *conn,
229
298
  TimeLineID tli,
230
299
  char **filename,
231
- char **content, int *size);
300
+ char **content,
301
+ int *size);
302
+
303
+ /*
304
+ * walrcv_startstreaming_fn
305
+ *
306
+ * Start streaming WAL data from given streaming options. Returns true
307
+ * if the connection has switched successfully to copy-both mode and false
308
+ * if the server received the command and executed it successfully, but
309
+ * didn't switch to copy-mode.
310
+ */
232
311
  typedef bool (*walrcv_startstreaming_fn) (WalReceiverConn *conn,
233
312
  const WalRcvStreamOptions *options);
313
+
314
+ /*
315
+ * walrcv_endstreaming_fn
316
+ *
317
+ * Stop streaming of WAL data. Returns the next timeline ID of the cluster
318
+ * connected to in 'next_tli', or 0 if there was no report.
319
+ */
234
320
  typedef void (*walrcv_endstreaming_fn) (WalReceiverConn *conn,
235
321
  TimeLineID *next_tli);
236
- typedef int (*walrcv_receive_fn) (WalReceiverConn *conn, char **buffer,
322
+
323
+ /*
324
+ * walrcv_receive_fn
325
+ *
326
+ * Receive a message available from the WAL stream. 'buffer' is a pointer
327
+ * to a buffer holding the message received. Returns the length of the data,
328
+ * 0 if no data is available yet ('wait_fd' is a socket descriptor which can
329
+ * be waited on before a retry), and -1 if the cluster ended the COPY.
330
+ */
331
+ typedef int (*walrcv_receive_fn) (WalReceiverConn *conn,
332
+ char **buffer,
237
333
  pgsocket *wait_fd);
238
- typedef void (*walrcv_send_fn) (WalReceiverConn *conn, const char *buffer,
334
+
335
+ /*
336
+ * walrcv_send_fn
337
+ *
338
+ * Send a message of size 'nbytes' to the WAL stream with 'buffer' as
339
+ * contents.
340
+ */
341
+ typedef void (*walrcv_send_fn) (WalReceiverConn *conn,
342
+ const char *buffer,
239
343
  int nbytes);
344
+
345
+ /*
346
+ * walrcv_create_slot_fn
347
+ *
348
+ * Create a new replication slot named 'slotname'. 'temporary' defines
349
+ * if the slot is temporary. 'snapshot_action' defines the behavior wanted
350
+ * for an exported snapshot (see replication protocol for more details).
351
+ * 'lsn' includes the LSN position at which the created slot became
352
+ * consistent. Returns the name of the exported snapshot for a logical
353
+ * slot, or NULL for a physical slot.
354
+ */
240
355
  typedef char *(*walrcv_create_slot_fn) (WalReceiverConn *conn,
241
- const char *slotname, bool temporary,
356
+ const char *slotname,
357
+ bool temporary,
358
+ bool two_phase,
242
359
  CRSSnapshotAction snapshot_action,
243
360
  XLogRecPtr *lsn);
361
+
362
+ /*
363
+ * walrcv_get_backend_pid_fn
364
+ *
365
+ * Returns the PID of the remote backend process.
366
+ */
244
367
  typedef pid_t (*walrcv_get_backend_pid_fn) (WalReceiverConn *conn);
368
+
369
+ /*
370
+ * walrcv_exec_fn
371
+ *
372
+ * Send generic queries (and commands) to the remote cluster. 'nRetTypes'
373
+ * is the expected number of returned attributes, and 'retTypes' an array
374
+ * including their type OIDs. Returns the status of the execution and
375
+ * tuples if any.
376
+ */
245
377
  typedef WalRcvExecResult *(*walrcv_exec_fn) (WalReceiverConn *conn,
246
378
  const char *query,
247
379
  const int nRetTypes,
248
380
  const Oid *retTypes);
381
+
382
+ /*
383
+ * walrcv_disconnect_fn
384
+ *
385
+ * Disconnect with the cluster.
386
+ */
249
387
  typedef void (*walrcv_disconnect_fn) (WalReceiverConn *conn);
250
388
 
251
389
  typedef struct WalReceiverFunctionsType
@@ -269,10 +407,10 @@ typedef struct WalReceiverFunctionsType
269
407
 
270
408
  extern PGDLLIMPORT WalReceiverFunctionsType *WalReceiverFunctions;
271
409
 
272
- #define walrcv_connect(conninfo, logical, appname, err) \
273
- WalReceiverFunctions->walrcv_connect(conninfo, logical, appname, err)
274
- #define walrcv_check_conninfo(conninfo) \
275
- WalReceiverFunctions->walrcv_check_conninfo(conninfo)
410
+ #define walrcv_connect(conninfo, logical, must_use_password, appname, err) \
411
+ WalReceiverFunctions->walrcv_connect(conninfo, logical, must_use_password, appname, err)
412
+ #define walrcv_check_conninfo(conninfo, must_use_password) \
413
+ WalReceiverFunctions->walrcv_check_conninfo(conninfo, must_use_password)
276
414
  #define walrcv_get_conninfo(conn) \
277
415
  WalReceiverFunctions->walrcv_get_conninfo(conn)
278
416
  #define walrcv_get_senderinfo(conn, sender_host, sender_port) \
@@ -291,8 +429,8 @@ extern PGDLLIMPORT WalReceiverFunctionsType *WalReceiverFunctions;
291
429
  WalReceiverFunctions->walrcv_receive(conn, buffer, wait_fd)
292
430
  #define walrcv_send(conn, buffer, nbytes) \
293
431
  WalReceiverFunctions->walrcv_send(conn, buffer, nbytes)
294
- #define walrcv_create_slot(conn, slotname, temporary, snapshot_action, lsn) \
295
- WalReceiverFunctions->walrcv_create_slot(conn, slotname, temporary, snapshot_action, lsn)
432
+ #define walrcv_create_slot(conn, slotname, temporary, two_phase, snapshot_action, lsn) \
433
+ WalReceiverFunctions->walrcv_create_slot(conn, slotname, temporary, two_phase, snapshot_action, lsn)
296
434
  #define walrcv_get_backend_pid(conn) \
297
435
  WalReceiverFunctions->walrcv_get_backend_pid(conn)
298
436
  #define walrcv_exec(conn, exec, nRetTypes, retTypes) \
@@ -321,6 +459,7 @@ walrcv_clear_result(WalRcvExecResult *walres)
321
459
  /* prototypes for functions in walreceiver.c */
322
460
  extern void WalReceiverMain(void) pg_attribute_noreturn();
323
461
  extern void ProcessWalRcvInterrupts(void);
462
+ extern void WalRcvForceReply(void);
324
463
 
325
464
  /* prototypes for functions in walreceiverfuncs.c */
326
465
  extern Size WalRcvShmemSize(void);
@@ -335,6 +474,5 @@ extern XLogRecPtr GetWalRcvFlushRecPtr(XLogRecPtr *latestChunkStart, TimeLineID
335
474
  extern XLogRecPtr GetWalRcvWriteRecPtr(void);
336
475
  extern int GetReplicationApplyDelay(void);
337
476
  extern int GetReplicationTransferLatency(void);
338
- extern void WalRcvForceReply(void);
339
477
 
340
478
  #endif /* _WALRECEIVER_H */
@@ -3,7 +3,7 @@
3
3
  * walsender.h
4
4
  * Exports from replication/walsender.c.
5
5
  *
6
- * Portions Copyright (c) 2010-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2010-2023, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/replication/walsender.h
9
9
  *
@@ -25,24 +25,24 @@ typedef enum
25
25
  } CRSSnapshotAction;
26
26
 
27
27
  /* global state */
28
- extern bool am_walsender;
29
- extern bool am_cascading_walsender;
30
- extern bool am_db_walsender;
31
- extern bool wake_wal_senders;
28
+ extern PGDLLIMPORT bool am_walsender;
29
+ extern PGDLLIMPORT bool am_cascading_walsender;
30
+ extern PGDLLIMPORT bool am_db_walsender;
31
+ extern PGDLLIMPORT bool wake_wal_senders;
32
32
 
33
33
  /* user-settable parameters */
34
- extern int max_wal_senders;
35
- extern int wal_sender_timeout;
36
- extern bool log_replication_commands;
34
+ extern PGDLLIMPORT int max_wal_senders;
35
+ extern PGDLLIMPORT int wal_sender_timeout;
36
+ extern PGDLLIMPORT bool log_replication_commands;
37
37
 
38
38
  extern void InitWalSender(void);
39
- extern bool exec_replication_command(const char *query_string);
39
+ extern bool exec_replication_command(const char *cmd_string);
40
40
  extern void WalSndErrorCleanup(void);
41
41
  extern void WalSndResourceCleanup(bool isCommit);
42
42
  extern void WalSndSignals(void);
43
43
  extern Size WalSndShmemSize(void);
44
44
  extern void WalSndShmemInit(void);
45
- extern void WalSndWakeup(void);
45
+ extern void WalSndWakeup(bool physical, bool logical);
46
46
  extern void WalSndInitStopping(void);
47
47
  extern void WalSndWaitStopping(void);
48
48
  extern void HandleWalSndInitStopping(void);
@@ -60,15 +60,15 @@ extern void WalSndRqstFileReload(void);
60
60
  /*
61
61
  * wakeup walsenders if there is work to be done
62
62
  */
63
- #define WalSndWakeupProcessRequests() \
64
- do \
65
- { \
66
- if (wake_wal_senders) \
67
- { \
68
- wake_wal_senders = false; \
69
- if (max_wal_senders > 0) \
70
- WalSndWakeup(); \
71
- } \
72
- } while (0)
63
+ static inline void
64
+ WalSndWakeupProcessRequests(bool physical, bool logical)
65
+ {
66
+ if (wake_wal_senders)
67
+ {
68
+ wake_wal_senders = false;
69
+ if (max_wal_senders > 0)
70
+ WalSndWakeup(physical, logical);
71
+ }
72
+ }
73
73
 
74
74
  #endif /* _WALSENDER_H */
@@ -3,7 +3,7 @@
3
3
  * prs2lock.h
4
4
  * data structures for POSTGRES Rule System II (rewrite rules only)
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/rewrite/prs2lock.h
@@ -4,7 +4,7 @@
4
4
  * External interface to query rewriter.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/rewrite/rewriteHandler.h
@@ -23,11 +23,6 @@ extern void AcquireRewriteLocks(Query *parsetree,
23
23
  bool forUpdatePushedDown);
24
24
 
25
25
  extern Node *build_column_default(Relation rel, int attrno);
26
- extern void rewriteTargetListUD(Query *parsetree, RangeTblEntry *target_rte,
27
- Relation target_relation);
28
-
29
- extern void fill_extraUpdatedCols(RangeTblEntry *target_rte,
30
- Relation target_relation);
31
26
 
32
27
  extern Query *get_view_query(Relation view);
33
28
  extern const char *view_query_is_auto_updatable(Query *viewquery,
@@ -4,7 +4,7 @@
4
4
  * Querytree manipulation subroutines for query rewriter.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/rewrite/rewriteManip.h
@@ -41,8 +41,10 @@ typedef enum ReplaceVarsNoMatchOption
41
41
  } ReplaceVarsNoMatchOption;
42
42
 
43
43
 
44
+ extern void CombineRangeTables(List **dst_rtable, List **dst_perminfos,
45
+ List *src_rtable, List *src_perminfos);
44
46
  extern void OffsetVarNodes(Node *node, int offset, int sublevels_up);
45
- extern void ChangeVarNodes(Node *node, int old_varno, int new_varno,
47
+ extern void ChangeVarNodes(Node *node, int rt_index, int new_index,
46
48
  int sublevels_up);
47
49
  extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up,
48
50
  int min_sublevels_up);
@@ -63,6 +65,13 @@ extern bool contain_windowfuncs(Node *node);
63
65
  extern int locate_windowfunc(Node *node);
64
66
  extern bool checkExprHasSubLink(Node *node);
65
67
 
68
+ extern Node *add_nulling_relids(Node *node,
69
+ const Bitmapset *target_relids,
70
+ const Bitmapset *added_relids);
71
+ extern Node *remove_nulling_relids(Node *node,
72
+ const Bitmapset *removable_relids,
73
+ const Bitmapset *except_relids);
74
+
66
75
  extern Node *replace_rte_variables(Node *node,
67
76
  int target_varno, int sublevels_up,
68
77
  replace_rte_variables_callback callback,
@@ -4,7 +4,7 @@
4
4
  *
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/rewrite/rewriteSupport.h
@@ -4,7 +4,7 @@
4
4
  * POSTGRES backend id communication definitions
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/storage/backendid.h
@@ -25,13 +25,13 @@ typedef int BackendId; /* unique currently active backend identifier */
25
25
  extern PGDLLIMPORT BackendId MyBackendId; /* backend id of this backend */
26
26
 
27
27
  /* backend id of our parallel session leader, or InvalidBackendId if none */
28
- extern PGDLLIMPORT BackendId ParallelMasterBackendId;
28
+ extern PGDLLIMPORT BackendId ParallelLeaderBackendId;
29
29
 
30
30
  /*
31
31
  * The BackendId to use for our session's temp relations is normally our own,
32
32
  * but parallel workers should use their leader's ID.
33
33
  */
34
34
  #define BackendIdForTempRelations() \
35
- (ParallelMasterBackendId == InvalidBackendId ? MyBackendId : ParallelMasterBackendId)
35
+ (ParallelLeaderBackendId == InvalidBackendId ? MyBackendId : ParallelLeaderBackendId)
36
36
 
37
37
  #endif /* BACKENDID_H */