pg_query 5.1.0 → 6.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 (490) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/Rakefile +4 -4
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +20 -6
  11. data/ext/pg_query/include/pg_query.h +4 -3
  12. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  19. data/ext/pg_query/include/postgres/access/amapi.h +14 -3
  20. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  21. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +2 -3
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  26. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  27. data/ext/pg_query/include/postgres/access/genam.h +17 -4
  28. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  29. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  30. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  31. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  32. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  33. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  34. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  35. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  36. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  37. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  38. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  39. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  40. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  41. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  42. data/ext/pg_query/include/postgres/access/table.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tableam.h +35 -25
  44. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  45. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  46. data/ext/pg_query/include/postgres/access/transam.h +50 -7
  47. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  48. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  49. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  50. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  51. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  53. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  54. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  55. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  56. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  57. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  58. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  59. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  60. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  61. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  62. data/ext/pg_query/include/postgres/c.h +32 -37
  63. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  64. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  66. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  67. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  68. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  69. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  70. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  71. data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
  72. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  75. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  76. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  78. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  79. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  81. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  82. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  83. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  84. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  86. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  87. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  90. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  91. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  110. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  111. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  112. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  113. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  119. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  131. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  132. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  133. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  134. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  135. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  136. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  138. data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
  139. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  140. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  141. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  142. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  143. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  144. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  145. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  146. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  147. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  148. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  149. data/ext/pg_query/include/postgres/common/int.h +79 -4
  150. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  151. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  152. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  153. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  154. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  155. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  156. data/ext/pg_query/include/postgres/common/string.h +1 -1
  157. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  158. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  159. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  160. data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
  161. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  162. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  163. data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
  164. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  165. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  166. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  167. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  168. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  169. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  170. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  171. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  172. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  173. data/ext/pg_query/include/postgres/gram.h +871 -830
  174. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  175. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  176. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  177. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  178. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  179. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  180. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  181. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  182. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  183. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  184. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  185. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  186. data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
  187. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  188. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  189. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  190. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  191. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  192. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  193. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  194. data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
  195. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  196. data/ext/pg_query/include/postgres/miscadmin.h +72 -52
  197. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  198. data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
  199. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  200. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  201. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  202. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  203. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  205. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  206. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  207. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  209. data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
  210. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  211. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  212. data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
  213. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  214. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  215. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  216. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  217. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  218. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  219. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  220. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  221. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  222. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  223. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  224. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  225. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  226. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  227. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
  229. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  230. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  231. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  232. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  233. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  234. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  235. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  236. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  237. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  238. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  239. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  240. data/ext/pg_query/include/postgres/pg_config.h +53 -45
  241. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  242. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  243. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  244. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  245. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  246. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  247. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  248. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  249. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  250. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  251. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  252. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  253. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  254. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  255. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  256. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  257. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  258. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  259. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  260. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  261. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  262. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  263. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  264. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  265. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  266. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  268. data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
  269. data/ext/pg_query/include/postgres/port.h +39 -4
  270. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  271. data/ext/pg_query/include/postgres/postgres.h +1 -1
  272. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  273. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  274. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  275. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  276. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  277. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  278. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  279. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  280. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  281. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  282. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  283. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  284. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  285. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  286. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  287. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  288. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
  289. data/ext/pg_query/include/postgres/replication/slot.h +45 -5
  290. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  291. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  292. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  293. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  294. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  295. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  296. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  297. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  299. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  300. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  301. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  302. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  305. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  306. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  307. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  308. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  309. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  311. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  312. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  313. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  314. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  315. data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
  316. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  317. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  318. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  319. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  320. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  321. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  322. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  323. data/ext/pg_query/include/postgres/storage/proc.h +48 -26
  324. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  325. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  326. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  327. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  328. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  329. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  330. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  331. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  333. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  334. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  335. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  336. data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
  337. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  338. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  339. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  340. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  341. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  342. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  343. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  344. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  345. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  346. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  347. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  348. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  349. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  350. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  351. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  352. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  353. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  354. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  355. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  356. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  357. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  358. data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
  359. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  361. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  363. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  364. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  365. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  366. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  367. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  368. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  369. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  370. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  372. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  373. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  374. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  375. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  376. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  377. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  378. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  379. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  381. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  382. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  383. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  384. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  385. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  387. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
  388. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  389. data/ext/pg_query/include/postgres/utils/portal.h +10 -10
  390. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  391. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  393. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  394. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  396. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  397. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  399. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  400. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  401. data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
  402. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  403. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  404. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  405. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  406. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  407. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  408. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  409. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  410. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  411. data/ext/pg_query/include/postgres/varatt.h +1 -1
  412. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  413. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  414. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  415. data/ext/pg_query/pg_query_normalize.c +42 -1
  416. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  417. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  418. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  419. data/ext/pg_query/pg_query_scan.c +1 -1
  420. data/ext/pg_query/postgres_deparse.c +601 -172
  421. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  422. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  423. data/ext/pg_query/src_backend_commands_define.c +2 -3
  424. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  425. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  426. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  427. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  428. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  429. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  430. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  431. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  432. data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
  433. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  434. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  435. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  436. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  437. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  438. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  439. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  440. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  441. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  442. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  443. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  444. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  445. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  446. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  447. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  448. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  449. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  450. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  451. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  452. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  453. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  454. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  455. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  456. data/ext/pg_query/src_common_encnames.c +43 -44
  457. data/ext/pg_query/src_common_hashfn.c +1 -1
  458. data/ext/pg_query/src_common_keywords.c +1 -1
  459. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  460. data/ext/pg_query/src_common_kwlookup.c +1 -1
  461. data/ext/pg_query/src_common_psprintf.c +3 -3
  462. data/ext/pg_query/src_common_stringinfo.c +18 -1
  463. data/ext/pg_query/src_common_wchar.c +92 -109
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  466. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  467. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  468. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  469. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  470. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  471. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  472. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  473. data/ext/pg_query/src_port_snprintf.c +15 -18
  474. data/ext/pg_query/src_port_strerror.c +1 -3
  475. data/ext/pg_query/src_port_strlcpy.c +1 -1
  476. data/lib/pg_query/fingerprint.rb +3 -5
  477. data/lib/pg_query/param_refs.rb +2 -2
  478. data/lib/pg_query/parse.rb +5 -7
  479. data/lib/pg_query/parse_error.rb +1 -0
  480. data/lib/pg_query/pg_query_pb.rb +27 -25
  481. data/lib/pg_query/scan.rb +1 -0
  482. data/lib/pg_query/treewalker.rb +38 -15
  483. data/lib/pg_query/truncate.rb +18 -20
  484. data/lib/pg_query/version.rb +1 -1
  485. metadata +31 -82
  486. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  487. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  488. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  489. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
  490. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Routines for interprocess signaling
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/storage/procsignal.h
@@ -14,7 +14,7 @@
14
14
  #ifndef PROCSIGNAL_H
