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
@@ -9,7 +9,7 @@
9
9
  * bootstrap file from these header files.)
10
10
  *
11
11
  *
12
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
12
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
13
13
  * Portions Copyright (c) 1994, Regents of the University of California
14
14
  *
15
15
  * src/include/catalog/genbki.h
@@ -76,14 +76,14 @@
76
76
  * The first two arguments are the index's name and OID. The third argument
77
77
  * is the name of a #define to generate for its OID. References to the index
78
78
  * in the C code should always use these #defines, not the actual index name
79
- * (much less the numeric OID). The rest is much like a standard 'create
80
- * index' SQL command.
79
+ * (much less the numeric OID). The fourth argument is the table name. The
80
+ * rest is much like a standard 'create index' SQL command.
81
81
  *
82
82
  * The macro definitions are just to keep the C compiler from spitting up.
83
83
  */
84
- #define DECLARE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
85
- #define DECLARE_UNIQUE_INDEX(name,oid,oidmacro,decl) extern int no_such_variable
86
- #define DECLARE_UNIQUE_INDEX_PKEY(name,oid,oidmacro,decl) extern int no_such_variable
84
+ #define DECLARE_INDEX(name,oid,oidmacro,tblname,decl) extern int no_such_variable
85
+ #define DECLARE_UNIQUE_INDEX(name,oid,oidmacro,tblname,decl) extern int no_such_variable
86
+ #define DECLARE_UNIQUE_INDEX_PKEY(name,oid,oidmacro,tblname,decl) extern int no_such_variable
87
87
 
88
88
  /*
89
89
  * These lines inform genbki.pl about manually-assigned OIDs that do not
@@ -120,6 +120,12 @@
120
120
  #define DECLARE_ARRAY_FOREIGN_KEY(cols,reftbl,refcols) extern int no_such_variable
121
121
  #define DECLARE_ARRAY_FOREIGN_KEY_OPT(cols,reftbl,refcols) extern int no_such_variable
122
122
 
123
+ /*
124
+ * Create a syscache with the given name, index, and bucket size. See
125
+ * syscache.c.
126
+ */
127
+ #define MAKE_SYSCACHE(name,idxname,nbuckets) extern int no_such_variable
128
+
123
129
  /* The following are never defined; they are here only for documentation. */
124
130
 
125
131
  /*
@@ -4,7 +4,7 @@
4
4
  * prototypes for catalog/index.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/catalog/index.h
@@ -26,7 +26,7 @@ typedef enum
26
26
  INDEX_CREATE_SET_READY,
27
27
  INDEX_CREATE_SET_VALID,
28
28
  INDEX_DROP_CLEAR_VALID,
29
- INDEX_DROP_SET_DEAD
29
+ INDEX_DROP_SET_DEAD,
30
30
  } IndexStateFlagsAction;
31
31
 
32
32
  /* options for REINDEX */
@@ -54,9 +54,9 @@ typedef struct ValidateIndexState
54
54
  } ValidateIndexState;
55
55
 
56
56
  extern void index_check_primary_key(Relation heapRel,
57
- IndexInfo *indexInfo,
57
+ const IndexInfo *indexInfo,
58
58
  bool is_alter_table,
59
- IndexStmt *stmt);
59
+ const IndexStmt *stmt);
60
60
 
61
61
  #define INDEX_CREATE_IS_PRIMARY (1 << 0)
62
62
  #define INDEX_CREATE_ADD_CONSTRAINT (1 << 1)
