pg_query 5.1.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/Rakefile +4 -4
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +20 -6
  11. data/ext/pg_query/include/pg_query.h +4 -3
  12. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  19. data/ext/pg_query/include/postgres/access/amapi.h +14 -3
  20. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  21. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +2 -3
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  26. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  27. data/ext/pg_query/include/postgres/access/genam.h +17 -4
  28. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  29. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  30. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  31. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  32. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  33. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  34. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  35. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  36. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  37. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  38. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  39. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  40. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  41. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  42. data/ext/pg_query/include/postgres/access/table.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tableam.h +35 -25
  44. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  45. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  46. data/ext/pg_query/include/postgres/access/transam.h +50 -7
  47. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  48. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  49. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  50. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  51. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  53. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  54. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  55. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  56. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  57. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  58. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  59. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  60. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  61. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  62. data/ext/pg_query/include/postgres/c.h +32 -37
  63. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  64. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  66. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  67. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  68. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  69. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  70. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  71. data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
  72. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  75. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  76. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  78. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  79. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  81. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  82. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  83. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  84. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  86. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  87. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  90. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  91. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  110. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  111. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  112. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  113. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  119. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  131. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  132. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  133. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  134. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  135. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  136. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  138. data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
  139. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  140. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  141. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  142. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  143. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  144. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  145. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  146. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  147. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  148. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  149. data/ext/pg_query/include/postgres/common/int.h +79 -4
  150. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  151. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  152. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  153. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  154. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  155. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  156. data/ext/pg_query/include/postgres/common/string.h +1 -1
  157. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  158. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  159. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  160. data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
  161. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  162. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  163. data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
  164. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  165. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  166. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  167. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  168. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  169. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  170. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  171. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  172. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  173. data/ext/pg_query/include/postgres/gram.h +871 -830
  174. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  175. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  176. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  177. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  178. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  179. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  180. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  181. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  182. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  183. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  184. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  185. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  186. data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
  187. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  188. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  189. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  190. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  191. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  192. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  193. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  194. data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
  195. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  196. data/ext/pg_query/include/postgres/miscadmin.h +72 -52
  197. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  198. data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
  199. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  200. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  201. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  202. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  203. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  205. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  206. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  207. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  209. data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
  210. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  211. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  212. data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
  213. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  214. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  215. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  216. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  217. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  218. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  219. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  220. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  221. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  222. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  223. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  224. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  225. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  226. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  227. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
  229. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  230. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  231. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  232. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  233. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  234. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  235. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  236. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  237. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  238. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  239. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  240. data/ext/pg_query/include/postgres/pg_config.h +53 -45
  241. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  242. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  243. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  244. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  245. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  246. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  247. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  248. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  249. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  250. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  251. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  252. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  253. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  254. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  255. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  256. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  257. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  258. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  259. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  260. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  261. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  262. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  263. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  264. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  265. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  266. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  268. data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
  269. data/ext/pg_query/include/postgres/port.h +39 -4
  270. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  271. data/ext/pg_query/include/postgres/postgres.h +1 -1
  272. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  273. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  274. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  275. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  276. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  277. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  278. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  279. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  280. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  281. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  282. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  283. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  284. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  285. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  286. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  287. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  288. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
  289. data/ext/pg_query/include/postgres/replication/slot.h +45 -5
  290. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  291. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  292. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  293. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  294. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  295. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  296. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  297. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  299. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  300. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  301. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  302. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  305. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  306. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  307. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  308. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  309. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  311. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  312. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  313. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  314. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  315. data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
  316. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  317. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  318. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  319. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  320. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  321. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  322. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  323. data/ext/pg_query/include/postgres/storage/proc.h +48 -26
  324. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  325. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  326. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  327. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  328. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  329. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  330. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  331. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  333. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  334. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  335. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  336. data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
  337. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  338. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  339. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  340. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  341. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  342. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  343. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  344. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  345. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  346. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  347. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  348. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  349. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  350. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  351. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  352. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  353. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  354. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  355. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  356. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  357. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  358. data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
  359. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  361. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  363. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  364. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  365. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  366. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  367. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  368. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  369. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  370. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  372. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  373. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  374. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  375. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  376. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  377. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  378. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  379. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  381. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  382. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  383. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  384. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  385. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  387. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
  388. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  389. data/ext/pg_query/include/postgres/utils/portal.h +10 -10
  390. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  391. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  393. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  394. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  396. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  397. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  399. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  400. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  401. data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
  402. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  403. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  404. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  405. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  406. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  407. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  408. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  409. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  410. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  411. data/ext/pg_query/include/postgres/varatt.h +1 -1
  412. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  413. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  414. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  415. data/ext/pg_query/pg_query_normalize.c +42 -1
  416. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  417. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  418. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  419. data/ext/pg_query/pg_query_scan.c +1 -1
  420. data/ext/pg_query/postgres_deparse.c +601 -172
  421. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  422. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  423. data/ext/pg_query/src_backend_commands_define.c +2 -3
  424. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  425. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  426. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  427. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  428. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  429. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  430. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  431. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  432. data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
  433. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  434. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  435. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  436. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  437. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  438. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  439. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  440. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  441. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  442. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  443. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  444. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  445. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  446. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  447. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  448. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  449. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  450. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  451. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  452. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  453. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  454. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  455. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  456. data/ext/pg_query/src_common_encnames.c +43 -44
  457. data/ext/pg_query/src_common_hashfn.c +1 -1
  458. data/ext/pg_query/src_common_keywords.c +1 -1
  459. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  460. data/ext/pg_query/src_common_kwlookup.c +1 -1
  461. data/ext/pg_query/src_common_psprintf.c +3 -3
  462. data/ext/pg_query/src_common_stringinfo.c +18 -1
  463. data/ext/pg_query/src_common_wchar.c +92 -109
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  466. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  467. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  468. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  469. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  470. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  471. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  472. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  473. data/ext/pg_query/src_port_snprintf.c +15 -18
  474. data/ext/pg_query/src_port_strerror.c +1 -3
  475. data/ext/pg_query/src_port_strlcpy.c +1 -1
  476. data/lib/pg_query/fingerprint.rb +3 -5
  477. data/lib/pg_query/param_refs.rb +2 -2
  478. data/lib/pg_query/parse.rb +5 -7
  479. data/lib/pg_query/parse_error.rb +1 -0
  480. data/lib/pg_query/pg_query_pb.rb +27 -25
  481. data/lib/pg_query/scan.rb +1 -0
  482. data/lib/pg_query/treewalker.rb +38 -15
  483. data/lib/pg_query/truncate.rb +18 -20
  484. data/lib/pg_query/version.rb +1 -1
  485. metadata +31 -82
  486. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  487. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  488. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  489. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
  490. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -4,7 +4,7 @@
4
4
  * 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);
@@ -0,0 +1,84 @@
1
+ /*-----------------------------------------------------------------------
2
+ * ascii.h
3
+ *
4
+ * Portions Copyright (c) 1999-2024, PostgreSQL Global Development Group
5
+ *
6
+ * src/include/utils/ascii.h
7
+ *
8
+ *-----------------------------------------------------------------------
9
+ */
10
+
11
+ #ifndef _ASCII_H_
12
+ #define _ASCII_H_
13
+
14
+ #include "port/simd.h"
15
+
16
+ extern void ascii_safe_strlcpy(char *dest, const char *src, size_t destsiz);
17
+
18
+ /*
19
+ * Verify a chunk of bytes for valid ASCII.
20
+ *
21
+ * Returns false if the input contains any zero bytes or bytes with the
22
+ * high-bit set. Input len must be a multiple of the chunk size (8 or 16).
23
+ */
24
+ static inline bool
25
+ is_valid_ascii(const unsigned char *s, int len)
26
+ {
27
+ const unsigned char *const s_end = s + len;
28
+ Vector8 chunk;
29
+ Vector8 highbit_cum = vector8_broadcast(0);
30
+ #ifdef USE_NO_SIMD
31
+ Vector8 zero_cum = vector8_broadcast(0x80);
32
+ #endif
33
+
34
+ Assert(len % sizeof(chunk) == 0);
35
+
36
+ while (s < s_end)
37
+ {
38
+ vector8_load(&chunk, s);
39
+
40
+ /* Capture any zero bytes in this chunk. */
41
+ #ifdef USE_NO_SIMD
42
+
43
+ /*
44
+ * First, add 0x7f to each byte. This sets the high bit in each byte,
45
+ * unless it was a zero. If any resulting high bits are zero, the
46
+ * corresponding high bits in the zero accumulator will be cleared.
47
+ *
48
+ * If none of the bytes in the chunk had the high bit set, the max
49
+ * value each byte can have after the addition is 0x7f + 0x7f = 0xfe,
50
+ * and we don't need to worry about carrying over to the next byte. If
51
+ * any input bytes did have the high bit set, it doesn't matter
52
+ * because we check for those separately.
53
+ */
54
+ zero_cum &= (chunk + vector8_broadcast(0x7F));
55
+ #else
56
+
57
+ /*
58
+ * Set all bits in each lane of the highbit accumulator where input
59
+ * bytes are zero.
60
+ */
61
+ highbit_cum = vector8_or(highbit_cum,
62
+ vector8_eq(chunk, vector8_broadcast(0)));
63
+ #endif
64
+
65
+ /* Capture all set bits in this chunk. */
66
+ highbit_cum = vector8_or(highbit_cum, chunk);
67
+
68
+ s += sizeof(chunk);
69
+ }
70
+
71
+ /* Check if any high bits in the high bit accumulator got set. */
72
+ if (vector8_is_highbit_set(highbit_cum))
73
+ return false;
74
+
75
+ #ifdef USE_NO_SIMD
76
+ /* Check if any high bits in the zero accumulator got cleared. */
77
+ if (zero_cum != vector8_broadcast(0x80))
78
+ return false;
79
+ #endif
80
+
81
+ return true;
82
+ }
83
+
84
+ #endif /* _ASCII_H_ */
@@ -6,7 +6,7 @@
6
6
  * backend's command progress counters, without ascribing meaning to the
7
7
  * individual fields. See commands/progress.h and system_views.sql for that.
8
8
  *
9
- * Copyright (c) 2001-2023, PostgreSQL Global Development Group
9
+ * Copyright (c) 2001-2024, PostgreSQL Global Development Group
10
10
  *
11
11
  * src/include/utils/backend_progress.h
12
12
  * ----------
@@ -27,7 +27,7 @@ typedef enum ProgressCommandType
27
27
  PROGRESS_COMMAND_CLUSTER,
28
28
  PROGRESS_COMMAND_CREATE_INDEX,
29
29
  PROGRESS_COMMAND_BASEBACKUP,
30
- PROGRESS_COMMAND_COPY
30
+ PROGRESS_COMMAND_COPY,
31
31
  } ProgressCommandType;
32
32
 
33
33
  #define PGSTAT_NUM_PROGRESS_PARAM 20
@@ -37,6 +37,7 @@ extern void pgstat_progress_start_command(ProgressCommandType cmdtype,
37
37
  Oid relid);
38
38
  extern void pgstat_progress_update_param(int index, int64 val);
39
39
  extern void pgstat_progress_incr_param(int index, int64 incr);
40
+ extern void pgstat_progress_parallel_incr_param(int index, int64 incr);
40
41
  extern void pgstat_progress_update_multi_param(int nparam, const int *index,
41
42
  const int64 *val);
42
43
  extern void pgstat_progress_end_command(void);
@@ -2,7 +2,7 @@
2
2
  * backend_status.h
3
3
  * Definitions related to backend status reporting
4
4
  *
5
- * Copyright (c) 2001-2023, PostgreSQL Global Development Group
5
+ * Copyright (c) 2001-2024, PostgreSQL Global Development Group
6
6
  *
7
7
  * src/include/utils/backend_status.h
8
8
  * ----------
@@ -13,7 +13,7 @@
13
13
  #include "datatype/timestamp.h"
14
14
  #include "libpq/pqcomm.h"
15
15
  #include "miscadmin.h" /* for BackendType */
16
- #include "storage/backendid.h"
16
+ #include "storage/procnumber.h"
17
17
  #include "utils/backend_progress.h"
18
18
 
19
19
 
@@ -29,7 +29,7 @@ typedef enum BackendState
29
29
  STATE_IDLEINTRANSACTION,
30
30
  STATE_FASTPATH,
31
31
  STATE_IDLEINTRANSACTION_ABORTED,
32
- STATE_DISABLED
32
+ STATE_DISABLED,
33
33
  } BackendState;
34
34
 
35
35
 
@@ -87,7 +87,7 @@ typedef struct PgBackendGSSStatus
87
87
  *
88
88
  * Each live backend maintains a PgBackendStatus struct in shared memory
89
89
  * showing its current activity. (The structs are allocated according to
90
- * BackendId, but that is not critical.) Note that this is unrelated to the
90
+ * ProcNumber, but that is not critical.) Note that this is unrelated to the
91
91
  * cumulative stats system (i.e. pgstat.c et al).
92
92
  *
93
93
  * Each auxiliary process also maintains a PgBackendStatus struct in shared
@@ -250,11 +250,9 @@ typedef struct LocalPgBackendStatus
250
250
  PgBackendStatus backendStatus;
251
251
 
252
252
  /*
253
- * The backend ID. For auxiliary processes, this will be set to a value
254
- * greater than MaxBackends (since auxiliary processes do not have proper
255
- * backend IDs).
253
+ * The proc number.
256
254
  */
257
- BackendId backend_id;
255
+ ProcNumber proc_number;
258
256
 
259
257
  /*
260
258
  * The xid of the current transaction if available, InvalidTransactionId
@@ -333,8 +331,8 @@ extern uint64 pgstat_get_my_query_id(void);
333
331
  * ----------
334
332
  */
335
333
  extern int pgstat_fetch_stat_numbackends(void);
336
- extern PgBackendStatus *pgstat_get_beentry_by_backend_id(BackendId beid);
337
- extern LocalPgBackendStatus *pgstat_get_local_beentry_by_backend_id(BackendId beid);
334
+ extern PgBackendStatus *pgstat_get_beentry_by_proc_number(ProcNumber procNumber);
335
+ extern LocalPgBackendStatus *pgstat_get_local_beentry_by_proc_number(ProcNumber procNumber);
338
336
  extern LocalPgBackendStatus *pgstat_get_local_beentry_by_index(int idx);
339
337
  extern char *pgstat_clip_activity(const char *raw_activity);
340
338
 
@@ -4,7 +4,7 @@
4
4
  * Declarations for operations on built-in types.
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/builtins.h
@@ -28,6 +28,9 @@ extern bool parse_bool_with_len(const char *value, size_t len, bool *result);
28
28
  /* domains.c */
29
29
  extern void domain_check(Datum value, bool isnull, Oid domainType,
30
30
  void **extra, MemoryContext mcxt);
31
+ extern bool domain_check_safe(Datum value, bool isnull, Oid domainType,
32
+ void **extra, MemoryContext mcxt,
33
+ Node *escontext);
31
34
  extern int errdatatype(Oid datatypeOid);
32
35
  extern int errdomainconstraint(Oid datatypeOid, const char *conname);
33
36
 
@@ -4,7 +4,7 @@
4
4
  * Declarations for BYTEA data type support.
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/bytea.h
@@ -19,7 +19,7 @@
19
19
  typedef enum
20
20
  {
21
21
  BYTEA_OUTPUT_ESCAPE,
22
- BYTEA_OUTPUT_HEX
22
+ BYTEA_OUTPUT_HEX,
23
23
  } ByteaOutputType;
24
24
 
25
25
  extern PGDLLIMPORT int bytea_output; /* ByteaOutputType, but int for GUC
@@ -10,7 +10,7 @@
10
10
  * guarantee that there can only be one matching row for a key combination.
11
11
  *
12
12
  *
13
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
13
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
14
14
  * Portions Copyright (c) 1994, Regents of the University of California
15
15
  *
16
16
  * src/include/utils/catcache.h
@@ -51,9 +51,11 @@ typedef struct catcache
51
51
  CCFastEqualFN cc_fastequal[CATCACHE_MAXKEYS]; /* fast equal function for
52
52
  * each key */
53
53
  int cc_keyno[CATCACHE_MAXKEYS]; /* AttrNumber of each key */
54
- dlist_head cc_lists; /* list of CatCList structs */
55
- int cc_ntup; /* # of tuples currently in this cache */
56
54
  int cc_nkeys; /* # of keys (1..CATCACHE_MAXKEYS) */
55
+ int cc_ntup; /* # of tuples currently in this cache */
56
+ int cc_nlist; /* # of CatCLists currently in this cache */
57
+ int cc_nlbuckets; /* # of CatCList hash buckets in this cache */
58
+ dlist_head *cc_lbucket; /* hash buckets for CatCLists */
57
59
  const char *cc_relname; /* name of relation the tuples come from */
58
60
  Oid cc_reloid; /* OID of relation the tuples come from */
59
61
  Oid cc_indexoid; /* OID of index matching cache keys */