15
15
  #define PROCSIGNAL_H
16
16
 
17
- #include "storage/backendid.h"
17
+ #include "storage/procnumber.h"
18
18
 
19
19
 
20
20
  /*
@@ -38,20 +38,22 @@ typedef enum
38
38
  PROCSIG_PARALLEL_APPLY_MESSAGE, /* Message from parallel apply workers */
39
39
 
40
40
  /* Recovery conflict reasons */
41
- PROCSIG_RECOVERY_CONFLICT_DATABASE,
41
+ PROCSIG_RECOVERY_CONFLICT_FIRST,
42
+ PROCSIG_RECOVERY_CONFLICT_DATABASE = PROCSIG_RECOVERY_CONFLICT_FIRST,
42
43
  PROCSIG_RECOVERY_CONFLICT_TABLESPACE,
43
44
  PROCSIG_RECOVERY_CONFLICT_LOCK,
44
45
  PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,
45
46
  PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT,
46
47
  PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,
47
48
  PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
49
+ PROCSIG_RECOVERY_CONFLICT_LAST = PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
48
50
 
49
51
  NUM_PROCSIGNALS /* Must be last! */
50
52
  } ProcSignalReason;
51
53
 
52
54
  typedef enum
53
55
  {
54
- PROCSIGNAL_BARRIER_SMGRRELEASE /* ask smgr to close files */
56
+ PROCSIGNAL_BARRIER_SMGRRELEASE, /* ask smgr to close files */
55
57
  } ProcSignalBarrierType;
56
58
 