@@ -73,12 +73,14 @@ extern Oid index_create(Relation heapRelation,
73
73
  Oid parentConstraintId,
74
74
  RelFileNumber relFileNumber,
75
75
  IndexInfo *indexInfo,
76
- List *indexColNames,
77
- Oid accessMethodObjectId,
76
+ const List *indexColNames,
77
+ Oid accessMethodId,
78
78
  Oid tableSpaceId,
79
- Oid *collationObjectId,
80
- Oid *classObjectId,
81
- int16 *coloptions,
79
+ const Oid *collationIds,
80
+ const Oid *opclassIds,
81
+ const Datum *opclassOptions,
82
+ const int16 *coloptions,
83
+ const NullableDatum *stattargets,
82
84
  Datum reloptions,
83
85
  bits16 flags,
84
86
  bits16 constr_flags,
@@ -110,7 +112,7 @@ extern void index_concurrently_set_dead(Oid heapId,
110
112
  extern ObjectAddress index_constraint_create(Relation heapRelation,
111
113
  Oid indexRelationId,
112
114
  Oid parentConstraintId,
113
- IndexInfo *indexInfo,
115
+ const IndexInfo *indexInfo,
114
116
  const char *constraintName,
115
117
  char constraintType,
116
118
  bits16 constr_flags,
@@ -123,10 +125,10 @@ extern IndexInfo *BuildIndexInfo(Relation index);
123
125
 
124
126
  extern IndexInfo *BuildDummyIndexInfo(Relation index);
125
127
 
126
- extern bool CompareIndexInfo(IndexInfo *info1, IndexInfo *info2,
127
- Oid *collations1, Oid *collations2,
128
- Oid *opfamilies1, Oid *opfamilies2,
129
- AttrMap *attmap);
128
+ extern bool CompareIndexInfo(const IndexInfo *info1, const IndexInfo *info2,
129
+ const Oid *collations1, const Oid *collations2,
130
+ const Oid *opfamilies1, const Oid *opfamilies2,
131
+ const AttrMap *attmap);
130
132
 
131
133
  extern void BuildSpeculativeIndexInfo(Relation index, IndexInfo *ii);
132
134
 
@@ -148,8 +150,9 @@ extern void index_set_state_flags(Oid indexId, IndexStateFlagsAction action);
148
150
 
149
151
  extern Oid IndexGetRelation(Oid indexId, bool missing_ok);
150
152
 
151
- extern void reindex_index(Oid indexId, bool skip_constraint_checks,
152
- char persistence, ReindexParams *params);
153
+ extern void reindex_index(const ReindexStmt *stmt, Oid indexId,
154
+ bool skip_constraint_checks, char persistence,
155
+ const ReindexParams *params);
153
156
 
154
157
  /* Flag bits for reindex_relation(): */
155
158
  #define REINDEX_REL_PROCESS_TOAST 0x01
@@ -158,7 +161,8 @@ extern void reindex_index(Oid indexId, bool skip_constraint_checks,
158
161
  #define REINDEX_REL_FORCE_INDEXES_UNLOGGED 0x08
159
162
  #define REINDEX_REL_FORCE_INDEXES_PERMANENT 0x10
160
163
 
161
- extern bool reindex_relation(Oid relid, int flags, ReindexParams *params);
164
+ extern bool reindex_relation(const ReindexStmt *stmt, Oid relid, int flags,
165
+ const ReindexParams *params);
162
166
 
163
167
  extern bool ReindexIsProcessingHeap(Oid heapOid);
164
168
  extern bool ReindexIsProcessingIndex(Oid indexOid);
@@ -166,7 +170,7 @@ extern bool ReindexIsProcessingIndex(Oid indexOid);
166
170
  extern void ResetReindexState(int nestLevel);
167
171
  extern Size EstimateReindexStateSpace(void);
168
172
  extern void SerializeReindexState(Size maxsize, char *start_address);
169
- extern void RestoreReindexState(void *reindexstate);
173
+ extern void RestoreReindexState(const void *reindexstate);
170
174
 
171
175
  extern void IndexSetParentIndex(Relation partitionIdx, Oid parentOid);
172
176
 
@@ -5,7 +5,7 @@
5
5
  * on system catalogs
6
6
  *
7
7
  *
8
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/catalog/indexing.h
@@ -4,7 +4,7 @@
4
4
  * prototypes for functions in backend/catalog/namespace.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/catalog/namespace.h
@@ -16,6 +16,7 @@
16
16
 
17
17
  #include "nodes/primnodes.h"
18
18
  #include "storage/lock.h"
19
+ #include "storage/procnumber.h"
19
20
 
20
21
 
21
22
  /*
@@ -45,23 +46,23 @@ typedef enum TempNamespaceStatus
45
46
  {
46
47
  TEMP_NAMESPACE_NOT_TEMP, /* nonexistent, or non-temp namespace */
47
48
  TEMP_NAMESPACE_IDLE, /* exists, belongs to no active session */
48
- TEMP_NAMESPACE_IN_USE /* belongs to some active session */
49
+ TEMP_NAMESPACE_IN_USE, /* belongs to some active session */
49
50
  } TempNamespaceStatus;
50
51
 
51
52
  /*
52
- * Structure for xxxOverrideSearchPath functions
53
+ * Structure for xxxSearchPathMatcher functions
53
54
  *
54
55
  * The generation counter is private to namespace.c and shouldn't be touched
55
56
  * by other code. It can be initialized to zero if necessary (that means
56
57
  * "not known equal to the current active path").
57
58
  */
58
- typedef struct OverrideSearchPath
59
+ typedef struct SearchPathMatcher
59
60
  {
60
61
  List *schemas; /* OIDs of explicitly named schemas */
61
62
  bool addCatalog; /* implicitly prepend pg_catalog? */
62
63
  bool addTemp; /* implicitly prepend temp schema? */
63
64
  uint64 generation; /* for quick detection of equality to active */
64
- } OverrideSearchPath;
65
+ } SearchPathMatcher;
65
66
 
66
67
  /*
67
68
  * Option flag bits for RangeVarGetRelidExtended().
@@ -70,8 +71,8 @@ typedef enum RVROption
70
71
  {
71
72
  RVR_MISSING_OK = 1 << 0, /* don't error if relation doesn't exist */
72
73
  RVR_NOWAIT = 1 << 1, /* error if relation cannot be locked */
73
- RVR_SKIP_LOCKED = 1 << 2 /* skip if relation cannot be locked */
74
- } RVROption;
74
+ RVR_SKIP_LOCKED = 1 << 2, /* skip if relation cannot be locked */
75
+ } RVROption;
75
76
 
