pg_query 5.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/pg_query.h +4 -3
  6. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  7. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  8. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  9. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  10. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  11. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  12. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  13. data/ext/pg_query/include/postgres/access/amapi.h +10 -3
  14. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  15. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  16. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  17. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  18. data/ext/pg_query/include/postgres/access/clog.h +2 -3
  19. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  20. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  21. data/ext/pg_query/include/postgres/access/genam.h +8 -4
  22. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  23. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  24. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  25. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  26. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  27. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  28. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  29. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  30. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  31. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  32. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  33. data/ext/pg_query/include/postgres/access/slru.h +221 -0
  34. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  35. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  36. data/ext/pg_query/include/postgres/access/table.h +1 -1
  37. data/ext/pg_query/include/postgres/access/tableam.h +33 -24
  38. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  39. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  40. data/ext/pg_query/include/postgres/access/transam.h +7 -7
  41. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  42. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  44. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  45. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  46. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  47. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  48. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  49. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  50. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  51. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  53. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  54. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  55. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  56. data/ext/pg_query/include/postgres/c.h +31 -36
  57. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  58. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  59. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  60. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  61. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  62. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  63. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  64. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/objectaddress.h +1 -1
  66. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  67. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  68. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  69. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  70. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  71. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  72. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  73. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  75. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  76. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  77. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  78. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  79. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  81. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  82. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  83. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  84. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  85. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  86. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  87. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  88. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  90. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  91. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  102. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  108. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  110. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  111. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  112. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  113. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  117. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  118. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  119. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  122. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  128. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  129. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  130. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  131. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  132. data/ext/pg_query/include/postgres/commands/event_trigger.h +5 -2
  133. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  134. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  135. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  136. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  138. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  139. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  140. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  141. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  142. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +453 -0
  143. data/ext/pg_query/include/postgres/common/int.h +79 -4
  144. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  145. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  146. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  147. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  148. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  149. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  150. data/ext/pg_query/include/postgres/common/string.h +1 -1
  151. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  152. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  153. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  154. data/ext/pg_query/include/postgres/datatype/timestamp.h +28 -2
  155. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  156. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  157. data/ext/pg_query/include/postgres/executor/execdesc.h +1 -1
  158. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  159. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  160. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  161. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  162. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  163. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  164. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  165. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  166. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  167. data/ext/pg_query/include/postgres/gram.h +871 -830
  168. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  169. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  170. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  171. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  172. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  173. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  174. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  175. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  176. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  177. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  178. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  179. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  180. data/ext/pg_query/include/postgres/libpq/libpq-be.h +29 -25
  181. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  182. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  183. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  184. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  185. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  186. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  187. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  188. data/ext/pg_query/include/postgres/mb/pg_wchar.h +102 -82
  189. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  190. data/ext/pg_query/include/postgres/miscadmin.h +64 -52
  191. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  192. data/ext/pg_query/include/postgres/nodes/execnodes.h +109 -25
  193. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  194. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  195. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  196. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  197. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  198. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  199. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  200. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  201. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  202. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  203. data/ext/pg_query/include/postgres/nodes/pathnodes.h +60 -9
  204. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  205. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  206. data/ext/pg_query/include/postgres/nodes/primnodes.h +344 -50
  207. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  209. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  210. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  211. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  212. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  213. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  214. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  215. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  216. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  217. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  218. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  219. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  220. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  221. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  222. data/ext/pg_query/include/postgres/parser/parse_coerce.h +2 -2
  223. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  224. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  225. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  226. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  227. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  229. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  230. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  231. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  232. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  233. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  234. data/ext/pg_query/include/postgres/pg_config.h +34 -34
  235. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  236. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  237. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  238. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  239. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  240. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  241. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  242. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  243. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  244. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  245. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  246. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  247. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  248. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  249. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  250. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  251. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  252. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  253. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  254. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  255. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  256. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  257. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  258. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  259. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  260. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  261. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  262. data/ext/pg_query/include/postgres/port/win32_port.h +1 -11
  263. data/ext/pg_query/include/postgres/port.h +7 -3
  264. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  265. data/ext/pg_query/include/postgres/postgres.h +1 -1
  266. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  267. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  268. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  269. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  270. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  271. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  272. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  273. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  274. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  275. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  276. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  277. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  278. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  279. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  280. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  281. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  282. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +18 -28
  283. data/ext/pg_query/include/postgres/replication/slot.h +41 -5
  284. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  285. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  286. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  287. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  288. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  289. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  290. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  291. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  292. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  293. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  294. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  295. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  296. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  297. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  299. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  300. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  301. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  302. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  305. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  306. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  307. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  308. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  309. data/ext/pg_query/include/postgres/storage/lockdefs.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  311. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  312. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  313. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  314. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  315. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  316. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  317. data/ext/pg_query/include/postgres/storage/proc.h +48 -23
  318. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  319. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  320. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  321. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  322. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  323. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  324. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  325. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  326. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  327. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  328. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  329. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  330. data/ext/pg_query/include/postgres/storage/smgr.h +41 -27
  331. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  333. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  334. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  335. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  336. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  337. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  338. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  339. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  340. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  341. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  342. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  343. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  344. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  345. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  346. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  347. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  348. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  349. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  350. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  351. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  352. data/ext/pg_query/include/postgres/utils/catcache.h +5 -6
  353. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  354. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  355. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  356. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  357. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  358. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  359. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  361. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  363. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  364. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  365. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  366. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  367. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  368. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  369. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  370. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  372. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  373. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  374. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  375. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  376. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  377. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  378. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  379. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  381. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +11 -17
  382. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  383. data/ext/pg_query/include/postgres/utils/portal.h +9 -9
  384. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  385. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  387. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  388. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  389. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  390. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  391. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  393. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  394. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/syscache.h +2 -98
  396. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  397. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  399. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  400. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  401. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  402. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  403. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  404. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  405. data/ext/pg_query/include/postgres/varatt.h +1 -1
  406. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  407. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  408. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  409. data/ext/pg_query/pg_query_normalize.c +42 -1
  410. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  411. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  412. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  413. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -1
  414. data/ext/pg_query/pg_query_scan.c +1 -1
  415. data/ext/pg_query/postgres_deparse.c +409 -21
  416. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  417. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  418. data/ext/pg_query/src_backend_commands_define.c +2 -3
  419. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  420. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  421. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  422. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  423. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  424. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  425. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  426. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  427. data/ext/pg_query/src_backend_parser_gram.c +34490 -32135
  428. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  429. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  430. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  431. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  432. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  433. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  434. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  435. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  436. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  437. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  438. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  439. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  440. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  441. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  442. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  443. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  444. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  445. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  446. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  447. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  448. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  449. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  450. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  451. data/ext/pg_query/src_common_encnames.c +43 -44
  452. data/ext/pg_query/src_common_hashfn.c +1 -1
  453. data/ext/pg_query/src_common_keywords.c +1 -1
  454. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  455. data/ext/pg_query/src_common_kwlookup.c +1 -1
  456. data/ext/pg_query/src_common_psprintf.c +3 -3
  457. data/ext/pg_query/src_common_stringinfo.c +18 -1
  458. data/ext/pg_query/src_common_wchar.c +45 -108
  459. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  460. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  461. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  462. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  463. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  466. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  467. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  468. data/ext/pg_query/src_port_snprintf.c +1 -1
  469. data/ext/pg_query/src_port_strerror.c +1 -3
  470. data/ext/pg_query/src_port_strlcpy.c +1 -1
  471. data/lib/pg_query/param_refs.rb +1 -1
  472. data/lib/pg_query/pg_query_pb.rb +26 -3
  473. data/lib/pg_query/treewalker.rb +38 -11
  474. data/lib/pg_query/truncate.rb +1 -1
  475. data/lib/pg_query/version.rb +1 -1
  476. metadata +25 -11
  477. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  478. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  479. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