57
59
  /*
@@ -60,9 +62,9 @@ typedef enum
60
62
  extern Size ProcSignalShmemSize(void);
61
63
  extern void ProcSignalShmemInit(void);
62
64
 
63
- extern void ProcSignalInit(int pss_idx);
65
+ extern void ProcSignalInit(void);
64
66
  extern int SendProcSignal(pid_t pid, ProcSignalReason reason,
65
- BackendId backendId);
67
+ ProcNumber procNumber);
66
68
 
67
69
  extern uint64 EmitProcSignalBarrier(ProcSignalBarrierType type);
68
70
  extern void WaitForProcSignalBarrier(uint64 generation);
@@ -0,0 +1,65 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * read_stream.h
4
+ * Mechanism for accessing buffered relation data with look-ahead
5
+ *
6
+ *
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1994, Regents of the University of California
9
+ *
10
+ * src/include/storage/read_stream.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef READ_STREAM_H
15
+ #define READ_STREAM_H
16
+
17
+ #include "storage/bufmgr.h"
18
+
19
+ /* Default tuning, reasonable for many users. */
20
+ #define READ_STREAM_DEFAULT 0x00
21
+
22
+ /*
23
+ * I/O streams that are performing maintenance work on behalf of potentially
24
+ * many users, and thus should be governed by maintenance_io_concurrency
25
+ * instead of effective_io_concurrency. For example, VACUUM or CREATE INDEX.
26
+ */
27
+ #define READ_STREAM_MAINTENANCE 0x01
28
+
29
+ /*
30
+ * We usually avoid issuing prefetch advice automatically when sequential
31
+ * access is detected, but this flag explicitly disables it, for cases that
32
+ * might not be correctly detected. Explicit advice is known to perform worse
33
+ * than letting the kernel (at least Linux) detect sequential access.
34
+ */
35
+ #define READ_STREAM_SEQUENTIAL 0x02
36
+
37
+ /*
38
+ * We usually ramp up from smaller reads to larger ones, to support users who
39
+ * don't know if it's worth reading lots of buffers yet. This flag disables
40
+ * that, declaring ahead of time that we'll be reading all available buffers.
41
+ */
42
+ #define READ_STREAM_FULL 0x04
43
+
44
+ struct ReadStream;
45
+ typedef struct ReadStream ReadStream;
46
+
47
+ /* Callback that returns the next block number to read. */
48
+ typedef BlockNumber (*ReadStreamBlockNumberCB) (ReadStream *stream,
49
+ void *callback_private_data,
50
+ void *per_buffer_data);
51
+
52
+ extern ReadStream *read_stream_begin_relation(int flags,
53
+ BufferAccessStrategy strategy,
54
+ Relation rel,
55
+ ForkNumber forknum,
56
+ ReadStreamBlockNumberCB callback,
57
+ void *callback_private_data,
58
+ size_t per_buffer_data_size);
59
+ extern Buffer read_stream_next_buffer(ReadStream *stream, void **per_buffer_data);
60
+ extern BlockNumber read_stream_next_block(ReadStream *stream,
61
+ BufferAccessStrategy *strategy);
62
+ extern void read_stream_reset(ReadStream *stream);
63
+ extern void read_stream_end(ReadStream *stream);
64
+
65
+ #endif /* READ_STREAM_H */
@@ -4,7 +4,7 @@
4
4
  * Physical access information for relations.
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/storage/relfilelocator.h
@@ -15,14 +15,15 @@
15
15
  #define RELFILELOCATOR_H
16
16
 
17
17
  #include "common/relpath.h"
18
- #include "storage/backendid.h"
18
+ #include "storage/procnumber.h"
19
19
 
20
20
  /*
21
21
  * RelFileLocator must provide all that we need to know to physically access
22
- * a relation, with the exception of the backend ID, which can be provided
23
- * separately. Note, however, that a "physical" relation is comprised of
24
- * multiple files on the filesystem, as each fork is stored as a separate
25
- * file, and each fork can be divided into multiple segments. See md.c.
22
+ * a relation, with the exception of the backend's proc number, which can be
23
+ * provided separately. Note, however, that a "physical" relation is
24
+ * comprised of multiple files on the filesystem, as each fork is stored as
25
+ * a separate file, and each fork can be divided into multiple segments. See
26
+ * md.c.
26
27
  *
27
28
  * spcOid identifies the tablespace of the relation. It corresponds to
28
29
  * pg_tablespace.oid.
@@ -62,28 +63,28 @@ typedef struct RelFileLocator
62
63
  } RelFileLocator;
63
64
 
64
65
  /*
65
- * Augmenting a relfilelocator with the backend ID provides all the information
66
- * we need to locate the physical storage. The backend ID is InvalidBackendId
67
- * for regular relations (those accessible to more than one backend), or the
68
- * owning backend's ID for backend-local relations. Backend-local relations
69
- * are always transient and removed in case of a database crash; they are
70
- * never WAL-logged or fsync'd.
66
+ * Augmenting a relfilelocator with the backend's proc number provides all the
67
+ * information we need to locate the physical storage. 'backend' is
68
+ * INVALID_PROC_NUMBER for regular relations (those accessible to more than
69
+ * one backend), or the owning backend's proc number for backend-local
70
+ * relations. Backend-local relations are always transient and removed in
71
+ * case of a database crash; they are never WAL-logged or fsync'd.
71
72
  */