76
77
  typedef void (*RangeVarGetRelidCallback) (const RangeVar *relation, Oid relId,
77
78
  Oid oldRelId, void *callback_arg);
@@ -122,7 +123,7 @@ extern Oid ConversionGetConid(const char *conname);
122
123
  extern bool ConversionIsVisible(Oid conid);
123
124
 
124
125
  extern Oid get_statistics_object_oid(List *names, bool missing_ok);
125
- extern bool StatisticsObjIsVisible(Oid relid);
126
+ extern bool StatisticsObjIsVisible(Oid stxid);
126
127
 
127
128
  extern Oid get_ts_parser_oid(List *names, bool missing_ok);
128
129
  extern bool TSParserIsVisible(Oid prsId);
@@ -136,7 +137,7 @@ extern bool TSTemplateIsVisible(Oid tmplId);
136
137
  extern Oid get_ts_config_oid(List *names, bool missing_ok);
137
138
  extern bool TSConfigIsVisible(Oid cfgid);
138
139
 
139
- extern void DeconstructQualifiedName(List *names,
140
+ extern void DeconstructQualifiedName(const List *names,
140
141
  char **nspname_p,
141
142
  char **objname_p);
142
143
  extern Oid LookupNamespaceNoError(const char *nspname);
@@ -145,10 +146,10 @@ extern Oid get_namespace_oid(const char *nspname, bool missing_ok);
145
146
 
146
147
  extern Oid LookupCreationNamespace(const char *nspname);
147
148
  extern void CheckSetNamespace(Oid oldNspOid, Oid nspOid);
148
- extern Oid QualifiedNameGetCreationNamespace(List *names, char **objname_p);
149
- extern RangeVar *makeRangeVarFromNameList(List *names);
150
- extern char *NameListToString(List *names);
151
- extern char *NameListToQuotedString(List *names);
149
+ extern Oid QualifiedNameGetCreationNamespace(const List *names, char **objname_p);
150
+ extern RangeVar *makeRangeVarFromNameList(const List *names);
151
+ extern char *NameListToString(const List *names);
152
+ extern char *NameListToQuotedString(const List *names);
152
153
 
153
154
  extern bool isTempNamespace(Oid namespaceId);
154
155
  extern bool isTempToastNamespace(Oid namespaceId);
@@ -156,7 +157,7 @@ extern bool isTempOrTempToastNamespace(Oid namespaceId);
156
157
  extern bool isAnyTempNamespace(Oid namespaceId);
157
158
  extern bool isOtherTempNamespace(Oid namespaceId);
158
159
  extern TempNamespaceStatus checkTempNamespaceStatus(Oid namespaceId);
159
- extern int GetTempNamespaceBackendId(Oid namespaceId);
160
+ extern ProcNumber GetTempNamespaceProcNumber(Oid namespaceId);
160
161
  extern Oid GetTempToastNamespace(void);
161
162
  extern void GetTempNamespaceState(Oid *tempNamespaceId,
162
163
  Oid *tempToastNamespaceId);
@@ -164,11 +165,9 @@ extern void SetTempNamespaceState(Oid tempNamespaceId,
164
165
  Oid tempToastNamespaceId);
165
166
  extern void ResetTempTableNamespace(void);
166
167
 
167
- extern OverrideSearchPath *GetOverrideSearchPath(MemoryContext context);
168
- extern OverrideSearchPath *CopyOverrideSearchPath(OverrideSearchPath *path);
169
- extern bool OverrideSearchPathMatchesCurrent(OverrideSearchPath *path);
170
- extern void PushOverrideSearchPath(OverrideSearchPath *newpath);
171
- extern void PopOverrideSearchPath(void);
168
+ extern SearchPathMatcher *GetSearchPathMatcher(MemoryContext context);
169
+ extern SearchPathMatcher *CopySearchPathMatcher(SearchPathMatcher *path);
170
+ extern bool SearchPathMatchesCurrentEnvironment(SearchPathMatcher *path);
172
171
 
173
172
  extern Oid get_collation_oid(List *collname, bool missing_ok);
174
173
  extern Oid get_conversion_oid(List *conname, bool missing_ok);
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Object access hooks.
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
 
@@ -52,7 +52,7 @@ typedef enum ObjectAccessType
52
52
  OAT_POST_ALTER,
53
53
  OAT_NAMESPACE_SEARCH,
54
54
  OAT_FUNCTION_EXECUTE,
55
- OAT_TRUNCATE
55
+ OAT_TRUNCATE,
56
56
  } ObjectAccessType;
