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
@@ -3,7 +3,7 @@
3
3
  * lsyscache.h
4
4
  * Convenience routines for common queries in the system catalog cache.
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/utils/lsyscache.h
@@ -35,7 +35,7 @@ typedef enum IOFuncSelector
35
35
  IOFunc_input,
36
36
  IOFunc_output,
37
37
  IOFunc_receive,
38
- IOFunc_send
38
+ IOFunc_send,
39
39
  } IOFuncSelector;
40
40
 
41
41
  /* Flag bits for get_attstatsslot */
@@ -90,7 +90,6 @@ extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype,
90
90
  int16 procnum);
91
91
  extern char *get_attname(Oid relid, AttrNumber attnum, bool missing_ok);
92
92
  extern AttrNumber get_attnum(Oid relid, const char *attname);
93
- extern int get_attstattarget(Oid relid, AttrNumber attnum);
94
93
  extern char get_attgenerated(Oid relid, AttrNumber attnum);
95
94
  extern Oid get_atttype(Oid relid, AttrNumber attnum);
96
95
  extern void get_atttypetypmodcoll(Oid relid, AttrNumber attnum,
@@ -101,11 +100,14 @@ extern char *get_collation_name(Oid colloid);
101
100
  extern bool get_collation_isdeterministic(Oid colloid);
102
101
  extern char *get_constraint_name(Oid conoid);
103
102
  extern Oid get_constraint_index(Oid conoid);
103
+ extern char get_constraint_type(Oid conoid);
104
+
104
105
  extern char *get_language_name(Oid langoid, bool missing_ok);
105
106
  extern Oid get_opclass_family(Oid opclass);
106
107
  extern Oid get_opclass_input_type(Oid opclass);
107
108
  extern bool get_opclass_opfamily_and_input_type(Oid opclass,
108
109
  Oid *opfamily, Oid *opcintype);
110
+ extern Oid get_opclass_method(Oid opclass);
109
111
  extern RegProcedure get_opcode(Oid opno);
110
112
  extern char *get_opname(Oid opno);
111
113
  extern Oid get_op_rettype(Oid opno);
@@ -139,6 +141,7 @@ extern char get_rel_relkind(Oid relid);
139
141
  extern bool get_rel_relispartition(Oid relid);
140
142
  extern Oid get_rel_tablespace(Oid relid);
141
143
  extern char get_rel_persistence(Oid relid);
144
+ extern Oid get_rel_relam(Oid relid);
142
145
  extern Oid get_transform_fromsql(Oid typid, Oid langid, List *trftypes);
143
146
  extern Oid get_transform_tosql(Oid typid, Oid langid, List *trftypes);
144
147
  extern bool get_typisdefined(Oid typid);
@@ -7,7 +7,7 @@
7
7
  * empty definitions for Valgrind client request macros we use.
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) 1994, Regents of the University of California
12
12
  *
13
13
  * src/include/utils/memdebug.h
@@ -7,7 +7,7 @@
7
7
  * of the API of the memory management subsystem.
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) 1994, Regents of the University of California
12
12
  *
13
13
  * src/include/utils/memutils.h
@@ -66,9 +66,6 @@ extern PGDLLIMPORT MemoryContext CurTransactionContext;
66
66
  /* This is a transient link to the active portal's memory context: */
67
67
  extern PGDLLIMPORT MemoryContext PortalContext;
68
68
 
69
- /* Backwards compatibility macro */
70
- #define MemoryContextResetAndDeleteChildren(ctx) MemoryContextReset(ctx)
71
-
72
69
 