72
73
  typedef struct RelFileLocatorBackend
73
74
  {
74
75
  RelFileLocator locator;
75
- BackendId backend;
76
+ ProcNumber backend;
76
77
  } RelFileLocatorBackend;
77
78
 
78
79
  #define RelFileLocatorBackendIsTemp(rlocator) \
79
- ((rlocator).backend != InvalidBackendId)
80
+ ((rlocator).backend != INVALID_PROC_NUMBER)
80
81
 
81
82
  /*
82
83
  * Note: RelFileLocatorEquals and RelFileLocatorBackendEquals compare relNumber
83
84
  * first since that is most likely to be different in two unequal
84
85
  * RelFileLocators. It is probably redundant to compare spcOid if the other
85
86
  * fields are found equal, but do it anyway to be sure. Likewise for checking
86
- * the backend ID in RelFileLocatorBackendEquals.
87
+ * the backend number in RelFileLocatorBackendEquals.
87
88
  */
88
89
  #define RelFileLocatorEquals(locator1, locator2) \
89
90
  ((locator1).relNumber == (locator2).relNumber && \
@@ -86,7 +86,7 @@
86
86
  * when using the SysV semaphore code.
87
87
  *
88
88
  *
89
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
89
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
90
90
  * Portions Copyright (c) 1994, Regents of the University of California
91
91
  *
92
92
  * src/include/storage/s_lock.h
@@ -414,12 +414,6 @@ typedef unsigned int slock_t;
414
414
  * an isync is a sufficient synchronization barrier after a lwarx/stwcx loop.
415
415
  * But if the spinlock is in ordinary memory, we can use lwsync instead for
416
416
  * better performance.
417
- *
418
- * Ordinarily, we'd code the branches here using GNU-style local symbols, that
419
- * is "1f" referencing "1:" and so on. But some people run gcc on AIX with
420
- * IBM's assembler as backend, and IBM's assembler doesn't do local symbols.
421
- * So hand-code the branch offsets; fortunately, all PPC instructions are
422
- * exactly 4 bytes each, so it's not too hard to count.
423
417
  */
424
418
  static __inline__ int
425
419
  tas(volatile slock_t *lock)
@@ -430,15 +424,17 @@ tas(volatile slock_t *lock)
430
424
  __asm__ __volatile__(
431
425
  " lwarx %0,0,%3,1 \n"
432
426
  " cmpwi %0,0 \n"
433
- " bne $+16 \n" /* branch to li %1,1 */
427
+ " bne 1f \n"
434
428
  " addi %0,%0,1 \n"
435
429
  " stwcx. %0,0,%3 \n"
436
- " beq $+12 \n" /* branch to lwsync */
430
+ " beq 2f \n"
431
+ "1: \n"
437
432
  " li %1,1 \n"
438
- " b $+12 \n" /* branch to end of asm sequence */
433
+ " b 3f \n"
434
+ "2: \n"
439
435
  " lwsync \n"
440
436
  " li %1,0 \n"
441
-
437
+ "3: \n"
442
438
  : "=&b"(_t), "=r"(_res), "+m"(*lock)
443
439
  : "r"(lock)
444
440
  : "memory", "cc");
@@ -666,21 +662,6 @@ tas(volatile slock_t *lock)
666
662
 
667
663
  #if !defined(HAS_TEST_AND_SET) /* We didn't trigger above, let's try here */
668
664
 
669
- #if defined(_AIX) /* AIX */
670
- /*
671
- * AIX (POWER)
672
- */
673
- #define HAS_TEST_AND_SET
674
-
675
- #include <sys/atomic_op.h>
676
-
677
- typedef int slock_t;
678
-
679
- #define TAS(lock) _check_lock((slock_t *) (lock), 0, 1)
680
- #define S_UNLOCK(lock) _clear_lock((slock_t *) (lock), 0)
681
- #endif /* _AIX */
682
-
683
-
684
665
  /* These are in sunstudio_(sparc|x86).s */
685
666
 
686
667
  #if defined(__SUNPRO_C) && (defined(__i386) || defined(__x86_64__) || defined(__sparc__) || defined(__sparc))
@@ -821,7 +802,6 @@ extern int tas(volatile slock_t *lock); /* in port/.../tas.s, or
821
802
  #define TAS_SPIN(lock) TAS(lock)
822
803
  #endif /* TAS_SPIN */
823
804
 
824
- extern PGDLLIMPORT slock_t dummy_spinlock;
825
805
 
826
806
  /*
827
807
  * Platform-independent out-of-line support routines
@@ -4,7 +4,7 @@
4
4
  * Shared temporary file management.
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/storage/sharedfileset.h
@@ -3,7 +3,7 @@
3
3
  * shm_mq.h
4
4
  * single-reader, single-writer shared memory message queue
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/storage/shm_mq.h
@@ -37,7 +37,7 @@ typedef enum
37
37
  {
38
38
  SHM_MQ_SUCCESS, /* Sent or received a message. */
39
39
  SHM_MQ_WOULD_BLOCK, /* Not completed; retry later. */
40
- SHM_MQ_DETACHED /* Other process has detached queue. */
40
+ SHM_MQ_DETACHED, /* Other process has detached queue. */
41
41
  } shm_mq_result;