57
57
 
58
58
  /*
@@ -3,7 +3,7 @@
3
3
  * objectaddress.h
4
4
  * functions for working with object addresses
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/catalog/objectaddress.h
@@ -69,6 +69,10 @@ extern bool get_object_namensp_unique(Oid class_id);
69
69
 
70
70
  extern HeapTuple get_catalog_object_by_oid(Relation catalog,
71
71
  AttrNumber oidcol, Oid objectId);
72
+ extern HeapTuple get_catalog_object_by_oid_extended(Relation catalog,
73
+ AttrNumber oidcol,
74
+ Oid objectId,
75
+ bool locktup);
72
76
 
73
77
  extern char *getObjectDescription(const ObjectAddress *object,
74
78
  bool missing_ok);
@@ -4,7 +4,7 @@
4
4
  * definition of the "aggregate" system catalog (pg_aggregate)
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/catalog/pg_aggregate.h
@@ -110,7 +110,9 @@ typedef FormData_pg_aggregate *Form_pg_aggregate;
110
110
 
111
111
  DECLARE_TOAST(pg_aggregate, 4159, 4160);
112
112
 
113
- DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, on pg_aggregate using btree(aggfnoid oid_ops));
113
+ DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, pg_aggregate, btree(aggfnoid oid_ops));
114
+
115
+ MAKE_SYSCACHE(AGGFNOID, pg_aggregate_fnoid_index, 16);
114
116
 
115
117
  #ifdef EXPOSE_TO_CLIENT_CODE
116
118
 
@@ -3,7 +3,7 @@
3
3
  * pg_aggregate_d.h
4
4
  * Macro definitions for pg_aggregate
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
  * NOTES
@@ -4,7 +4,7 @@
4
4
  * definition of the "access method" system catalog (pg_am)
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/catalog/pg_am.h
@@ -47,8 +47,11 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
47
47
  */
48
48
  typedef FormData_pg_am *Form_pg_am;
49
49
 
50
- DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, on pg_am using btree(amname name_ops));
51
- DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, on pg_am using btree(oid oid_ops));
50
+ DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, pg_am, btree(amname name_ops));
51
+ DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, pg_am, btree(oid oid_ops));
52
+
53
+ MAKE_SYSCACHE(AMNAME, pg_am_name_index, 4);
54
+ MAKE_SYSCACHE(AMOID, pg_am_oid_index, 4);
52
55
 
