pg_query 5.1.0 → 6.0.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 (479) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/pg_query.h +4 -3
  6. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  7. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  8. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  9. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  10. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  11. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  12. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  13. data/ext/pg_query/include/postgres/access/amapi.h +10 -3
  14. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  15. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  16. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  17. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  18. data/ext/pg_query/include/postgres/access/clog.h +2 -3
  19. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  20. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  21. data/ext/pg_query/include/postgres/access/genam.h +8 -4
  22. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  23. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  24. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  25. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  26. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  27. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  28. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  29. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  30. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  31. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  32. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  33. data/ext/pg_query/include/postgres/access/slru.h +221 -0
  34. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  35. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  36. data/ext/pg_query/include/postgres/access/table.h +1 -1
  37. data/ext/pg_query/include/postgres/access/tableam.h +33 -24
  38. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  39. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  40. data/ext/pg_query/include/postgres/access/transam.h +7 -7
  41. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  42. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  44. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  45. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  46. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  47. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  48. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  49. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  50. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  51. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  53. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  54. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  55. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  56. data/ext/pg_query/include/postgres/c.h +31 -36
  57. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  58. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  59. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  60. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  61. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  62. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  63. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  64. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/objectaddress.h +1 -1
  66. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  67. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  68. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  69. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  70. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  71. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  72. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  73. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  75. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  76. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  77. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  78. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  79. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  81. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  82. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  83. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  84. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  85. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  86. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  87. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  88. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  90. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  91. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  102. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  108. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  110. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  111. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  112. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  113. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  117. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  118. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  119. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  122. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  128. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  129. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  130. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  131. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  132. data/ext/pg_query/include/postgres/commands/event_trigger.h +5 -2
  133. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  134. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  135. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  136. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  138. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  139. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  140. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  141. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  142. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
  143. data/ext/pg_query/include/postgres/common/int.h +79 -4
  144. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  145. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  146. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  147. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  148. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  149. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  150. data/ext/pg_query/include/postgres/common/string.h +1 -1
  151. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  152. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  153. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  154. data/ext/pg_query/include/postgres/datatype/timestamp.h +28 -2
  155. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  156. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  157. data/ext/pg_query/include/postgres/executor/execdesc.h +1 -1
  158. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  159. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  160. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  161. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  162. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  163. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  164. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  165. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  166. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  167. data/ext/pg_query/include/postgres/gram.h +871 -830
  168. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  169. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  170. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  171. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  172. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  173. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  174. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  175. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  176. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  177. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  178. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  179. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  180. data/ext/pg_query/include/postgres/libpq/libpq-be.h +29 -25
  181. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  182. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  183. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  184. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  185. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  186. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  187. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  188. data/ext/pg_query/include/postgres/mb/pg_wchar.h +102 -82
  189. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  190. data/ext/pg_query/include/postgres/miscadmin.h +64 -52
  191. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  192. data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -25
  193. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  194. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  195. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  196. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  197. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  198. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  199. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  200. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  201. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  202. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  203. data/ext/pg_query/include/postgres/nodes/pathnodes.h +60 -9
  204. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  205. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  206. data/ext/pg_query/include/postgres/nodes/primnodes.h +344 -50
  207. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  209. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  210. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  211. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  212. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  213. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  214. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  215. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  216. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  217. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  218. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  219. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  220. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  221. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  222. data/ext/pg_query/include/postgres/parser/parse_coerce.h +2 -2
  223. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  224. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  225. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  226. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  227. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  229. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  230. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  231. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  232. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  233. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  234. data/ext/pg_query/include/postgres/pg_config.h +34 -34
  235. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  236. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  237. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  238. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  239. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  240. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  241. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  242. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  243. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  244. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  245. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  246. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  247. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  248. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  249. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  250. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  251. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  252. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  253. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  254. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  255. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  256. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  257. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  258. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  259. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  260. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  261. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  262. data/ext/pg_query/include/postgres/port/win32_port.h +1 -11
  263. data/ext/pg_query/include/postgres/port.h +7 -3
  264. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  265. data/ext/pg_query/include/postgres/postgres.h +1 -1
  266. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  267. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  268. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  269. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  270. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  271. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  272. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  273. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  274. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  275. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  276. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  277. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  278. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  279. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  280. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  281. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  282. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +18 -28
  283. data/ext/pg_query/include/postgres/replication/slot.h +41 -5
  284. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  285. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  286. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  287. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  288. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  289. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  290. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  291. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  292. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  293. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  294. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  295. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  296. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  297. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  299. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  300. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  301. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  302. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  305. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  306. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  307. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  308. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  309. data/ext/pg_query/include/postgres/storage/lockdefs.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  311. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  312. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  313. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  314. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  315. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  316. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  317. data/ext/pg_query/include/postgres/storage/proc.h +48 -23
  318. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  319. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  320. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  321. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  322. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  323. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  324. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  325. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  326. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  327. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  328. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  329. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  330. data/ext/pg_query/include/postgres/storage/smgr.h +41 -27
  331. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  333. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  334. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  335. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  336. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  337. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  338. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  339. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  340. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  341. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  342. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  343. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  344. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  345. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  346. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  347. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  348. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  349. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  350. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  351. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  352. data/ext/pg_query/include/postgres/utils/catcache.h +5 -6
  353. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  354. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  355. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  356. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  357. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  358. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  359. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  361. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  363. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  364. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  365. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  366. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  367. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  368. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  369. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  370. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  372. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  373. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  374. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  375. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  376. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  377. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  378. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  379. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  381. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +11 -17
  382. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  383. data/ext/pg_query/include/postgres/utils/portal.h +9 -9
  384. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  385. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  387. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  388. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  389. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  390. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  391. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  393. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  394. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/syscache.h +2 -98
  396. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  397. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  399. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  400. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  401. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  402. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  403. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  404. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  405. data/ext/pg_query/include/postgres/varatt.h +1 -1
  406. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  407. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  408. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  409. data/ext/pg_query/pg_query_normalize.c +42 -1
  410. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  411. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  412. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  413. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
  414. data/ext/pg_query/pg_query_scan.c +1 -1
  415. data/ext/pg_query/postgres_deparse.c +409 -21
  416. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  417. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  418. data/ext/pg_query/src_backend_commands_define.c +2 -3
  419. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  420. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  421. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  422. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  423. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  424. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  425. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  426. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  427. data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
  428. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  429. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  430. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  431. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  432. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  433. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  434. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  435. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  436. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  437. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  438. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  439. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  440. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  441. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  442. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  443. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  444. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  445. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  446. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  447. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  448. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  449. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  450. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  451. data/ext/pg_query/src_common_encnames.c +43 -44
  452. data/ext/pg_query/src_common_hashfn.c +1 -1
  453. data/ext/pg_query/src_common_keywords.c +1 -1
  454. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  455. data/ext/pg_query/src_common_kwlookup.c +1 -1
  456. data/ext/pg_query/src_common_psprintf.c +3 -3
  457. data/ext/pg_query/src_common_stringinfo.c +18 -1
  458. data/ext/pg_query/src_common_wchar.c +45 -108
  459. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  460. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  461. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  462. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  463. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  466. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  467. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  468. data/ext/pg_query/src_port_snprintf.c +1 -1
  469. data/ext/pg_query/src_port_strerror.c +1 -3
  470. data/ext/pg_query/src_port_strlcpy.c +1 -1
  471. data/lib/pg_query/param_refs.rb +1 -1
  472. data/lib/pg_query/pg_query_pb.rb +26 -3
  473. data/lib/pg_query/treewalker.rb +38 -11
  474. data/lib/pg_query/truncate.rb +1 -1
  475. data/lib/pg_query/version.rb +1 -1
  476. metadata +25 -11
  477. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  478. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  479. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