42
42
 
43
43
  /*
@@ -12,7 +12,7 @@
12
12
  * other data structure within the segment and only put the pointer to
13
13
  * the data structure itself in the table of contents.
14
14
  *
15
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
15
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
16
16
  * Portions Copyright (c) 1994, Regents of the University of California
17
17
  *
18
18
  * src/include/storage/shm_toc.h
@@ -11,7 +11,7 @@
11
11
  * at the same address. This means shared memory pointers can be passed
12
12
  * around directly between different processes.
13
13
  *
14
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
15
15
  * Portions Copyright (c) 1994, Regents of the University of California
16
16
  *
17
17
  * src/include/storage/shmem.h
@@ -4,7 +4,7 @@
4
4
  * POSTGRES shared cache invalidation communication definitions.
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/storage/sinval.h
@@ -88,8 +88,8 @@ typedef struct
88
88
  {
89
89
  /* note: field layout chosen to pack into 16 bytes */
90
90
  int8 id; /* type field --- must be first */
91
- int8 backend_hi; /* high bits of backend ID, if temprel */
92
- uint16 backend_lo; /* low bits of backend ID, if temprel */
91
+ int8 backend_hi; /* high bits of backend procno, if temprel */
92
+ uint16 backend_lo; /* low bits of backend procno, if temprel */
93
93
  RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
94
94
  } SharedInvalSmgrMsg;
95
95
 
@@ -4,7 +4,7 @@
4
4
  * storage manager switch public interface declarations.
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/storage/smgr.h
@@ -21,29 +21,21 @@
21
21
  /*
22
22
  * smgr.c maintains a table of SMgrRelation objects, which are essentially
23
23
  * cached file handles. An SMgrRelation is created (if not already present)
24
- * by smgropen(), and destroyed by smgrclose(). Note that neither of these
25
- * operations imply I/O, they just create or destroy a hashtable entry.
26
- * (But smgrclose() may release associated resources, such as OS-level file
24
+ * by smgropen(), and destroyed by smgrdestroy(). Note that neither of these
25
+ * operations imply I/O, they just create or destroy a hashtable entry. (But
26
+ * smgrdestroy() may release associated resources, such as OS-level file
27
27
  * descriptors.)
28
28
  *
29
- * An SMgrRelation may have an "owner", which is just a pointer to it from
30
- * somewhere else; smgr.c will clear this pointer if the SMgrRelation is
31
- * closed. We use this to avoid dangling pointers from relcache to smgr
32
- * without having to make the smgr explicitly aware of relcache. There
33
- * can't be more than one "owner" pointer per SMgrRelation, but that's
34
- * all we need.
35
- *
36
- * SMgrRelations that do not have an "owner" are considered to be transient,
37
- * and are deleted at end of transaction.
29
+ * An SMgrRelation may be "pinned", to prevent it from being destroyed while
30
+ * it's in use. We use this to prevent pointers relcache to smgr from being
31
+ * invalidated. SMgrRelations that are not pinned are deleted at end of
32
+ * transaction.
38
33
  */