@@ -218,6 +220,7 @@ extern CatCList *SearchCatCacheList(CatCache *cache, int nkeys,
218
220
  extern void ReleaseCatCacheList(CatCList *list);
219
221
 
220
222
  extern void ResetCatalogCaches(void);
223
+ extern void ResetCatalogCachesExt(bool debug_discard);
221
224
  extern void CatalogCacheFlushCatalog(Oid catId);
222
225
  extern void CatCacheInvalidate(CatCache *cache, uint32 hashValue);
223
226
  extern void PrepareToInvalidateCacheTuple(Relation relation,
@@ -225,7 +228,4 @@ extern void PrepareToInvalidateCacheTuple(Relation relation,
225
228
  HeapTuple newtuple,
226
229
  void (*function) (int, uint32, Oid));
227
230
 
228
- extern void PrintCatCacheLeakWarning(HeapTuple tuple);
229
- extern void PrintCatCacheListLeakWarning(CatCList *list);
230
-
231
231
  #endif /* CATCACHE_H */
@@ -4,7 +4,7 @@
4
4
  * Definitions for the SQL "date" and "time" types.
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/date.h
@@ -6,7 +6,7 @@
6
6
  * including date, and time.
7
7
  *
8
8
  *
9
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
10
10
  * Portions Copyright (c) 1994, Regents of the University of California
11
11
  *
12
12
  * src/include/utils/datetime.h
@@ -348,6 +348,9 @@ extern int DecodeUnits(int field, const char *lowtoken, int *val);
348
348
  extern int DecodeTimezoneName(const char *tzname, int *offset, pg_tz **tz);
349
349
  extern pg_tz *DecodeTimezoneNameToTz(const char *tzname);
350
350
 
351
+ extern int DecodeTimezoneAbbrevPrefix(const char *str,
352
+ int *offset, pg_tz **tz);
353
+
351
354
  extern int j2day(int date);
352
355
 
353
356
  extern struct Node *TemporalSimplify(int32 max_precis, struct Node *node);
@@ -8,7 +8,7 @@
8
8
  * of the Datum. (We do it this way because in most situations the caller
9
9
  * can look up the info just once and use it for many per-datum operations.)
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/utils/datum.h
@@ -3,7 +3,7 @@
3
3
  * dsa.h
4
4
  * Dynamic shared memory areas.
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
  * IDENTIFICATION
@@ -77,6 +77,31 @@ typedef pg_atomic_uint64 dsa_pointer_atomic;
77
77
  /* A sentinel value for dsa_pointer used to indicate failure to allocate. */
78
78
  #define InvalidDsaPointer ((dsa_pointer) 0)
79
79
 
80
+ /*
81
+ * The number of bits used to represent the offset part of a dsa_pointer.
82
+ * This controls the maximum size of a segment, the maximum possible
83
+ * allocation size and also the maximum number of segments per area.
84
+ */
85
+ #if SIZEOF_DSA_POINTER == 4
86
+ #define DSA_OFFSET_WIDTH 27 /* 32 segments of size up to 128MB */
87
+ #else
88
+ #define DSA_OFFSET_WIDTH 40 /* 1024 segments of size up to 1TB */
89
+ #endif
90
+
91
+ /*
92
+ * The default size of the initial DSM segment that backs a dsa_area created
93
+ * by dsa_create. After creating some number of segments of the initial size
94
+ * we'll double this size, and so on. Larger segments may be created if
95
+ * necessary to satisfy large requests.
96
+ */
97
+ #define DSA_DEFAULT_INIT_SEGMENT_SIZE ((size_t) (1 * 1024 * 1024))
98
+
99
+ /* The minimum size of a DSM segment. */
100
+ #define DSA_MIN_SEGMENT_SIZE ((size_t) (256 * 1024L))
101
+
102
+ /* The maximum size of a DSM segment. */
103
+ #define DSA_MAX_SEGMENT_SIZE ((size_t) 1 << DSA_OFFSET_WIDTH)
104
+
80
105
  /* Check if a dsa_pointer value is valid. */
81
106
  #define DsaPointerIsValid(x) ((x) != InvalidDsaPointer)
82
107
 
@@ -88,6 +113,17 @@ typedef pg_atomic_uint64 dsa_pointer_atomic;
88
113
  #define dsa_allocate0(area, size) \
89
114
  dsa_allocate_extended(area, size, DSA_ALLOC_ZERO)
90
115
 
116
+ /* Create dsa_area with default segment sizes */
117
+ #define dsa_create(tranch_id) \
118
+ dsa_create_ext(tranch_id, DSA_DEFAULT_INIT_SEGMENT_SIZE, \
119
+ DSA_MAX_SEGMENT_SIZE)
120
+
121
+ /* Create dsa_area with default segment sizes in an existing share memory space */
122
+ #define dsa_create_in_place(place, size, tranch_id, segment) \
123
+ dsa_create_in_place_ext(place, size, tranch_id, segment, \
124
+ DSA_DEFAULT_INIT_SEGMENT_SIZE, \
125
+ DSA_MAX_SEGMENT_SIZE)
126
+
91
127
  /*
92
128
  * The type used for dsa_area handles. dsa_handle values can be shared with
93
129
  * other processes, so that they can attach to them. This provides a way to
@@ -102,10 +138,12 @@ typedef dsm_handle dsa_handle;
102
138
  /* Sentinel value to use for invalid dsa_handles. */
103
139
  #define DSA_HANDLE_INVALID ((dsa_handle) DSM_HANDLE_INVALID)
104
140
 
105
-
106
- extern dsa_area *dsa_create(int tranche_id);
107
- extern dsa_area *dsa_create_in_place(void *place, size_t size,
108
- int tranche_id, dsm_segment *segment);
141
+ extern dsa_area *dsa_create_ext(int tranche_id, size_t init_segment_size,
142
+ size_t max_segment_size);
143
+ extern dsa_area *dsa_create_in_place_ext(void *place, size_t size,
144
+ int tranche_id, dsm_segment *segment,
145
+ size_t init_segment_size,
146
+ size_t max_segment_size);
109
147
  extern dsa_area *dsa_attach(dsa_handle handle);
110
148
  extern dsa_area *dsa_attach_in_place(void *place, dsm_segment *segment);
111
149
  extern void dsa_release_in_place(void *place);
@@ -121,6 +159,7 @@ extern dsa_handle dsa_get_handle(dsa_area *area);
121
159
  extern dsa_pointer dsa_allocate_extended(dsa_area *area, size_t size, int flags);
122
160
  extern void dsa_free(dsa_area *area, dsa_pointer dp);
123
161
  extern void *dsa_get_address(dsa_area *area, dsa_pointer dp);
162
+ extern size_t dsa_get_total_size(dsa_area *area);
124
163
  extern void dsa_trim(dsa_area *area);
125
164
  extern void dsa_dump(dsa_area *area);
126
165
 
@@ -4,7 +4,7 @@
4
4
  * POSTGRES error reporting/logging 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/utils/elog.h
@@ -226,6 +226,7 @@ extern int internalerrquery(const char *query);
226
226
  extern int err_generic_string(int field, const char *str);
227
227
 
228
228
  extern int geterrcode(void);
229
+ extern int geterrlevel(void);
229
230
  extern int geterrposition(void);
230
231
  extern int getinternalerrposition(void);
231
232
 
@@ -492,7 +493,7 @@ typedef enum
492
493
  {
493
494
  PGERROR_TERSE, /* single-line error messages */
494
495
  PGERROR_DEFAULT, /* recommended style */
495
- PGERROR_VERBOSE /* all the facts, ma'am */
496
+ PGERROR_VERBOSE, /* all the facts, ma'am */
496
497
  } PGErrorVerbosity;
497
498
 
498
499
  extern PGDLLIMPORT int Log_error_verbosity;
@@ -536,10 +537,4 @@ extern void write_jsonlog(ErrorData *edata);
536
537
  */
537
538
  extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2);
538
539
 
539
- /*
540
- * Write a message to STDERR using only async-signal-safe functions. This can
541
- * be used to safely emit a message from a signal handler.
542
- */
543
- extern void write_stderr_signal_safe(const char *fmt);
544
-
545
540
  #endif /* ELOG_H */
@@ -157,6 +157,7 @@
157
157
  #define ERRCODE_NO_ACTIVE_SQL_TRANSACTION MAKE_SQLSTATE('2','5','P','0','1')
158
158
  #define ERRCODE_IN_FAILED_SQL_TRANSACTION MAKE_SQLSTATE('2','5','P','0','2')
159
159
  #define ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT MAKE_SQLSTATE('2','5','P','0','3')
160
+ #define ERRCODE_TRANSACTION_TIMEOUT MAKE_SQLSTATE('2','5','P','0','4')
160
161
 
161
162
  /* Class 26 - Invalid SQL Statement Name */
162
163
  #define ERRCODE_INVALID_SQL_STATEMENT_NAME MAKE_SQLSTATE('2','6','0','0','0')
@@ -305,9 +306,6 @@
305
306
  #define ERRCODE_UNDEFINED_FILE MAKE_SQLSTATE('5','8','P','0','1')
306
307
  #define ERRCODE_DUPLICATE_FILE MAKE_SQLSTATE('5','8','P','0','2')
307
308
 
308
- /* Class 72 - Snapshot Failure */
309
- #define ERRCODE_SNAPSHOT_TOO_OLD MAKE_SQLSTATE('7','2','0','0','0')
310
-
311
309
  /* Class F0 - Configuration File Error */
312
310
  #define ERRCODE_CONFIG_FILE_ERROR MAKE_SQLSTATE('F','0','0','0','0')
313
311
  #define ERRCODE_LOCK_FILE_EXISTS MAKE_SQLSTATE('F','0','0','0','1')
@@ -34,7 +34,7 @@
34
34
  * value if they fail partway through.
35
35
  *
36
36
  *
37
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
37
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
38
38
  * Portions Copyright (c) 1994, Regents of the University of California
39
39
  *
40
40
  * src/include/utils/expandeddatum.h
@@ -3,7 +3,7 @@
3
3
  * expandedrecord.h
4
4
  * Declarations for composite expanded objects.
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/expandedrecord.h
@@ -3,7 +3,7 @@
3
3
  * float.h
4
4
  * Definitions for the built-in floating-point types
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
  *