@@ -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,11 +91,14 @@ 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);
@@ -107,7 +106,22 @@ extern BlockNumber smgrnblocks_cached(SMgrRelation reln, ForkNumber forknum);
107
106
  extern void smgrtruncate(SMgrRelation reln, ForkNumber *forknum,
108
107
  int nforks, BlockNumber *nblocks);
109
108
  extern void smgrimmedsync(SMgrRelation reln, ForkNumber forknum);
109
+ extern void smgrregistersync(SMgrRelation reln, ForkNumber forknum);
110
110
  extern void AtEOXact_SMgr(void);
111
111
  extern bool ProcessBarrierSmgrRelease(void);
112
112
 
113
+ static inline void
114
+ smgrread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
115
+ void *buffer)
116
+ {
117
+ smgrreadv(reln, forknum, blocknum, &buffer, 1);
118
+ }
119
+
120
+ static inline void
121
+ smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
122
+ const void *buffer, bool skipFsync)
123
+ {
124
+ smgrwritev(reln, forknum, blocknum, &buffer, 1, skipFsync);
125
+ }
126
+
113
127
  #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
@@ -4,7 +4,7 @@
4
4
  * prototypes for postgres.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/tcopprot.h
@@ -15,7 +15,6 @@
15
15
  #define TCOPPROT_H