73
70
  /*
74
71
  * Memory-context-type-independent functions in mcxt.c
@@ -87,8 +84,11 @@ extern Size GetMemoryChunkSpace(void *pointer);
87
84
  extern MemoryContext MemoryContextGetParent(MemoryContext context);
88
85
  extern bool MemoryContextIsEmpty(MemoryContext context);
89
86
  extern Size MemoryContextMemAllocated(MemoryContext context, bool recurse);
87
+ extern void MemoryContextMemConsumed(MemoryContext context,
88
+ MemoryContextCounters *consumed);
90
89
  extern void MemoryContextStats(MemoryContext context);
91
- extern void MemoryContextStatsDetail(MemoryContext context, int max_children,
90
+ extern void MemoryContextStatsDetail(MemoryContext context,
91
+ int max_level, int max_children,
92
92
  bool print_to_stderr);
93
93
  extern void MemoryContextAllowInCriticalSection(MemoryContext context,
94
94
  bool allow);
@@ -144,6 +144,13 @@ extern MemoryContext GenerationContextCreate(MemoryContext parent,
144
144
  Size initBlockSize,
145
145
  Size maxBlockSize);
146
146
 
147
+ /* bump.c */
148
+ extern MemoryContext BumpContextCreate(MemoryContext parent,
149
+ const char *name,
150
+ Size minContextSize,
151
+ Size initBlockSize,
152
+ Size maxBlockSize);
153
+
147
154
  /*
148
155
  * Recommended default alloc parameters, suitable for "ordinary" contexts
149
156
  * that might hold quite a lot of data.
@@ -5,7 +5,7 @@
5
5
  * functions for internal use.
6
6
  *
7
7
  *
8
- * Portions Copyright (c) 2022-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 2022-2024, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/utils/memutils_internal.h
@@ -19,9 +19,9 @@
19
19
  #include "utils/memutils.h"
20
20
 
21
21
  /* These functions implement the MemoryContext API for AllocSet context. */
22
- extern void *AllocSetAlloc(MemoryContext context, Size size);
22
+ extern void *AllocSetAlloc(MemoryContext context, Size size, int flags);
23
23
  extern void AllocSetFree(void *pointer);
24
- extern void *AllocSetRealloc(void *pointer, Size size);
24
+ extern void *AllocSetRealloc(void *pointer, Size size, int flags);
25
25
  extern void AllocSetReset(MemoryContext context);
26
26
  extern void AllocSetDelete(MemoryContext context);
27
27
  extern MemoryContext AllocSetGetChunkContext(void *pointer);
@@ -36,9 +36,9 @@ extern void AllocSetCheck(MemoryContext context);
36
36
  #endif
37
37
 
38
38
  /* These functions implement the MemoryContext API for Generation context. */
39
- extern void *GenerationAlloc(MemoryContext context, Size size);
39
+ extern void *GenerationAlloc(MemoryContext context, Size size, int flags);
40
40
  extern void GenerationFree(void *pointer);
41
- extern void *GenerationRealloc(void *pointer, Size size);
41
+ extern void *GenerationRealloc(void *pointer, Size size, int flags);
42
42
  extern void GenerationReset(MemoryContext context);
43
43
  extern void GenerationDelete(MemoryContext context);
44
44
  extern MemoryContext GenerationGetChunkContext(void *pointer);
@@ -54,9 +54,9 @@ extern void GenerationCheck(MemoryContext context);
54
54
 
55
55
 
56
56
  /* These functions implement the MemoryContext API for Slab context. */
57
- extern void *SlabAlloc(MemoryContext context, Size size);
57
+ extern void *SlabAlloc(MemoryContext context, Size size, int flags);
58
58
  extern void SlabFree(void *pointer);
59
- extern void *SlabRealloc(void *pointer, Size size);
59
+ extern void *SlabRealloc(void *pointer, Size size, int flags);
60
60
  extern void SlabReset(MemoryContext context);
61
61
  extern void SlabDelete(MemoryContext context);
62
62
  extern MemoryContext SlabGetChunkContext(void *pointer);
@@ -75,10 +75,26 @@ extern void SlabCheck(MemoryContext context);
75
75
  * part of a fully-fledged MemoryContext type.
76
76
  */
77
77
  extern void AlignedAllocFree(void *pointer);
78
- extern void *AlignedAllocRealloc(void *pointer, Size size);
78
+ extern void *AlignedAllocRealloc(void *pointer, Size size, int flags);
79
79
  extern MemoryContext AlignedAllocGetChunkContext(void *pointer);
80
80
  extern Size AlignedAllocGetChunkSpace(void *pointer);
81
81
 