39
34
  typedef struct SMgrRelationData
40
35
  {
41
36
  /* rlocator is the hashtable lookup key, so it must be first! */
42
37
  RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
43
38
 
44
- /* pointer to owning pointer, or NULL if none */
45
- struct SMgrRelationData **smgr_owner;
46
-
47
39
  /*
48
40
  * The following fields are reset to InvalidBlockNumber upon a cache flush
49
41
  * event, and hold the last known size for each fork. This information is
@@ -68,7 +60,11 @@ typedef struct SMgrRelationData
68
60
  int md_num_open_segs[MAX_FORKNUM + 1];
69
61
  struct _MdfdVec *md_seg_fds[MAX_FORKNUM + 1];
70
62
 
71
- /* if unowned, list link in list of all unowned SMgrRelations */
63
+ /*
64
+ * Pinning support. If unpinned (ie. pincount == 0), 'node' is a list
65
+ * link in list of all unpinned SMgrRelations.
66
+ */
67
+ int pincount;
72
68
  dlist_node node;
73
69
  } SMgrRelationData;
74
70
 
@@ -78,15 +74,15 @@ typedef SMgrRelationData *SMgrRelation;
78
74
  RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
79
75
 
80
76
  extern void smgrinit(void);
81
- extern SMgrRelation smgropen(RelFileLocator rlocator, BackendId backend);
77
+ extern SMgrRelation smgropen(RelFileLocator rlocator, ProcNumber backend);
82
78
  extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
83
- extern void smgrsetowner(SMgrRelation *owner, SMgrRelation reln);
84
- extern void smgrclearowner(SMgrRelation *owner, SMgrRelation reln);
79
+ extern void smgrpin(SMgrRelation reln);
80
+ extern void smgrunpin(SMgrRelation reln);
85
81
  extern void smgrclose(SMgrRelation reln);
86
- extern void smgrcloseall(void);
87
- extern void smgrcloserellocator(RelFileLocatorBackend rlocator);
82
+ extern void smgrdestroyall(void);
88
83
  extern void smgrrelease(SMgrRelation reln);
89
84
  extern void smgrreleaseall(void);
85
+ extern void smgrreleaserellocator(RelFileLocatorBackend rlocator);
90
86
  extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
91
87
  extern void smgrdosyncall(SMgrRelation *rels, int nrels);
92
88
  extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
@@ -95,19 +91,40 @@ extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
95
91
  extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
96
92
  BlockNumber blocknum, int nblocks, bool skipFsync);
97
93
  extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
98
- BlockNumber blocknum);
99
- extern void smgrread(SMgrRelation reln, ForkNumber forknum,
100
- BlockNumber blocknum, void *buffer);
101
- extern void smgrwrite(SMgrRelation reln, ForkNumber forknum,
102
- BlockNumber blocknum, const void *buffer, bool skipFsync);
94
+ BlockNumber blocknum, int nblocks);
95
+ extern void smgrreadv(SMgrRelation reln, ForkNumber forknum,
96
+ BlockNumber blocknum,
97
+ void **buffers, BlockNumber nblocks);
98
+ extern void smgrwritev(SMgrRelation reln, ForkNumber forknum,
99
+ BlockNumber blocknum,
100
+ const void **buffers, BlockNumber nblocks,
101
+ bool skipFsync);
103
102
  extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
104
103
  BlockNumber blocknum, BlockNumber nblocks);
105
104
  extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
106
105
  extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
107
- extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum,
108
- int nforks, BlockNumber *nblocks);
106
+ extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum, int nforks,
107
+ BlockNumber *nblocks);
108
+ extern void smgrtruncate2(SMgrRelation reln, ForkNumber *forknum, int nforks,
109
+ BlockNumber *old_nblocks,
110
+ BlockNumber *nblocks);
109
111
  extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
112
+ extern void smgrregistersync(SMgrRelation reln, ForkNumber forknum);
110
113
  extern void AtEOXact_SMgr(void);
111
114
  extern bool ProcessBarrierSmgrRelease(void);
112
115
 