16
16
 
17
17
  #include "nodes/params.h"
18
- #include "nodes/parsenodes.h"
19
18
  #include "nodes/plannodes.h"
20
19
  #include "storage/procsignal.h"
21
20
  #include "utils/guc.h"
@@ -38,11 +37,17 @@ typedef enum
38
37
  LOGSTMT_NONE, /* log no statements */
39
38
  LOGSTMT_DDL, /* log data definition statements */
40
39
  LOGSTMT_MOD, /* log modification statements, plus DDL */
41
- LOGSTMT_ALL /* log all statements */
40
+ LOGSTMT_ALL, /* log all statements */
42
41
  } LogStmtLevel;
43
42
 
44
43
  extern PGDLLIMPORT int log_statement;
45
44
 
45
+ /* Flags for restrict_nonsystem_relation_kind value */
46
+ #define RESTRICT_RELKIND_VIEW 0x01
47
+ #define RESTRICT_RELKIND_FOREIGN_TABLE 0x02
48
+
49
+ extern PGDLLIMPORT int restrict_nonsystem_relation_kind;
50
+
46
51
  extern List *pg_parse_query(const char *query_string);
47
52
  extern List *pg_rewrite_query(Query *query);
48
53
  extern List *pg_analyze_and_rewrite_fixedparams(RawStmt *parsetree,
@@ -70,8 +75,7 @@ extern void die(SIGNAL_ARGS);
70
75
  extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
71
76
  extern void StatementCancelHandler(SIGNAL_ARGS);
72
77
  extern void FloatExceptionHandler(SIGNAL_ARGS) pg_attribute_noreturn();
73
- extern void RecoveryConflictInterrupt(ProcSignalReason reason); /* called from SIGUSR1
74
- * handler */
78
+ extern void HandleRecoveryConflictInterrupt(ProcSignalReason reason);
75
79
  extern void ProcessClientReadInterrupt(bool blocked);
76
80
  extern void ProcessClientWriteInterrupt(bool blocked);
77
81
 
@@ -4,7 +4,7 @@
4
4
  * prototypes for utility.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/utility.h
@@ -23,7 +23,7 @@ typedef enum
23
23
  PROCESS_UTILITY_QUERY, /* a complete query, but not toplevel */
24
24
  PROCESS_UTILITY_QUERY_NONATOMIC, /* a complete query, nonatomic
25
25
  * execution context */
26
- PROCESS_UTILITY_SUBCOMMAND /* a portion of a query */
26
+ PROCESS_UTILITY_SUBCOMMAND, /* a portion of a query */
27
27
  } ProcessUtilityContext;
28
28
 
29
29
  /* Info needed when recursing from ALTER TABLE */
@@ -3,7 +3,7 @@
3
3
  * ts_cache.h
4
4
  * Tsearch related object caches.
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/tsearch/ts_cache.h
@@ -4,7 +4,7 @@
4
4
  * Definition of (and support for) access control list data structures.
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/utils/acl.h
@@ -148,15 +148,16 @@ typedef struct ArrayType Acl;
148
148
  #define ACL_CONNECT_CHR 'c'
149
149
  #define ACL_SET_CHR 's'
150
150
  #define ACL_ALTER_SYSTEM_CHR 'A'
151
+ #define ACL_MAINTAIN_CHR 'm'
151
152
 
152
153
  /* string holding all privilege code chars, in order by bitmask position */