53
56
  #ifdef EXPOSE_TO_CLIENT_CODE
54
57
 
@@ -3,7 +3,7 @@
3
3
  * pg_am_d.h
4
4
  * Macro definitions for pg_am
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
  * NOTES
@@ -8,7 +8,7 @@
8
8
  * relations need be included.
9
9
  *
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/catalog/pg_attribute.h
@@ -158,22 +158,22 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
158
158
  /* Number of times inherited from direct parent relation(s) */
159
159
  int16 attinhcount BKI_DEFAULT(0);
160
160
 
161
+ /* attribute's collation, if any */
162
+ Oid attcollation BKI_LOOKUP_OPT(pg_collation);
163
+
164
+ #ifdef CATALOG_VARLEN /* variable-length/nullable fields start here */
165
+ /* NOTE: The following fields are not present in tuple descriptors. */
166
+
161
167
  /*
162
168
  * attstattarget is the target number of statistics datapoints to collect
163
169
  * during VACUUM ANALYZE of this column. A zero here indicates that we do
164
- * not wish to collect any stats about this column. A "-1" here indicates
165
- * that no value has been explicitly set for this column, so ANALYZE
166
- * should use the default setting.
170
+ * not wish to collect any stats about this column. A null value here
171
+ * indicates that no value has been explicitly set for this column, so
172
+ * ANALYZE should use the default setting.
167
173
  *
168
- * int16 is sufficient because the max value is currently 10000.
174
+ * int16 is sufficient for the current max value (MAX_STATISTICS_TARGET).
169
175
  */
170
- int16 attstattarget BKI_DEFAULT(-1);
171
-
172
- /* attribute's collation, if any */
173
- Oid attcollation BKI_LOOKUP_OPT(pg_collation);
174
-
175
- #ifdef CATALOG_VARLEN /* variable-length fields start here */
176
- /* NOTE: The following fields are not present in tuple descriptors. */
176
+ int16 attstattarget BKI_DEFAULT(_null_) BKI_FORCE_NULL;
177
177
 
178
178
  /* Column-level access permissions */
179
179
  aclitem attacl[1] BKI_DEFAULT(_null_);
@@ -208,8 +208,25 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
208
208
  */
209
209
  typedef FormData_pg_attribute *Form_pg_attribute;
210
210
 
211
- DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, AttributeRelidNameIndexId, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
212
- DECLARE_UNIQUE_INDEX_PKEY(pg_attribute_relid_attnum_index, 2659, AttributeRelidNumIndexId, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
211
+ /*
212
+ * FormExtraData_pg_attribute contains (some of) the fields that are not in
213
+ * FormData_pg_attribute because they are excluded by CATALOG_VARLEN. It is
214
+ * meant to be used by DDL code so that the combination of
215
+ * FormData_pg_attribute (often via tuple descriptor) and
216
+ * FormExtraData_pg_attribute can be used to pass around all the information
217
+ * about an attribute. Fields can be included here as needed.
218
+ */
219
+ typedef struct FormExtraData_pg_attribute
220
+ {
221
+ NullableDatum attstattarget;
222
+ NullableDatum attoptions;
223
+ } FormExtraData_pg_attribute;
224
+
225
+ DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, AttributeRelidNameIndexId, pg_attribute, btree(attrelid oid_ops, attname name_ops));
226
+ DECLARE_UNIQUE_INDEX_PKEY(pg_attribute_relid_attnum_index, 2659, AttributeRelidNumIndexId, pg_attribute, btree(attrelid oid_ops, attnum int2_ops));
227
+
228
+ MAKE_SYSCACHE(ATTNAME, pg_attribute_relid_attnam_index, 32);
229
+ MAKE_SYSCACHE(ATTNUM, pg_attribute_relid_attnum_index, 128);
213
230
 
214
231
  #ifdef EXPOSE_TO_CLIENT_CODE
215
232
 
@@ -3,7 +3,7 @@
3
3
  * pg_attribute_d.h
4
4
  * Macro definitions for pg_attribute
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
  * NOTES
@@ -43,8 +43,8 @@
43
43
  #define Anum_pg_attribute_attisdropped 18
44
44
  #define Anum_pg_attribute_attislocal 19
45
45
  #define Anum_pg_attribute_attinhcount 20