82
+ /* These functions implement the MemoryContext API for the Bump context. */
83
+ extern void *BumpAlloc(MemoryContext context, Size size, int flags);
84
+ extern void BumpFree(void *pointer);
85
+ extern void *BumpRealloc(void *pointer, Size size, int flags);
86
+ extern void BumpReset(MemoryContext context);
87
+ extern void BumpDelete(MemoryContext context);
88
+ extern MemoryContext BumpGetChunkContext(void *pointer);
89
+ extern Size BumpGetChunkSpace(void *pointer);
90
+ extern bool BumpIsEmpty(MemoryContext context);
91
+ extern void BumpStats(MemoryContext context, MemoryStatsPrintFunc printfunc,
92
+ void *passthru, MemoryContextCounters *totals,
93
+ bool print_to_stderr);
94
+ #ifdef MEMORY_CONTEXT_CHECKING
95
+ extern void BumpCheck(MemoryContext context);
96
+ #endif
97
+
82
98
  /*
83
99
  * How many extra bytes do we need to request in order to ensure that we can
84
100
  * align a pointer to 'alignto'. Since palloc'd pointers are already aligned
@@ -104,21 +120,29 @@ extern Size AlignedAllocGetChunkSpace(void *pointer);
104
120
  */
105
121
  typedef enum MemoryContextMethodID
106
122
  {
107
- MCTX_UNUSED1_ID, /* 000 occurs in never-used memory */
108
- MCTX_UNUSED2_ID, /* glibc malloc'd chunks usually match 001 */
109
- MCTX_UNUSED3_ID, /* glibc malloc'd chunks > 128kB match 010 */
123
+ MCTX_0_RESERVED_UNUSEDMEM_ID, /* 0000 occurs in never-used memory */
124
+ MCTX_1_RESERVED_GLIBC_ID, /* glibc malloc'd chunks usually match 0001 */
125
+ MCTX_2_RESERVED_GLIBC_ID, /* glibc malloc'd chunks > 128kB match 0010 */
110
126
  MCTX_ASET_ID,
111
127
  MCTX_GENERATION_ID,
112
128
  MCTX_SLAB_ID,
113
129
  MCTX_ALIGNED_REDIRECT_ID,
114
- MCTX_UNUSED4_ID /* 111 occurs in wipe_mem'd memory */
130
+ MCTX_BUMP_ID,
131
+ MCTX_8_UNUSED_ID,
132
+ MCTX_9_UNUSED_ID,
133
+ MCTX_10_UNUSED_ID,
134
+ MCTX_11_UNUSED_ID,
135
+ MCTX_12_UNUSED_ID,
136
+ MCTX_13_UNUSED_ID,
137
+ MCTX_14_UNUSED_ID,
138
+ MCTX_15_RESERVED_WIPEDMEM_ID /* 1111 occurs in wipe_mem'd memory */
115
139
  } MemoryContextMethodID;
116
140
 
117
141
  /*
118
142
  * The number of bits that 8-byte memory chunk headers can use to encode the
119
143
  * MemoryContextMethodID.
120
144
  */
121
- #define MEMORY_CONTEXT_METHODID_BITS 3
145
+ #define MEMORY_CONTEXT_METHODID_BITS 4
122
146
  #define MEMORY_CONTEXT_METHODID_MASK \
123
147
  ((((uint64) 1) << MEMORY_CONTEXT_METHODID_BITS) - 1)
124
148
 
@@ -133,4 +157,20 @@ extern void MemoryContextCreate(MemoryContext node,
133
157
  MemoryContext parent,
134
158
  const char *name);
135
159
 
160
+ extern void *MemoryContextAllocationFailure(MemoryContext context, Size size,
161
+ int flags);
162
+
163
+ extern void MemoryContextSizeFailure(MemoryContext context, Size size,
164
+ int flags) pg_attribute_noreturn();
165
+
166
+ static inline void
167
+ MemoryContextCheckSize(MemoryContext context, Size size, int flags)
168
+ {
169
+ if (unlikely(!AllocSizeIsValid(size)))
170
+ {
171
+ if (!(flags & MCXT_ALLOC_HUGE) || !AllocHugeSizeIsValid(size))
172
+ MemoryContextSizeFailure(context, size, flags);
173
+ }
174
+ }
175
+
136
176
  #endif /* MEMUTILS_INTERNAL_H */
@@ -12,7 +12,7 @@
12
12
  * Although MemoryChunks are used by each of our MemoryContexts, future
13
13
  * implementations may choose to implement their own method for storing chunk
14
14
  * headers. The only requirement is that the header ends with an 8-byte value
15
- * which the least significant 3-bits of are set to the MemoryContextMethodID
15
+ * which the least significant 4-bits of are set to the MemoryContextMethodID
16
16
  * of the given context.