153
- #define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsA"
154
+ #define ACL_ALL_RIGHTS_STR "arwdDxtXUCTcsAm"
154
155
 
155
156
  /*
156
157
  * Bitmasks defining "all rights" for each supported object type
157
158
  */
158
159
  #define ACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)
159
- #define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)
160
+ #define ACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER|ACL_MAINTAIN)
160
161
  #define ACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE)
161
162
  #define ACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)
162
163
  #define ACL_ALL_RIGHTS_FDW (ACL_USAGE)
@@ -173,7 +174,7 @@ typedef struct ArrayType Acl;
173
174
  typedef enum
174
175
  {
175
176
  ACLMASK_ALL, /* normal case: compute all bits */
176
- ACLMASK_ANY /* return when result is known nonzero */
177
+ ACLMASK_ANY, /* return when result is known nonzero */
177
178
  } AclMaskHow;
178
179
 
179
180
  /* result codes for pg_*_aclcheck */
@@ -181,7 +182,7 @@ typedef enum
181
182
  {
182
183
  ACLCHECK_OK = 0,
183
184
  ACLCHECK_NO_PRIV,
184
- ACLCHECK_NOT_OWNER
185
+ ACLCHECK_NOT_OWNER,
185
186
  } AclResult;
186
187
 
187
188
 
@@ -239,8 +240,12 @@ extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid);
239
240
  extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
240
241
  AclMode mask, AclMaskHow how);
241
242
 
242
- /* generic function */
243
- extern AclResult object_aclcheck(Oid classid, Oid objectid, Oid roleid, AclMode mode);
243
+ /* generic functions */
244
+ extern AclResult object_aclcheck(Oid classid, Oid objectid,
245
+ Oid roleid, AclMode mode);
246
+ extern AclResult object_aclcheck_ext(Oid classid, Oid objectid,
247
+ Oid roleid, AclMode mode,
248
+ bool *is_missing);
244
249
 
245
250
  /* special cases */
246
251
  extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
@@ -250,6 +255,9 @@ extern AclResult pg_attribute_aclcheck_ext(Oid table_oid, AttrNumber attnum,
250
255
  bool *is_missing);
251
256
  extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid,
252
257
  AclMode mode, AclMaskHow how);
258
+ extern AclResult pg_attribute_aclcheck_all_ext(Oid table_oid, Oid roleid,
259
+ AclMode mode, AclMaskHow how,
260
+ bool *is_missing);
253
261
  extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode);
254
262
  extern AclResult pg_class_aclcheck_ext(Oid table_oid, Oid roleid,
255
263
  AclMode mode, bool *is_missing);
@@ -268,6 +276,10 @@ extern void aclcheck_error_type(AclResult aclerr, Oid typeOid);
268
276
 
269
277
  extern void recordExtObjInitPriv(Oid objoid, Oid classoid);
270
278
  extern void removeExtObjInitPriv(Oid objoid, Oid classoid);
279
+ extern void ReplaceRoleInInitPriv(Oid oldroleid, Oid newroleid,
280
+ Oid classid, Oid objid, int32 objsubid);
281
+ extern void RemoveRoleFromInitPriv(Oid roleid,
282
+ Oid classid, Oid objid, int32 objsubid);
271
283
 
272
284
 
273
285
  /* ownercheck routines just return true (owner) or false (not) */
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * aclchk_internal.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/utils/aclchk_internal.h
@@ -51,7 +51,7 @@
51
51
  * arrays holding the elements.
52
52
  *
53
53
  *
54
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
54
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
55
55
  * Portions Copyright (c) 1994, Regents of the University of California
56
56
  *
57
57
  * src/include/utils/array.h
@@ -455,7 +455,6 @@ extern void array_free_iterator(ArrayIterator iterator);
455
455
  */
456
456
 
457
457
  extern int ArrayGetOffset(int n, const int *dim, const int *lb, const int *indx);
458
- extern int ArrayGetOffset0(int n, const int *tup, const int *scale);
459
458
  extern int ArrayGetNItems(int ndim, const int *dims);
460
459
  extern int ArrayGetNItemsSafe(int ndim, const int *dims,
461
460
  struct Node *escontext);