46
- #define Anum_pg_attribute_attstattarget 21
47
- #define Anum_pg_attribute_attcollation 22
46
+ #define Anum_pg_attribute_attcollation 21
47
+ #define Anum_pg_attribute_attstattarget 22
48
48
  #define Anum_pg_attribute_attacl 23
49
49
  #define Anum_pg_attribute_attoptions 24
50
50
  #define Anum_pg_attribute_attfdwoptions 25
@@ -6,7 +6,7 @@
6
6
  * pg_shadow and pg_group are now publicly accessible views on pg_authid.
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/catalog/pg_authid.h
@@ -57,7 +57,10 @@ typedef FormData_pg_authid *Form_pg_authid;
57
57
 
58
58
  DECLARE_TOAST_WITH_MACRO(pg_authid, 4175, 4176, PgAuthidToastTable, PgAuthidToastIndex);
59
59
 
60
- DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId, on pg_authid using btree(rolname name_ops));
61
- DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId, on pg_authid using btree(oid oid_ops));
60
+ DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId, pg_authid, btree(rolname name_ops));
61
+ DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId, pg_authid, btree(oid oid_ops));
62
+
63
+ MAKE_SYSCACHE(AUTHNAME, pg_authid_rolname_index, 8);
64
+ MAKE_SYSCACHE(AUTHOID, pg_authid_oid_index, 8);
62
65
 
63
66
  #endif /* PG_AUTHID_H */
@@ -3,7 +3,7 @@
3
3
  * pg_authid_d.h
4
4
  * Macro definitions for pg_authid
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
  * NOTES
@@ -53,6 +53,7 @@
53
53
  #define ROLE_PG_EXECUTE_SERVER_PROGRAM 4571
54
54
  #define ROLE_PG_SIGNAL_BACKEND 4200
55
55
  #define ROLE_PG_CHECKPOINT 4544
56
+ #define ROLE_PG_MAINTAIN 6337
56
57
  #define ROLE_PG_USE_RESERVED_CONNECTIONS 4550
57
58
  #define ROLE_PG_CREATE_SUBSCRIPTION 6304
58
59
 
@@ -4,7 +4,7 @@
4
4
  * definition of the "relation" system catalog (pg_class)
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/catalog/pg_class.h
@@ -152,9 +152,12 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
152
152
  */
153
153
  typedef FormData_pg_class *Form_pg_class;
154
154
 
155
- DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId, on pg_class using btree(oid oid_ops));
156
- DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId, on pg_class using btree(relname name_ops, relnamespace oid_ops));
157
- DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId, on pg_class using btree(reltablespace oid_ops, relfilenode oid_ops));
155
+ DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId, pg_class, btree(oid oid_ops));
156
+ DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId, pg_class, btree(relname name_ops, relnamespace oid_ops));
157
+ DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId, pg_class, btree(reltablespace oid_ops, relfilenode oid_ops));
158
+
159
+ MAKE_SYSCACHE(RELOID, pg_class_oid_index, 128);
160
+ MAKE_SYSCACHE(RELNAMENSP, pg_class_relname_nsp_index, 128);
158
161
 
159
162
  #ifdef EXPOSE_TO_CLIENT_CODE
160
163
 
@@ -216,7 +219,9 @@ DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeInd
216
219
  /*
217
220
  * Relation kinds with a table access method (rd_tableam). Although sequences
218
221
  * use the heap table AM, they are enough of a special case in most uses that
219
- * they are not included here.
222
+ * they are not included here. Likewise, partitioned tables can have an access
223
+ * method defined so that their partitions can inherit it, but they do not set
224
+ * rd_tableam; hence, this is handled specially outside of this macro.
220
225
  */
221
226
  #define RELKIND_HAS_TABLE_AM(relkind) \