17
17
  *
18
18
  * By default, a MemoryChunk is 8 bytes in size, however, when
@@ -25,15 +25,23 @@
25
25
  * used to encode 4 separate pieces of information. Starting with the least
26
26
  * significant bits of 'hdrmask', the bit space is reserved as follows:
27
27
  *
28
- * 1. 3-bits to indicate the MemoryContextMethodID as defined by
28
+ * 1. 4-bits to indicate the MemoryContextMethodID as defined by
29
29
  * MEMORY_CONTEXT_METHODID_MASK
30
30
  * 2. 1-bit to denote an "external" chunk (see below)
31
31
  * 3. 30-bits reserved for the MemoryContext to use for anything it
32
- * requires. Most MemoryContext likely want to store the size of the
32
+ * requires. Most MemoryContexts likely want to store the size of the
33
33
  * chunk here.
34
34
  * 4. 30-bits for the number of bytes that must be subtracted from the chunk
35
35
  * to obtain the address of the block that the chunk is stored on.
36
36
  *
37
+ * If you're paying close attention, you'll notice this adds up to 65 bits
38
+ * rather than 64 bits. This is because the highest-order bit of #3 is the
39
+ * same bit as the lowest-order bit of #4. We can do this as we insist that
40
+ * the chunk and block pointers are both MAXALIGNed, therefore the relative
41
+ * offset between those will always be a MAXALIGNed value which means the
42
+ * lowest order bit is always 0. When fetching the chunk to block offset we
43
+ * mask out the lowest-order bit to ensure it's still zero.
44
+ *
37
45
  * In some cases, for example when memory allocations become large, it's
38
46
  * possible fields 3 and 4 above are not large enough to store the values
39
47
  * required for the chunk. In this case, the MemoryContext can choose to mark
@@ -68,7 +76,7 @@
68
76
  * PointerGetMemoryChunk
69
77
  * MemoryChunkGetPointer
70
78
  *
71
- * Portions Copyright (c) 2022-2023, PostgreSQL Global Development Group
79
+ * Portions Copyright (c) 2022-2024, PostgreSQL Global Development Group
72
80
  * Portions Copyright (c) 1994, Regents of the University of California
73
81
  *
74
82
  * src/include/utils/memutils_memorychunk.h
@@ -93,10 +101,16 @@
93
101
  */
94
102
  #define MEMORYCHUNK_MAX_BLOCKOFFSET UINT64CONST(0x3FFFFFFF)
95
103
 
104
+ /*
105
+ * As above, but mask out the lowest-order (always zero) bit as this is shared
106
+ * with the MemoryChunkGetValue field.
107
+ */
108
+ #define MEMORYCHUNK_BLOCKOFFSET_MASK UINT64CONST(0x3FFFFFFE)
109
+
96
110
  /* define the least significant base-0 bit of each portion of the hdrmask */
97
111
  #define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS
98
112
  #define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1)
99
- #define MEMORYCHUNK_BLOCKOFFSET_BASEBIT (MEMORYCHUNK_VALUE_BASEBIT + 30)
113
+ #define MEMORYCHUNK_BLOCKOFFSET_BASEBIT (MEMORYCHUNK_VALUE_BASEBIT + 29)
100
114
 
101
115
  /*
102
116
  * A magic number for storing in the free bits of an external chunk. This
@@ -131,11 +145,11 @@ typedef struct MemoryChunk
131
145
  (((hdrmask) >> MEMORYCHUNK_VALUE_BASEBIT) & MEMORYCHUNK_MAX_VALUE)
132
146
 
133
147
  /*
134
- * We should have used up all the bits here, so the compiler is likely to
135
- * optimize out the & MEMORYCHUNK_MAX_BLOCKOFFSET.
148
+ * Shift the block offset down to the 0th bit position and mask off the single
149
+ * bit that's shared with the MemoryChunkGetValue field.
136
150
  */
137
151
  #define HdrMaskBlockOffset(hdrmask) \
138
- (((hdrmask) >> MEMORYCHUNK_BLOCKOFFSET_BASEBIT) & MEMORYCHUNK_MAX_BLOCKOFFSET)
152
+ (((hdrmask) >> MEMORYCHUNK_BLOCKOFFSET_BASEBIT) & MEMORYCHUNK_BLOCKOFFSET_MASK)
139
153
 