@@ -6,7 +6,7 @@
6
6
  * Note this is read in MinGW as well as native Windows builds,
7
7
  * but not in Cygwin builds.
8
8
  *
9
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
10
10
  * Portions Copyright (c) 1994, Regents of the University of California
11
11
  *
12
12
  * src/include/port/win32_port.h
@@ -84,14 +84,6 @@
84
84
  /* Windows doesn't have fsync() as such, use _commit() */
85
85
  #define fsync(fd) _commit(fd)
86
86
 
87
- /*
88
- * For historical reasons, we allow setting wal_sync_method to
89
- * fsync_writethrough on Windows, even though it's really identical to fsync
90
- * (both code paths wind up at _commit()).
91
- */
92
- #define HAVE_FSYNC_WRITETHROUGH
93
- #define FSYNC_WRITETHROUGH_IS_FSYNC
94
-
95
87
  #define USES_WINSOCK
96
88
 
97
89
  /*
@@ -455,8 +447,6 @@ extern int _pglstat64(const char *name, struct stat *buf);
455
447
  #define strcoll_l _strcoll_l
456
448
  #define strxfrm_l _strxfrm_l
457
449
  #define wcscoll_l _wcscoll_l
458
- #define wcstombs_l _wcstombs_l
459
- #define mbstowcs_l _mbstowcs_l
460
450
 
461
451
  /*
462
452
  * Versions of libintl >= 0.18? try to replace setlocale() with a macro
@@ -3,7 +3,7 @@
3
3
  * port.h
4
4
  * Header for src/port/ compatibility functions.
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/port.h
@@ -137,7 +137,7 @@ extern int validate_exec(const char *path);
137
137
  extern int find_my_exec(const char *argv0, char *retpath);
138
138
  extern int find_other_exec(const char *argv0, const char *target,
139
139
  const char *versionstr, char *retpath);
140
- extern char *pipe_read_line(char *cmd, char *line, int maxsize);
140
+ extern char *pipe_read_line(char *cmd);
141
141
 
142
142
  /* Doesn't belong here, but this is used with find_other_exec(), so... */