116
+ static inline void
117
+ smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
118
+ void *buffer)
119
+ {
120
+ smgrreadv(reln, forknum, blocknum, &buffer, 1);
121
+ }
122
+
123
+ static inline void
124
+ smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
125
+ const void *buffer, bool skipFsync)
126
+ {
127
+ smgrwritev(reln, forknum, blocknum, &buffer, 1, skipFsync);
128
+ }
129
+
113
130
  #endif /* SMGR_H */
@@ -41,7 +41,7 @@
41
41
  * be again.
42
42
  *
43
43
  *
44
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
44
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
45
45
  * Portions Copyright (c) 1994, Regents of the University of California
46
46
  *
47
47
  * src/include/storage/spin.h
@@ -4,7 +4,7 @@
4
4
  * Definitions for hot standby mode.
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/storage/standby.h
@@ -75,13 +75,23 @@ extern void StandbyReleaseOldLocks(TransactionId oldxid);
75
75
  * almost immediately see the data we need to begin executing queries.
76
76
  */
77
77
 
78
+ typedef enum
79
+ {
80
+ SUBXIDS_IN_ARRAY, /* xids array includes all running subxids */
81
+ SUBXIDS_MISSING, /* snapshot overflowed, subxids are missing */
82
+ SUBXIDS_IN_SUBTRANS, /* subxids are not included in 'xids', but
83
+ * pg_subtrans is fully up-to-date */
84
+ } subxids_array_status;
85
+
78
86
  typedef struct RunningTransactionsData
79
87
  {
80
88
  int xcnt; /* # of xact ids in xids[] */
81
89
  int subxcnt; /* # of subxact ids in xids[] */
82
- bool subxid_overflow; /* snapshot overflowed, subxids missing */
83
- TransactionId nextXid; /* xid from ShmemVariableCache->nextXid */
90
+ subxids_array_status subxid_status;
91
+ TransactionId nextXid; /* xid from TransamVariables->nextXid */
84
92
  TransactionId oldestRunningXid; /* *not* oldestXmin */
93
+ TransactionId oldestDatabaseRunningXid; /* same as above, but within the
94
+ * current database */
85
95
  TransactionId latestCompletedXid; /* so we can set xmax */
86
96
 
87
97
  TransactionId *xids; /* array of (sub)xids still running */
@@ -4,7 +4,7 @@
4
4
  * Frontend exposed definitions for hot standby mode.
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/storage/standbydefs.h
@@ -49,7 +49,7 @@ typedef struct xl_running_xacts
49
49
  int xcnt; /* # of xact ids in xids[] */
50
50
  int subxcnt; /* # of subxact ids in xids[] */
51
51
  bool subxid_overflow; /* snapshot overflowed, subxids missing */
52
- TransactionId nextXid; /* xid from ShmemVariableCache->nextXid */
52
+ TransactionId nextXid; /* xid from TransamVariables->nextXid */
53
53
  TransactionId oldestRunningXid; /* *not* oldestXmin */
54
54
  TransactionId latestCompletedXid; /* so we can set xmax */
55
55
 
@@ -3,7 +3,7 @@
3
3
  * sync.h
4
4
  * File synchronization management code.
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/storage/sync.h
@@ -25,7 +25,7 @@ typedef enum SyncRequestType
25
25
  SYNC_REQUEST, /* schedule a call of sync function */
26
26
  SYNC_UNLINK_REQUEST, /* schedule a call of unlink function */
27
27
  SYNC_FORGET_REQUEST, /* forget all calls for a tag */
28
- SYNC_FILTER_REQUEST /* forget all calls satisfying match fn */
28
+ SYNC_FILTER_REQUEST, /* forget all calls satisfying match fn */
29
29
  } SyncRequestType;
30
30
 
31
31
  /*
@@ -39,7 +39,7 @@ typedef enum SyncRequestHandler
39
39
  SYNC_HANDLER_COMMIT_TS,
40
40
  SYNC_HANDLER_MULTIXACT_OFFSET,
41
41
  SYNC_HANDLER_MULTIXACT_MEMBER,
42
- SYNC_HANDLER_NONE
42
+ SYNC_HANDLER_NONE,
43
43
  } SyncRequestHandler;
44
44
 
45
45
  /*
@@ -52,7 +52,7 @@ typedef struct FileTag
52
52
  int16 handler; /* SyncRequestHandler value, saving space */
53
53
  int16 forknum; /* ForkNumber, saving space */
54
54
  RelFileLocator rlocator;