140
154
  /* For external chunks only, check the magic number matches */
141
155
  #define HdrMaskCheckMagic(hdrmask) \
@@ -149,6 +163,7 @@ typedef struct MemoryChunk
149
163
  * The number of bytes between 'block' and 'chunk' must be <=
150
164
  * MEMORYCHUNK_MAX_BLOCKOFFSET.
151
165
  * 'value' must be <= MEMORYCHUNK_MAX_VALUE.
166
+ * Both 'chunk' and 'block' must be MAXALIGNed pointers.
152
167
  */
153
168
  static inline void
154
169
  MemoryChunkSetHdrMask(MemoryChunk *chunk, void *block,
@@ -157,7 +172,7 @@ MemoryChunkSetHdrMask(MemoryChunk *chunk, void *block,
157
172
  Size blockoffset = (char *) chunk - (char *) block;
158
173
 
159
174
  Assert((char *) chunk >= (char *) block);
160
- Assert(blockoffset <= MEMORYCHUNK_MAX_BLOCKOFFSET);
175
+ Assert((blockoffset & MEMORYCHUNK_BLOCKOFFSET_MASK) == blockoffset);
161
176
  Assert(value <= MEMORYCHUNK_MAX_VALUE);
162
177
  Assert((int) methodid <= MEMORY_CONTEXT_METHODID_MASK);
163
178
 
@@ -225,6 +240,7 @@ MemoryChunkGetBlock(MemoryChunk *chunk)
225
240
  }
226
241
 
227
242
  /* cleanup all internal definitions */
243
+ #undef MEMORYCHUNK_BLOCKOFFSET_MASK
228
244
  #undef MEMORYCHUNK_EXTERNAL_BASEBIT
229
245
  #undef MEMORYCHUNK_VALUE_BASEBIT
230
246
  #undef MEMORYCHUNK_BLOCKOFFSET_BASEBIT
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Original coding 1998, Jan Wieck. Heavily revised 2003, Tom Lane.
7
7
  *
8
- * Copyright (c) 1998-2023, PostgreSQL Global Development Group
8
+ * Copyright (c) 1998-2024, PostgreSQL Global Development Group
9
9
  *
10
10
  * src/include/utils/numeric.h
11
11
  *
@@ -14,6 +14,7 @@
14
14
  #ifndef _PG_NUMERIC_H_
15
15
  #define _PG_NUMERIC_H_
16
16
 
17
+ #include "common/pg_prng.h"
17
18
  #include "fmgr.h"
18
19
 
19
20
  /*
@@ -101,5 +102,9 @@ extern Numeric numeric_div_opt_error(Numeric num1, Numeric num2,
101
102
  extern Numeric numeric_mod_opt_error(Numeric num1, Numeric num2,
102
103
  bool *have_error);
103
104
  extern int32 numeric_int4_opt_error(Numeric num, bool *have_error);
105
+ extern int64 numeric_int8_opt_error(Numeric num, bool *have_error);
106
+
107
+ extern Numeric random_numeric(pg_prng_state *state,
108
+ Numeric rmin, Numeric rmax);
104
109
 
105
110
  #endif /* _PG_NUMERIC_H_ */
@@ -18,7 +18,7 @@
18
18
  * everything that should be freed. See utils/mmgr/README for more info.
19
19
  *
20
20
  *
21
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
21
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
22
22
  * Portions Copyright (c) 1994, Regents of the University of California
23
23
  *
24
24
  * src/include/utils/palloc.h
@@ -70,7 +70,6 @@ extern PGDLLIMPORT __thread MemoryContext CurrentMemoryContext;
70
70
  */
71
71
  extern void *MemoryContextAlloc(MemoryContext context, Size size);
72
72
  extern void *MemoryContextAllocZero(MemoryContext context, Size size);
73
- extern void *MemoryContextAllocZeroAligned(MemoryContext context, Size size);
74
73
  extern void *MemoryContextAllocExtended(MemoryContext context,
75
74
  Size size, int flags);
76
75
  extern void *MemoryContextAllocAligned(MemoryContext context,
@@ -109,19 +108,6 @@ extern void pfree(void *pointer);
109
108
  #define repalloc_array(pointer, type, count) ((type *) repalloc(pointer, sizeof(type) * (count)))
110
109
  #define repalloc0_array(pointer, type, oldcount, count) ((type *) repalloc0(pointer, sizeof(type) * (oldcount), sizeof(type) * (count)))
111
110
 
112
- /*
113
- * The result of palloc() is always word-aligned, so we can skip testing
114
- * alignment of the pointer when deciding which MemSet variant to use.
115
- * Note that this variant does not offer any advantage, and should not be
116
- * used, unless its "sz" argument is a compile-time constant; therefore, the
117
- * issue that it evaluates the argument multiple times isn't a problem in
118
- * practice.
119
- */
120
- #define palloc0fast(sz) \
121
- ( MemSetTest(0, sz) ? \
122
- MemoryContextAllocZeroAligned(CurrentMemoryContext, sz) : \
123
- MemoryContextAllocZero(CurrentMemoryContext, sz) )
124
-
125
111
  /* Higher-limit allocators. */
126
112
  extern void *MemoryContextAllocHuge(MemoryContext context, Size size);
127
113
  extern pg_nodiscard void *repalloc_huge(void *pointer, Size size);
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * partcache.h
4
4
  *
5
- * Copyright (c) 1996-2023, PostgreSQL Global Development Group
5
+ * Copyright (c) 1996-2024, PostgreSQL Global Development Group
6
6
  *
7
7
  * src/include/utils/partcache.h
8
8
  *
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * src/include/utils/pg_locale.h
6
6
  *
7
- * Copyright (c) 2002-2023, PostgreSQL Global Development Group
7
+ * Copyright (c) 2002-2024, PostgreSQL Global Development Group
8
8
  *
9
9
  *-----------------------------------------------------------------------
10
10
  */
@@ -67,9 +67,7 @@ extern void cache_locale_time(void);
67
67
 
68
68
 
69
69
  /*
70
- * We define our own wrapper around locale_t so we can keep the same
71
- * function signatures for all builds, while not having to create a
72
- * fake version of the standard type locale_t in the global namespace.
70
+ * We use a discriminated union to hold either a locale_t or an ICU collator.
73
71
  * pg_locale_t is occasionally checked for truth, so make it a pointer.
74
72
  */
75
73
  struct pg_locale_struct
@@ -78,9 +76,11 @@ struct pg_locale_struct
78
76
  bool deterministic;
79
77
  union
80
78
  {
81
- #ifdef HAVE_LOCALE_T
79
+ struct
80
+ {
81
+ const char *locale;
82
+ } builtin;
82
83
  locale_t lt;
83
- #endif
84
84
  #ifdef USE_ICU
85
85
  struct
86
86
  {
@@ -88,7 +88,6 @@ struct pg_locale_struct
88
88
  UCollator *ucol;
89
89
  } icu;
90
90
  #endif
91
- int dummy; /* in case we have neither LOCALE_T nor ICU */
92
91
  } info;
93
92
  };
94
93
 
@@ -118,6 +117,8 @@ extern size_t pg_strxfrm_prefix(char *dest, const char *src, size_t destsize,
118
117
  extern size_t pg_strnxfrm_prefix(char *dest, size_t destsize, const char *src,
119
118
  size_t srclen, pg_locale_t locale);
120
119
 
120
+ extern int builtin_locale_encoding(const char *locale);
121
+ extern const char *builtin_validate_locale(int encoding, const char *locale);
121
122
  extern void icu_validate_locale(const char *loc_str);
122
123
  extern char *icu_language_tag(const char *loc_str, int elevel);
123
124
 
@@ -5,7 +5,7 @@
5
5
  * only be needed by files implementing statistics support (rather than ones
6
6
  * reporting / querying stats).
7
7
  *
8
- * Copyright (c) 2001-2023, PostgreSQL Global Development Group
8
+ * Copyright (c) 2001-2024, PostgreSQL Global Development Group
9
9
  *
10
10
  * src/include/utils/pgstat_internal.h
11
11
  * ----------
@@ -14,7 +14,7 @@
14
14
  #define PGSTAT_INTERNAL_H
15
15
 
16
16
 
17
- #include "common/hashfn.h"
17
+ #include "common/hashfn_unstable.h"
18
18
  #include "lib/dshash.h"
19
19
  #include "lib/ilist.h"
20
20
  #include "pgstat.h"
@@ -93,6 +93,19 @@ typedef struct PgStatShared_HashEntry
93
93
  */
94
94
  pg_atomic_uint32 refcount;
95
95
 
96
+ /*
97
+ * Counter tracking the number of times the entry has been reused.
98
+ *
99
+ * Set to 0 when the entry is created, and incremented by one each time
100
+ * the shared entry is reinitialized with pgstat_reinit_entry().
101
+ *
102
+ * May only be incremented / decremented while holding at least a shared
103
+ * lock on the dshash partition containing the entry. Like refcount, it
104
+ * needs to be an atomic variable because multiple backends can increment
105
+ * the generation with just a shared lock.
106
+ */
107
+ pg_atomic_uint32 generation;
108
+
96
109
  /*
97
110
  * Pointer to shared stats. The stats entry always starts with
98
111
  * PgStatShared_Common, embedded in a larger struct containing the
@@ -132,6 +145,12 @@ typedef struct PgStat_EntryRef
132
145
  */
133
146
  PgStatShared_Common *shared_stats;
134
147
 
148
+ /*
149
+ * Copy of PgStatShared_HashEntry->generation, keeping locally track of
150
+ * the shared stats entry "generation" retrieved (number of times reused).
151
+ */
152
+ uint32 generation;
153
+
135
154
  /*
136
155
  * Pending statistics data that will need to be flushed to shared memory
137
156
  * stats eventually. Each stats kind utilizing pending data defines what
@@ -269,13 +288,13 @@ typedef struct PgStat_KindInfo
269
288
  * definitions.
270
289
  */
271
290
  static const char *const slru_names[] = {
272
- "CommitTs",
273
- "MultiXactMember",
274
- "MultiXactOffset",
275
- "Notify",
276
- "Serial",
277
- "Subtrans",
278
- "Xact",
291
+ "commit_timestamp",
292
+ "multixact_member",
293
+ "multixact_offset",
294
+ "notify",
295
+ "serializable",
296
+ "subtransaction",
297
+ "transaction",
279
298
  "other" /* has to be last */
280
299
  };
281
300
 
@@ -776,16 +795,10 @@ pgstat_cmp_hash_key(const void *a, const void *b, size_t size, void *arg)
776
795
  static inline uint32
777
796
  pgstat_hash_hash_key(const void *d, size_t size, void *arg)
778
797
  {
779
- const PgStat_HashKey *key = (PgStat_HashKey *) d;
780
- uint32 hash;
798
+ const char *key = (const char *) d;
781
799
 
782
800
  Assert(size == sizeof(PgStat_HashKey) && arg == NULL);
783
-
784
- hash = murmurhash32(key->kind);
785
- hash = hash_combine(hash, murmurhash32(key->dboid));
786
- hash = hash_combine(hash, murmurhash32(key->objoid));
787
-
788
- return hash;
801
+ return fasthash32(key, size, 0);
789
802
  }
790
803
 
791
804
  /*
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * See plancache.c for comments.
7
7
  *
8
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/utils/plancache.h
@@ -31,7 +31,7 @@ typedef enum
31
31
  {
32
32
  PLAN_CACHE_MODE_AUTO,
33
33
  PLAN_CACHE_MODE_FORCE_GENERIC_PLAN,
34
- PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN
34
+ PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN,
35
35
  } PlanCacheMode;
36
36
 
37
37
  /* GUC parameter */
@@ -111,7 +111,7 @@ typedef struct CachedPlanSource
111
111
  List *query_list; /* list of Query nodes, or NIL if not valid */
112
112
  List *relationOids; /* OIDs of relations the queries depend on */
113
113
  List *invalItems; /* other dependencies, as PlanInvalItems */
114
- struct OverrideSearchPath *search_path; /* search_path used for parsing
114
+ struct SearchPathMatcher *search_path; /* search_path used for parsing
115
115
  * and planning */
116
116
  MemoryContext query_context; /* context holding the above, or NULL */
117
117
  Oid rewriteRoleId; /* Role ID we did rewriting for */
@@ -188,6 +188,8 @@ typedef struct CachedExpression
188
188
  extern void InitPlanCache(void);
189
189
  extern void ResetPlanCache(void);
190
190
 
191
+ extern void ReleaseAllPlanCacheRefsInOwner(ResourceOwner owner);
192
+
191
193
  extern CachedPlanSource *CreateCachedPlan(struct RawStmt *raw_parse_tree,
192
194
  const char *query_string,
193
195
  CommandTag commandTag);
@@ -36,7 +36,7 @@
36
36
  * to look like NO SCROLL cursors.
37
37
  *
38
38
  *
39
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
39
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
40
40
  * Portions Copyright (c) 1994, Regents of the University of California
41
41
  *
42
42
  * src/include/utils/portal.h
@@ -64,9 +64,9 @@
64
64
  * supports holdable cursors (the Executor results can be dumped into a
65
65
  * tuplestore for access after transaction completion).
66
66
  *
67
- * PORTAL_ONE_RETURNING: the portal contains a single INSERT/UPDATE/DELETE
68
- * query with a RETURNING clause (plus possibly auxiliary queries added by
69
- * rule rewriting). On first execution, we run the portal to completion
67
+ * PORTAL_ONE_RETURNING: the portal contains a single INSERT/UPDATE/DELETE/
68
+ * MERGE query with a RETURNING clause (plus possibly auxiliary queries added
69
+ * by rule rewriting). On first execution, we run the portal to completion
70
70
  * and dump the primary query's results into the portal tuplestore; the
71
71
  * results are then returned to the client as demanded. (We can't support
72
72
  * suspension of the query partway through, because the AFTER TRIGGER code
@@ -92,7 +92,7 @@ typedef enum PortalStrategy
92
92
  PORTAL_ONE_RETURNING,
93
93
  PORTAL_ONE_MOD_WITH,
94
94
  PORTAL_UTIL_SELECT,
95
- PORTAL_MULTI_QUERY
95
+ PORTAL_MULTI_QUERY,
96
96
  } PortalStrategy;
97
97
 
98
98
  /*
@@ -107,7 +107,7 @@ typedef enum PortalStatus
107
107
  PORTAL_READY, /* PortalStart complete, can run it */
108
108
  PORTAL_ACTIVE, /* portal is running (can't delete it) */
109
109
  PORTAL_DONE, /* portal is finished (don't re-run it) */
110
- PORTAL_FAILED /* portal got error (can't re-run it) */
110
+ PORTAL_FAILED, /* portal got error (can't re-run it) */
111
111
  } PortalStatus;
112
112
 
113
113
  typedef struct PortalData *Portal;
@@ -145,7 +145,7 @@ typedef struct PortalData
145
145
  /* Features/options */
146
146
  PortalStrategy strategy; /* see above */
147
147
  int cursorOptions; /* DECLARE CURSOR option bits */
148
- bool run_once; /* portal will only be run once */
148
+ bool run_once; /* unused */
149
149
 
150
150
  /* Status data */
151
151
  PortalStatus status; /* see above */
@@ -170,9 +170,9 @@ typedef struct PortalData
170
170
  Snapshot portalSnapshot; /* active snapshot, or NULL if none */
171
171
 
172
172
  /*
173
- * Where we store tuples for a held cursor or a PORTAL_ONE_RETURNING or
174
- * PORTAL_UTIL_SELECT query. (A cursor held past the end of its
175
- * transaction no longer has any active executor state.)
173
+ * Where we store tuples for a held cursor or a PORTAL_ONE_RETURNING,
174
+ * PORTAL_ONE_MOD_WITH, or PORTAL_UTIL_SELECT query. (A cursor held past
175
+ * the end of its transaction no longer has any active executor state.)
176
176
  */
177
177
  Tuplestorestate *holdStore; /* store for holdable cursors */
178
178
  MemoryContext holdContext; /* memory containing holdStore */
@@ -4,7 +4,7 @@
4
4
  * Access to functions to mutate the query environment and retrieve the
5
5
  * actual data related to entries (if any).
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/utils/queryenvironment.h
@@ -19,7 +19,7 @@
19
19
 
20
20
  typedef enum EphemeralNameRelationType
21
21
  {
22
- ENR_NAMED_TUPLESTORE /* named tuplestore relation; e.g., deltas */
22
+ ENR_NAMED_TUPLESTORE, /* named tuplestore relation; e.g., deltas */
23
23
  } EphemeralNameRelationType;
24
24
 
25
25
  /*
@@ -3,7 +3,7 @@
3
3
  * regproc.h
4
4
  * Functions for the built-in types regproc, regclass, regtype, etc.
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/utils/regproc.h