143
143
  #define PG_BACKEND_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n"
@@ -432,12 +432,16 @@ extern size_t strlcpy(char *dst, const char *src, size_t siz);
432
432
  extern size_t strnlen(const char *str, size_t maxlen);
433
433
  #endif
434
434
 
435
- /* thread.c */
435
+ /* port/user.c */
436
436
  #ifndef WIN32
437
437
  extern bool pg_get_user_name(uid_t user_id, char *buffer, size_t buflen);
438
438
  extern bool pg_get_user_home_dir(uid_t user_id, char *buffer, size_t buflen);
439
439
  #endif
440
440
 
441
+ /*
442
+ * Callers should use the qsort() macro defined below instead of calling
443
+ * pg_qsort() directly.
444
+ */
441
445
  extern void pg_qsort(void *base, size_t nel, size_t elsize,
442
446
  int (*cmp) (const void *, const void *));
443
447
  extern int pg_qsort_strcmp(const void *a, const void *b);
@@ -47,7 +47,7 @@
47
47
  * Beware of multiple evaluations of the macro arguments.
48
48
  *
49
49
  *
50
- * Copyright (c) 2001-2023, PostgreSQL Global Development Group
50
+ * Copyright (c) 2001-2024, PostgreSQL Global Development Group
51
51
  *
52
52
  * src/include/portability/instr_time.h
53
53
  *
@@ -7,7 +7,7 @@
7
7
  * Client-side code should include postgres_fe.h instead.
8
8
  *
9
9
  *
10
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1995, Regents of the University of California
12
12
  *
13
13
  * src/include/postgres.h
@@ -4,7 +4,7 @@
4
4
  * header file for integrated autovacuum daemon
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/postmaster/autovacuum.h
@@ -22,7 +22,7 @@
22
22
  */
23
23
  typedef enum
24
24
  {
25
- AVW_BRINSummarizeRange
25
+ AVW_BRINSummarizeRange,
26
26
  } AutoVacuumWorkItemType;
27
27
 
28
28
 
@@ -49,26 +49,15 @@ extern PGDLLIMPORT int Log_autovacuum_min_duration;
49
49
 
50
50
  /* Status inquiry functions */
51
51
  extern bool AutoVacuumingActive(void);
52
- extern bool IsAutoVacuumLauncherProcess(void);
53
- extern bool IsAutoVacuumWorkerProcess(void);
54
52
 
55
- #define IsAnyAutoVacuumProcess() \
56
- (IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())
57
-
58
- /* Functions to start autovacuum process, called from postmaster */
53
+ /* called from postmaster at server startup */
59
54
  extern void autovac_init(void);
60
- extern int StartAutoVacLauncher(void);
61
- extern int StartAutoVacWorker(void);
62
55
 
63
56
  /* called from postmaster when a worker could not be forked */
64
57
  extern void AutoVacWorkerFailed(void);
65
58
 
66
- #ifdef EXEC_BACKEND
67
- extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();
68
- extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
69
- extern void AutovacuumWorkerIAm(void);
70
- extern void AutovacuumLauncherIAm(void);
71
- #endif
59
+ extern void AutoVacLauncherMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
60
+ extern void AutoVacWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
72
61
 
73
62
  extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,
74
63
  Oid relationId, BlockNumber blkno);
@@ -31,7 +31,7 @@
31
31
  * different) code.
32
32
  *
33
33
  *
34
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
34
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
35
35
  * Portions Copyright (c) 1994, Regents of the University of California
36
36
  *
37
37
  * IDENTIFICATION
@@ -78,7 +78,7 @@ typedef enum
78
78
  {
79
79
  BgWorkerStart_PostmasterStart,
80
80
  BgWorkerStart_ConsistentState,
81
- BgWorkerStart_RecoveryFinished
81
+ BgWorkerStart_RecoveryFinished,
82
82
  } BgWorkerStartTime;
83
83
 
84
84
  #define BGW_DEFAULT_RESTART_INTERVAL 60
@@ -93,7 +93,7 @@ typedef struct BackgroundWorker
93
93
  int bgw_flags;
94
94
  BgWorkerStartTime bgw_start_time;
95
95
  int bgw_restart_time; /* in seconds, or BGW_NEVER_RESTART */
96
- char bgw_library_name[BGW_MAXLEN];
96
+ char bgw_library_name[MAXPGPATH];
97
97
  char bgw_function_name[BGW_MAXLEN];
98
98
  Datum bgw_main_arg;
99
99
  char bgw_extra[BGW_EXTRALEN];
@@ -105,7 +105,7 @@ typedef enum BgwHandleStatus
105
105
  BGWH_STARTED, /* worker is running */
106
106
  BGWH_NOT_YET_STARTED, /* worker hasn't been started yet */
107
107
  BGWH_STOPPED, /* worker has exited */
108
- BGWH_POSTMASTER_DIED /* postmaster died; worker status unclear */
108
+ BGWH_POSTMASTER_DIED, /* postmaster died; worker status unclear */
109
109
  } BgwHandleStatus;
110
110
 
111
111
  struct BackgroundWorkerHandle;
@@ -150,9 +150,11 @@ extern void BackgroundWorkerInitializeConnectionByOid(Oid dboid, Oid useroid, ui
150
150
  * Flags to BackgroundWorkerInitializeConnection et al
151
151
  *
152
152
  *
153
- * Allow bypassing datallowconn restrictions when connecting to database
153
+ * Allow bypassing datallowconn restrictions and login check when connecting
154
+ * to database
154
155
  */
155
- #define BGWORKER_BYPASS_ALLOWCONN 1
156
+ #define BGWORKER_BYPASS_ALLOWCONN 0x0001
157
+ #define BGWORKER_BYPASS_ROLELOGINCHECK 0x0002
156
158
 
157
159
 
158
160
  /* Block/unblock signals in a background worker process */
@@ -2,7 +2,7 @@
2
2
  * bgworker_internals.h
3
3
  * POSTGRES pluggable background workers internals
4
4
  *
5
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
5
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
6
6
  * Portions Copyright (c) 1994, Regents of the University of California
7
7
  *
8
8
  * IDENTIFICATION
@@ -54,11 +54,7 @@ extern void BackgroundWorkerStopNotifications(pid_t pid);
54
54
  extern void ForgetUnstartedBackgroundWorkers(void);
55
55
  extern void ResetBackgroundWorkerCrashTimes(void);
56
56
 
57
- /* Function to start a background worker, called from postmaster.c */
58
- extern void StartBackgroundWorker(void) pg_attribute_noreturn();
59
-
60
- #ifdef EXEC_BACKEND
61
- extern BackgroundWorker *BackgroundWorkerEntry(int slotno);
62
- #endif
57
+ /* Entry point for background worker processes */
58
+ extern void BackgroundWorkerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
63
59
 
64
60
  #endif /* BGWORKER_INTERNALS_H */
@@ -6,7 +6,7 @@
6
6
  * The bgwriter process used to handle checkpointing duties too. Now
7
7
  * there is a separate process, but we did not bother to split this header.
8
8
  *
9
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
10
10
  *
11
11
  * src/include/postmaster/bgwriter.h
12
12
  *
@@ -27,8 +27,8 @@ extern PGDLLIMPORT int CheckPointTimeout;
27
27
  extern PGDLLIMPORT int CheckPointWarning;
28
28
  extern PGDLLIMPORT double CheckPointCompletionTarget;
29
29
 
30
- extern void BackgroundWriterMain(void) pg_attribute_noreturn();
31
- extern void CheckpointerMain(void) pg_attribute_noreturn();
30
+ extern void BackgroundWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
31
+ extern void CheckpointerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
32
32
 
33
33
  extern void RequestCheckpoint(int flags);
34
34
  extern void CheckpointWriteDelay(int flags, double progress);
@@ -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-2023, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2024, 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-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, 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
@@ -29,7 +29,7 @@
29
29
  extern Size PgArchShmemSize(void);
30
30
  extern void PgArchShmemInit(void);
31
31
  extern bool PgArchCanRestart(void);
32
- extern void PgArchiverMain(void) pg_attribute_noreturn();
32
+ extern void PgArchiverMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
33
33
  extern void PgArchWakeup(void);
34
34
  extern void PgArchForceDirScan(void);
35
35
 
@@ -3,7 +3,7 @@
3
3
  * postmaster.h
4
4
  * Exports from postmaster/postmaster.c.
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, 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
@@ -13,6 +13,8 @@
13
13
  #ifndef _POSTMASTER_H
14
14
  #define _POSTMASTER_H
15
15
 
16
+ #include "miscadmin.h"
17
+
16
18
  /* GUC options */
17
19
  extern PGDLLIMPORT bool EnableSSL;
18
20
  extern PGDLLIMPORT int SuperuserReservedConnections;
@@ -50,6 +52,8 @@ extern PGDLLIMPORT int postmaster_alive_fds[2];
50
52
 
51
53
  extern PGDLLIMPORT const char *progname;
52
54
 
55
+ extern PGDLLIMPORT bool LoadedSSL;
56
+
53
57
  extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
54
58
  extern void ClosePostmasterPorts(bool am_syslogger);
55
59
  extern void InitProcessGlobals(void);
@@ -58,12 +62,28 @@ extern int MaxLivePostmasterChildren(void);
58
62
 
59
63
  extern bool PostmasterMarkPIDForWorkerNotify(int);
60
64
 
61
- #ifdef EXEC_BACKEND
62
- extern pid_t postmaster_forkexec(int argc, char *argv[]);
63
- extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
65
+ extern void processCancelRequest(int backendPID, int32 cancelAuthCode);
64
66
 
67
+ #ifdef EXEC_BACKEND
65
68
  extern Size ShmemBackendArraySize(void);
66
69
  extern void ShmemBackendArrayAllocation(void);
70
+
71
+ #ifdef WIN32
72
+ extern void pgwin32_register_deadchild_callback(HANDLE procHandle, DWORD procId);
73
+ #endif
74
+ #endif
75
+
76
+ /* defined in globals.c */
77
+ extern PGDLLIMPORT struct ClientSocket *MyClientSocket;
78
+
79
+ /* prototypes for functions in launch_backend.c */
80
+ extern pid_t postmaster_child_launch(BackendType child_type,
81
+ char *startup_data,
82
+ size_t startup_data_len,
83
+ struct ClientSocket *client_sock);
84
+ const char *PostmasterChildName(BackendType child_type);
85
+ #ifdef EXEC_BACKEND
86
+ extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
67
87
  #endif
68
88
 
69
89
  /*
@@ -72,7 +92,7 @@ extern void ShmemBackendArrayAllocation(void);
72
92
  * by using a 64bit state; but it's unlikely to be worthwhile as 2^18-1
73
93
  * backends exceed currently realistic configurations. Even if that limitation
74
94
  * were removed, we still could not a) exceed 2^23-1 because inval.c stores
75
- * the backend ID as a 3-byte signed integer, b) INT_MAX/4 because some places
95
+ * the ProcNumber as a 3-byte signed integer, b) INT_MAX/4 because some places
76
96
  * compute 4*MaxBackends without any overflow check. This is rechecked in the
77
97
  * relevant GUC check hooks and in RegisterBackgroundWorker().
78
98
  */
@@ -3,7 +3,7 @@
3
3
  * startup.h
4
4
  * Exports from postmaster/startup.c.
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/postmaster/startup.h
9
9
  *
@@ -26,7 +26,7 @@
26
26
  extern PGDLLIMPORT int log_startup_progress_interval;
27
27
 
28
28
  extern void HandleStartupProcInterrupts(void);
29
- extern void StartupProcessMain(void) pg_attribute_noreturn();
29
+ extern void StartupProcessMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
30
30
  extern void PreRestoreCommand(void);
31
31
  extern void PostRestoreCommand(void);
32
32
  extern bool IsPromoteSignaled(void);
@@ -3,7 +3,7 @@
3
3
  * syslogger.h
4
4
  * Exports from postmaster/syslogger.c.
5
5
  *
6
- * Copyright (c) 2004-2023, PostgreSQL Global Development Group
6
+ * Copyright (c) 2004-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/postmaster/syslogger.h
9
9
  *
@@ -86,9 +86,7 @@ extern int SysLogger_Start(void);
86
86
 
87
87
  extern void write_syslogger_file(const char *buffer, int count, int destination);
88
88
 
89
- #ifdef EXEC_BACKEND
90
- extern void SysLoggerMain(int argc, char *argv[]) pg_attribute_noreturn();
91
- #endif
89
+ extern void SysLoggerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
92
90
 
93
91
  extern bool CheckLogrotateSignal(void);
94
92
  extern void RemoveLogrotateSignalFiles(void);
@@ -0,0 +1,35 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * walsummarizer.h
4
+ *
5
+ * Header file for background WAL summarization process.
6
+ *
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
+ *
9
+ * IDENTIFICATION
10
+ * src/include/postmaster/walsummarizer.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef WALSUMMARIZER_H
15
+ #define WALSUMMARIZER_H
16
+
17
+ #include "access/xlogdefs.h"
18
+
19
+ extern PGDLLIMPORT bool summarize_wal;
20
+ extern PGDLLIMPORT int wal_summary_keep_time;
21
+
22
+ extern Size WalSummarizerShmemSize(void);
23
+ extern void WalSummarizerShmemInit(void);
24
+ extern void WalSummarizerMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
25
+
26
+ extern void GetWalSummarizerState(TimeLineID *summarized_tli,
27
+ XLogRecPtr *summarized_lsn,
28
+ XLogRecPtr *pending_lsn,
29
+ int *summarizer_pid);
30
+ extern XLogRecPtr GetOldestUnsummarizedLSN(TimeLineID *tli,
31
+ bool *lsn_is_exact);
32
+ extern void SetWalSummarizerLatch(void);
33
+ extern void WaitForWalSummarization(XLogRecPtr lsn);
34
+
35
+ #endif
@@ -3,7 +3,7 @@
3
3
  * walwriter.h
4
4
  * Exports from postmaster/walwriter.c.
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/postmaster/walwriter.h
9
9
  *
@@ -18,6 +18,6 @@
18
18
  extern PGDLLIMPORT int WalWriterDelay;
19
19
  extern PGDLLIMPORT int WalWriterFlushAfter;
20
20
 
21
- extern void WalWriterMain(void) pg_attribute_noreturn();
21
+ extern void WalWriterMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
22
22
 
23
23
  #endif /* _WALWRITER_H */
@@ -1,5 +1,5 @@
1
- #ifndef _REGEX_H_
2
- #define _REGEX_H_ /* never again */
1
+ #ifndef _PG_REGEX_H_
2
+ #define _PG_REGEX_H_ /* never again */
3
3
  /*
4
4
  * regular expressions
5
5
  *
@@ -32,6 +32,84 @@
32
32
  * src/include/regex/regex.h
33
33
  */
34
34
 
35
+ /*
36
+ * This is an implementation of POSIX regex_t, so it clashes with the
37
+ * system-provided <regex.h> header. That header might be unintentionally
38
+ * included already, so we force that to happen now on all systems to show that
39
+ * we can cope and that we completely replace the system regex interfaces.
40
+ *
41
+ * Note that we avoided using _REGEX_H_ as an include guard, as that confuses
42
+ * matters on BSD family systems including macOS that use the same include
43
+ * guard.
44
+ */
45
+ #ifndef _WIN32
46
+ #include <regex.h>
47
+ #endif
48
+
49
+ /* Avoid redefinition errors due to the system header. */
50
+ #undef REG_UBACKREF
51
+ #undef REG_ULOOKAROUND
52
+ #undef REG_UBOUNDS
53
+ #undef REG_UBRACES
54
+ #undef REG_UBSALNUM
55
+ #undef REG_UPBOTCH
56
+ #undef REG_UBBS
57
+ #undef REG_UNONPOSIX
58
+ #undef REG_UUNSPEC
59
+ #undef REG_UUNPORT
60
+ #undef REG_ULOCALE
61
+ #undef REG_UEMPTYMATCH
62
+ #undef REG_UIMPOSSIBLE
63
+ #undef REG_USHORTEST
64
+ #undef REG_BASIC
65
+ #undef REG_EXTENDED
66
+ #undef REG_ADVF
67
+ #undef REG_ADVANCED
68
+ #undef REG_QUOTE
69
+ #undef REG_NOSPEC
70
+ #undef REG_ICASE
71
+ #undef REG_NOSUB
72
+ #undef REG_EXPANDED
73
+ #undef REG_NLSTOP
74
+ #undef REG_NLANCH
75
+ #undef REG_NEWLINE
76
+ #undef REG_PEND
77
+ #undef REG_EXPECT
78
+ #undef REG_BOSONLY
79
+ #undef REG_DUMP
80
+ #undef REG_FAKE
81
+ #undef REG_PROGRESS
82
+ #undef REG_NOTBOL
83
+ #undef REG_NOTEOL
84
+ #undef REG_STARTEND
85
+ #undef REG_FTRACE
86
+ #undef REG_MTRACE
87
+ #undef REG_SMALL
88
+ #undef REG_OKAY
89
+ #undef REG_NOMATCH
90
+ #undef REG_BADPAT
91
+ #undef REG_ECOLLATE
92
+ #undef REG_ECTYPE
93
+ #undef REG_EESCAPE
94
+ #undef REG_ESUBREG
95
+ #undef REG_EBRACK
96
+ #undef REG_EPAREN
97
+ #undef REG_EBRACE
98
+ #undef REG_BADBR
99
+ #undef REG_ERANGE
100
+ #undef REG_ESPACE
101
+ #undef REG_BADRPT
102
+ #undef REG_ASSERT
103
+ #undef REG_INVARG
104
+ #undef REG_MIXED
105
+ #undef REG_BADOPT
106
+ #undef REG_ETOOBIG
107
+ #undef REG_ECOLORS
108
+ #undef REG_ATOI
109
+ #undef REG_ITOA
110
+ #undef REG_PREFIX
111
+ #undef REG_EXACT
112
+
35
113
  /*
36
114
  * Add your own defines, if needed, here.
37
115
  */
@@ -45,7 +123,7 @@
45
123
  * regoff_t has to be large enough to hold either off_t or ssize_t,
46
124
  * and must be signed; it's only a guess that long is suitable.
47
125
  */
48
- typedef long regoff_t;
126
+ typedef long pg_regoff_t;
49
127
 
50
128
  /*
51
129
  * other interface types
@@ -79,19 +157,19 @@ typedef struct
79
157
  /* the rest is opaque pointers to hidden innards */
80
158
  char *re_guts; /* `char *' is more portable than `void *' */
81
159
  char *re_fns;
82
- } regex_t;
160
+ } pg_regex_t;
83
161
 
84
162
  /* result reporting (may acquire more fields later) */
85
163
  typedef struct
86
164
  {
87
- regoff_t rm_so; /* start of substring */
88
- regoff_t rm_eo; /* end of substring */
89
- } regmatch_t;
165
+ pg_regoff_t rm_so; /* start of substring */
166
+ pg_regoff_t rm_eo; /* end of substring */
167
+ } pg_regmatch_t;
90
168
 
91
169
  /* supplementary control and reporting */
92
170
  typedef struct
93
171
  {
94
- regmatch_t rm_extend; /* see REG_EXPECT */
172
+ pg_regmatch_t rm_extend; /* see REG_EXPECT */
95
173
  } rm_detail_t;
96
174
 
97
175
 
@@ -164,6 +242,11 @@ typedef struct
164
242
  #define REG_EXACT (-2) /* identified an exact match */
165
243
 
166
244
 
245
+ /* Redirect the standard typenames to our typenames. */
246
+ #define regoff_t pg_regoff_t
247
+ #define regex_t pg_regex_t
248
+ #define regmatch_t pg_regmatch_t
249
+
167
250
 
168
251
  /*
169
252
  * the prototypes for exported functions
@@ -186,4 +269,4 @@ extern bool RE_compile_and_execute(text *text_re, char *dat, int dat_len,
186
269
  int cflags, Oid collation,
187
270
  int nmatch, regmatch_t *pmatch);
188
271
 
189
- #endif /* _REGEX_H_ */
272
+ #endif /* _PG_REGEX_H_ */
@@ -3,7 +3,7 @@
3
3
  * logicallauncher.h
4
4
  * Exports for logical replication launcher.
5
5
  *
6
- * Portions Copyright (c) 2016-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2016-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/replication/logicallauncher.h
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * logicalproto.h
4
4
  * logical replication protocol
5
5
  *
6
- * Copyright (c) 2015-2023, PostgreSQL Global Development Group
6
+ * Copyright (c) 2015-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * IDENTIFICATION
9
9
  * src/include/replication/logicalproto.h
@@ -74,7 +74,7 @@ typedef enum LogicalRepMsgType
74
74
  LOGICAL_REP_MSG_STREAM_STOP = 'E',
75
75
  LOGICAL_REP_MSG_STREAM_COMMIT = 'c',
76
76
  LOGICAL_REP_MSG_STREAM_ABORT = 'A',
77
- LOGICAL_REP_MSG_STREAM_PREPARE = 'p'
77
+ LOGICAL_REP_MSG_STREAM_PREPARE = 'p',
78
78
  } LogicalRepMsgType;
79
79
 
80
80
  /*
@@ -3,7 +3,7 @@
3
3
  * logicalworker.h
4
4
  * Exports for logical replication workers.
5
5
  *
6
- * Portions Copyright (c) 2016-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2016-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/replication/logicalworker.h
9
9
  *
@@ -18,6 +18,7 @@ extern PGDLLIMPORT volatile sig_atomic_t ParallelApplyMessagePending;
18
18
 
19
19
  extern void ApplyWorkerMain(Datum main_arg);
20
20
  extern void ParallelApplyWorkerMain(Datum main_arg);
21
+ extern void TablesyncWorkerMain(Datum main_arg);
21
22
 
22
23
  extern bool IsLogicalWorker(void);
23
24
  extern bool IsLogicalParallelApplyWorker(void);
@@ -2,7 +2,7 @@
2
2
  * origin.h
3
3
  * Exports from replication/logical/origin.c
4
4
  *
5
- * Copyright (c) 2013-2023, PostgreSQL Global Development Group
5
+ * Copyright (c) 2013-2024, PostgreSQL Global Development Group
6
6
  *
7
7
  * src/include/replication/origin.h
8
8
  *-------------------------------------------------------------------------