55
- uint32 segno;
55
+ uint64 segno;
56
56
  } FileTag;
57
57
 
58
58
  extern void InitSync(void);
@@ -3,7 +3,7 @@
3
3
  * cmdtag.h
4
4
  * Declarations for commandtag names and enumeration.
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/tcop/cmdtag.h
@@ -22,7 +22,6 @@
22
22
  typedef enum CommandTag
23
23
  {
24
24
  #include "tcop/cmdtaglist.h"
25
- COMMAND_TAG_NEXTTAG
26
25
  } CommandTag;
27
26
 
28
27
  #undef PG_CMDTAG
@@ -8,7 +8,7 @@
8
8
  * determined by the PG_CMDTAG macro, which is not defined in this file;
9
9
  * it can be defined by the caller for special purposes.
10
10
  *
11
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
12
12
  * Portions Copyright (c) 1994, Regents of the University of California
13
13
  *
14
14
  * src/include/tcop/cmdtaglist.h
@@ -186,6 +186,7 @@ PG_CMDTAG(CMDTAG_INSERT, "INSERT", false, false, true)
186
186
  PG_CMDTAG(CMDTAG_LISTEN, "LISTEN", false, false, false)
187
187
  PG_CMDTAG(CMDTAG_LOAD, "LOAD", false, false, false)
188
188
  PG_CMDTAG(CMDTAG_LOCK_TABLE, "LOCK TABLE", false, false, false)
189
+ PG_CMDTAG(CMDTAG_LOGIN, "LOGIN", true, false, false)
189
190
  PG_CMDTAG(CMDTAG_MERGE, "MERGE", false, false, true)
190
191
  PG_CMDTAG(CMDTAG_MOVE, "MOVE", false, false, true)
191
192
  PG_CMDTAG(CMDTAG_NOTIFY, "NOTIFY", false, false, false)
@@ -193,7 +194,7 @@ PG_CMDTAG(CMDTAG_PREPARE, "PREPARE", false, false, false)
193
194
  PG_CMDTAG(CMDTAG_PREPARE_TRANSACTION, "PREPARE TRANSACTION", false, false, false)
194
195
  PG_CMDTAG(CMDTAG_REASSIGN_OWNED, "REASSIGN OWNED", false, false, false)
195
196
  PG_CMDTAG(CMDTAG_REFRESH_MATERIALIZED_VIEW, "REFRESH MATERIALIZED VIEW", true, false, false)
196
- PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", false, false, false)
197
+ PG_CMDTAG(CMDTAG_REINDEX, "REINDEX", true, false, false)
197
198
  PG_CMDTAG(CMDTAG_RELEASE, "RELEASE", false, false, false)
198
199
  PG_CMDTAG(CMDTAG_RESET, "RESET", false, false, false)
199
200
  PG_CMDTAG(CMDTAG_REVOKE, "REVOKE", true, false, false)
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * deparse_utility.h
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
  * src/include/tcop/deparse_utility.h
@@ -29,7 +29,7 @@ typedef enum CollectedCommandType
29
29
  SCT_AlterOpFamily,
30
30
  SCT_AlterDefaultPrivileges,
31
31
  SCT_CreateOpClass,
32
- SCT_AlterTSConfig
32
+ SCT_AlterTSConfig,
33
33
  } CollectedCommandType;
34
34
 
35
35
  /*
@@ -57,7 +57,7 @@
57
57
  * calls in portal and cursor manipulations.
58
58
  *
59
59
  *
60
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
60
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
61
61
  * Portions Copyright (c) 1994, Regents of the University of California
62
62
  *
63
63
  * src/include/tcop/dest.h
@@ -95,7 +95,8 @@ typedef enum
95
95
  DestCopyOut, /* results sent to COPY TO code */
96
96
  DestSQLFunction, /* results sent to SQL-language func mgr */
97
97
  DestTransientRel, /* results sent to transient relation */
98
- DestTupleQueue /* results sent to tuple queue */
98
+ DestTupleQueue, /* results sent to tuple queue */
99
+ DestExplainSerialize, /* results are serialized and discarded */
99
100
  } CommandDest;
100
101
 
101
102
  /* ----------------
@@ -3,7 +3,7 @@
3
3
  * fastpath.h
4
4
  *
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/tcop/fastpath.h
@@ -4,7 +4,7 @@
4
4
  * prototypes for pquery.c.
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/tcop/pquery.h