222
227
  ((relkind) == RELKIND_RELATION || \
@@ -3,7 +3,7 @@
3
3
  * pg_class_d.h
4
4
  * Macro definitions for pg_class
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
  * NOTES
@@ -119,7 +119,9 @@
119
119
  /*
120
120
  * Relation kinds with a table access method (rd_tableam). Although sequences
121
121
  * use the heap table AM, they are enough of a special case in most uses that
122
- * they are not included here.
122
+ * they are not included here. Likewise, partitioned tables can have an access
123
+ * method defined so that their partitions can inherit it, but they do not set
124
+ * rd_tableam; hence, this is handled specially outside of this macro.
123
125
  */
124
126
  #define RELKIND_HAS_TABLE_AM(relkind) \
125
127
  ((relkind) == RELKIND_RELATION || \
@@ -4,7 +4,7 @@
4
4
  * definition of the "collation" system catalog (pg_collation)
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/catalog/pg_collation.h
@@ -42,7 +42,7 @@ CATALOG(pg_collation,3456,CollationRelationId)
42
42
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
43
43
  text collcollate BKI_DEFAULT(_null_); /* LC_COLLATE setting */
44
44
  text collctype BKI_DEFAULT(_null_); /* LC_CTYPE setting */
45
- text colliculocale BKI_DEFAULT(_null_); /* ICU locale ID */
45
+ text colllocale BKI_DEFAULT(_null_); /* locale ID */
46
46
  text collicurules BKI_DEFAULT(_null_); /* ICU collation rules */
47
47
  text collversion BKI_DEFAULT(_null_); /* provider-dependent
48
48
  * version of collation
@@ -59,12 +59,16 @@ typedef FormData_pg_collation *Form_pg_collation;
59
59
 
60
60
  DECLARE_TOAST(pg_collation, 6175, 6176);
61
61
 
62
- DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId, on pg_collation using btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
63
- DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId, on pg_collation using btree(oid oid_ops));
62
+ DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId, pg_collation, btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
63
+ DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId, pg_collation, btree(oid oid_ops));
64
+
65
+ MAKE_SYSCACHE(COLLNAMEENCNSP, pg_collation_name_enc_nsp_index, 8);
66
+ MAKE_SYSCACHE(COLLOID, pg_collation_oid_index, 8);
64
67
 
65
68
  #ifdef EXPOSE_TO_CLIENT_CODE
66
69
 
67
70
  #define COLLPROVIDER_DEFAULT 'd'
71
+ #define COLLPROVIDER_BUILTIN 'b'
68
72
  #define COLLPROVIDER_ICU 'i'
69
73
  #define COLLPROVIDER_LIBC 'c'
70
74
 
@@ -73,6 +77,8 @@ collprovider_name(char c)
73
77
  {
74
78
  switch (c)
75
79
  {
80
+ case COLLPROVIDER_BUILTIN:
81
+ return "builtin";
76
82
  case COLLPROVIDER_ICU:
77
83
  return "icu";
78
84
  case COLLPROVIDER_LIBC:
@@ -91,7 +97,7 @@ extern Oid CollationCreate(const char *collname, Oid collnamespace,
91
97
  bool collisdeterministic,
92
98
  int32 collencoding,
93
99
  const char *collcollate, const char *collctype,
94
- const char *colliculocale,
100
+ const char *colllocale,
95
101
  const char *collicurules,
96
102
  const char *collversion,
97
103
  bool if_not_exists,
@@ -3,7 +3,7 @@
3
3
  * pg_collation_d.h
4
4
  * Macro definitions for pg_collation
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
  * NOTES
@@ -31,7 +31,7 @@
31
31
  #define Anum_pg_collation_collencoding 7
32
32
  #define Anum_pg_collation_collcollate 8
33
33
  #define Anum_pg_collation_collctype 9
34
- #define Anum_pg_collation_colliculocale 10
34
+ #define Anum_pg_collation_colllocale 10
35
35
  #define Anum_pg_collation_collicurules 11
36
36
  #define Anum_pg_collation_collversion 12
37
37
 
@@ -39,6 +39,7 @@
39
39
 
40
40
 
41
41
  #define COLLPROVIDER_DEFAULT 'd'
42
+ #define COLLPROVIDER_BUILTIN 'b'
42
43
  #define COLLPROVIDER_ICU 'i'
43
44
  #define COLLPROVIDER_LIBC 'c'
44
45
 
@@ -47,6 +48,8 @@ collprovider_name(char c)
47
48
  {
48
49
  switch (c)
49
50
  {
51
+ case COLLPROVIDER_BUILTIN:
52
+ return "builtin";
50
53
  case COLLPROVIDER_ICU:
51
54
  return "icu";
52
55
  case COLLPROVIDER_LIBC: