pg_query 4.2.1 → 5.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 (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +6 -8
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/extconf.rb +14 -4
  6. data/ext/pg_query/include/pg_query.h +27 -3
  7. data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
  29. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
  30. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  31. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  32. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  34. data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
  36. data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
  37. data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
  38. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  39. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  40. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
  42. data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
  43. data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
  44. data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
  45. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
  46. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  47. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
  48. data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
  49. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
  50. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
  52. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  53. data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
  54. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
  58. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
  60. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  82. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
  125. data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
  126. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
  127. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
  129. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  130. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
  132. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
  133. data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
  134. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
  135. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  136. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
  137. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  138. data/ext/pg_query/include/postgres/common/int.h +437 -0
  139. data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
  140. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  141. data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
  142. data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
  143. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  144. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  145. data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
  146. data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
  147. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
  148. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  149. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  150. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
  151. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  152. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  153. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  154. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
  155. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
  156. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
  157. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
  158. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  159. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  160. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
  161. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  162. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
  163. data/ext/pg_query/include/postgres/gram.h +1127 -0
  164. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  165. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
  166. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  167. data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
  168. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
  169. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  170. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
  171. data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
  172. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  173. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
  181. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  182. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  183. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
  184. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  185. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
  186. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
  192. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  193. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
  195. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  196. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  203. data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
  204. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  205. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  206. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
  208. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
  214. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
  215. data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
  216. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  224. data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
  225. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  226. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  227. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
  228. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  229. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
  230. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
  231. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  232. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
  233. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  234. data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
  235. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
  236. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
  237. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  238. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
  239. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
  240. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
  241. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
  242. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
  243. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  245. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
  248. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  249. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  250. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  251. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  252. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
  253. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  254. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  255. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  256. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  257. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  258. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  259. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  260. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  261. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  264. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  268. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  269. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  270. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  275. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  276. data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
  277. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  278. data/ext/pg_query/include/postgres/postgres.h +579 -0
  279. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  280. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
  281. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  285. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
  289. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
  290. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
  291. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
  292. data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
  293. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  294. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
  295. data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
  296. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
  297. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
  298. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
  299. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
  300. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  301. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  304. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
  305. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
  306. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  307. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
  308. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
  309. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
  310. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
  311. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
  312. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
  313. data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
  314. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
  315. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  316. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  317. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
  318. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
  320. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
  321. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
  323. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
  324. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  325. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  326. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
  329. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
  330. data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
  331. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  332. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
  333. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
  335. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
  336. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
  337. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  338. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  339. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
  340. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  341. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
  342. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
  343. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
  344. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
  345. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
  346. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  347. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
  348. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
  354. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
  355. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
  356. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  357. data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
  358. data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
  359. data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
  360. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
  361. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
  362. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  363. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  364. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
  365. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  367. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
  368. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  369. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  370. data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
  371. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
  372. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
  374. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
  375. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  376. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
  377. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
  378. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
  379. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
  381. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  382. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
  383. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  384. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  385. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
  386. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
  387. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  388. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
  389. data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
  390. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
  391. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
  392. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
  393. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  395. data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
  396. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
  397. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
  398. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  399. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  400. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
  401. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  402. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
  403. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
  405. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
  407. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
  408. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
  409. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
  411. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
  412. data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
  413. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
  414. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
  415. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
  416. data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
  417. data/ext/pg_query/pg_query.c +10 -1
  418. data/ext/pg_query/pg_query.pb-c.c +19755 -17757
  419. data/ext/pg_query/pg_query_deparse.c +1 -10635
  420. data/ext/pg_query/pg_query_fingerprint.c +12 -8
  421. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  422. data/ext/pg_query/pg_query_internal.h +1 -1
  423. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  424. data/ext/pg_query/pg_query_normalize.c +1 -1
  425. data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
  426. data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
  427. data/ext/pg_query/pg_query_parse.c +47 -5
  428. data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
  429. data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
  430. data/ext/pg_query/pg_query_ruby.c +5 -0
  431. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  432. data/ext/pg_query/pg_query_scan.c +1 -1
  433. data/ext/pg_query/pg_query_split.c +3 -3
  434. data/ext/pg_query/postgres_deparse.c +11067 -0
  435. data/ext/pg_query/postgres_deparse.h +9 -0
  436. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  437. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  438. data/ext/pg_query/src_backend_commands_define.c +1 -1
  439. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  440. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  441. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  442. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  443. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  444. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  445. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  446. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  447. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  448. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  449. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  450. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  451. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  452. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  453. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  454. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  455. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  456. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  457. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  458. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  459. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  460. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  461. data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
  462. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  463. data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
  464. data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
  465. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  466. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  467. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  468. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  469. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  470. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  471. data/ext/pg_query/src_common_encnames.c +4 -1
  472. data/ext/pg_query/src_common_hashfn.c +1 -1
  473. data/ext/pg_query/src_common_keywords.c +1 -1
  474. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  475. data/ext/pg_query/src_common_kwlookup.c +1 -1
  476. data/ext/pg_query/src_common_psprintf.c +1 -1
  477. data/ext/pg_query/src_common_stringinfo.c +4 -4
  478. data/ext/pg_query/src_common_wchar.c +9 -8
  479. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  480. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  481. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  482. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  483. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  484. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  485. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  486. data/ext/pg_query/src_port_pg_bitutils.c +79 -5
  487. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  488. data/ext/pg_query/src_port_snprintf.c +6 -10
  489. data/ext/pg_query/src_port_strerror.c +1 -1
  490. data/ext/pg_query/src_port_strlcpy.c +79 -0
  491. data/lib/pg_query/fingerprint.rb +2 -3
  492. data/lib/pg_query/node.rb +16 -11
  493. data/lib/pg_query/parse.rb +1 -1
  494. data/lib/pg_query/pg_query_pb.rb +166 -3191
  495. data/lib/pg_query/treewalker.rb +23 -5
  496. data/lib/pg_query/version.rb +1 -1
  497. metadata +432 -380
  498. data/ext/pg_query/guc-file.c +0 -0
  499. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  500. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  501. data/ext/pg_query/include/commands/variable.h +0 -38
  502. data/ext/pg_query/include/common/ip.h +0 -31
  503. data/ext/pg_query/include/getaddrinfo.h +0 -162
  504. data/ext/pg_query/include/kwlist_d.h +0 -1095
  505. data/ext/pg_query/include/parser/gram.h +0 -1101
  506. data/ext/pg_query/include/pg_config_os.h +0 -8
  507. data/ext/pg_query/include/portability/instr_time.h +0 -256
  508. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  509. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  510. data/ext/pg_query/include/postmaster/pgarch.h +0 -73
  511. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  512. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  513. data/ext/pg_query/include/utils/dynahash.h +0 -20
  514. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  515. data/ext/pg_query/include/utils/pidfile.h +0 -56
  516. data/ext/pg_query/include/utils/ps_status.h +0 -25
  517. data/ext/pg_query/include/utils/rls.h +0 -50
  518. data/ext/pg_query/include/utils/tzparser.h +0 -39
  519. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
  520. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  521. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  522. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  523. data/ext/pg_query/src_common_pg_prng.c +0 -152
  524. data/ext/pg_query/src_common_string.c +0 -92
  525. data/ext/pg_query/src_port_pgsleep.c +0 -69
  526. data/ext/pg_query/src_port_strnlen.c +0 -39
  527. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  528. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
  529. /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
  530. /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
  531. /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
@@ -11,7 +11,7 @@
11
11
  * at the same address. This means shared memory pointers can be passed
12
12
  * around directly between different processes.
13
13
  *
14
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
15
15
  * Portions Copyright (c) 1994, Regents of the University of California
16
16
  *
17
17
  * src/include/storage/shmem.h
@@ -24,13 +24,6 @@
24
24
  #include "utils/hsearch.h"
25
25
 
26
26
 
27
- /* shmqueue.c */
28
- typedef struct SHM_QUEUE
29
- {
30
- struct SHM_QUEUE *prev;
31
- struct SHM_QUEUE *next;
32
- } SHM_QUEUE;
33
-
34
27
  /* shmem.c */
35
28
  extern void InitShmemAccess(void *seghdr);
36
29
  extern void InitShmemAllocation(void);
@@ -63,19 +56,4 @@ typedef struct
63
56
  Size allocated_size; /* # bytes actually allocated */
64
57
  } ShmemIndexEnt;
65
58
 
66
- /*
67
- * prototypes for functions in shmqueue.c
68
- */
69
- extern void SHMQueueInit(SHM_QUEUE *queue);
70
- extern void SHMQueueElemInit(SHM_QUEUE *queue);
71
- extern void SHMQueueDelete(SHM_QUEUE *queue);
72
- extern void SHMQueueInsertBefore(SHM_QUEUE *queue, SHM_QUEUE *elem);
73
- extern void SHMQueueInsertAfter(SHM_QUEUE *queue, SHM_QUEUE *elem);
74
- extern Pointer SHMQueueNext(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
75
- Size linkOffset);
76
- extern Pointer SHMQueuePrev(const SHM_QUEUE *queue, const SHM_QUEUE *curElem,
77
- Size linkOffset);
78
- extern bool SHMQueueEmpty(const SHM_QUEUE *queue);
79
- extern bool SHMQueueIsDetached(const SHM_QUEUE *queue);
80
-
81
59
  #endif /* SHMEM_H */
@@ -4,7 +4,7 @@
4
4
  * POSTGRES shared cache invalidation communication definitions.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/storage/sinval.h
@@ -16,7 +16,7 @@
16
16
 
17
17
  #include <signal.h>
18
18
 
19
- #include "storage/relfilenode.h"
19
+ #include "storage/relfilelocator.h"
20
20
 
21
21
  /*
22
22
  * We support several types of shared-invalidation messages:
@@ -90,7 +90,7 @@ typedef struct
90
90
  int8 id; /* type field --- must be first */
91
91
  int8 backend_hi; /* high bits of backend ID, if temprel */
92
92
  uint16 backend_lo; /* low bits of backend ID, if temprel */
93
- RelFileNode rnode; /* spcNode, dbNode, relNode */
93
+ RelFileLocator rlocator; /* spcOid, dbOid, relNumber */
94
94
  } SharedInvalSmgrMsg;
95
95
 
96
96
  #define SHAREDINVALRELMAP_ID (-4)
@@ -12,7 +12,7 @@
12
12
  * The struct type SharedInvalidationMessage, defining the contents of
13
13
  * a single message, is defined in sinval.h.
14
14
  *
15
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
15
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
16
16
  * Portions Copyright (c) 1994, Regents of the University of California
17
17
  *
18
18
  * src/include/storage/sinvaladt.h
@@ -32,7 +32,9 @@ extern Size SInvalShmemSize(void);
32
32
  extern void CreateSharedInvalidationState(void);
33
33
  extern void SharedInvalBackendInit(bool sendOnly);
34
34
  extern PGPROC *BackendIdGetProc(int backendID);
35
- extern void BackendIdGetTransactionIds(int backendID, TransactionId *xid, TransactionId *xmin);
35
+ extern void BackendIdGetTransactionIds(int backendID, TransactionId *xid,
36
+ TransactionId *xmin, int *nsubxid,
37
+ bool *overflowed);
36
38
 
37
39
  extern void SIInsertDataEntries(const SharedInvalidationMessage *data, int n);
38
40
  extern int SIGetDataEntries(SharedInvalidationMessage *data, int datasize);
@@ -4,7 +4,7 @@
4
4
  * storage manager switch public interface declarations.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/storage/smgr.h
@@ -16,7 +16,7 @@
16
16
 
17
17
  #include "lib/ilist.h"
18
18
  #include "storage/block.h"
19
- #include "storage/relfilenode.h"
19
+ #include "storage/relfilelocator.h"
20
20
 
21
21
  /*
22
22
  * smgr.c maintains a table of SMgrRelation objects, which are essentially
@@ -38,8 +38,8 @@
38
38
  */
39
39
  typedef struct SMgrRelationData
40
40
  {
41
- /* rnode is the hashtable lookup key, so it must be first! */
42
- RelFileNodeBackend smgr_rnode; /* relation physical identifier */
41
+ /* rlocator is the hashtable lookup key, so it must be first! */
42
+ RelFileLocatorBackend smgr_rlocator; /* relation physical identifier */
43
43
 
44
44
  /* pointer to owning pointer, or NULL if none */
45
45
  struct SMgrRelationData **smgr_owner;
@@ -75,29 +75,31 @@ typedef struct SMgrRelationData
75
75
  typedef SMgrRelationData *SMgrRelation;
76
76
 
77
77
  #define SmgrIsTemp(smgr) \
78
- RelFileNodeBackendIsTemp((smgr)->smgr_rnode)
78
+ RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator)
79
79
 
80
80
  extern void smgrinit(void);
81
- extern SMgrRelation smgropen(RelFileNode rnode, BackendId backend);
81
+ extern SMgrRelation smgropen(RelFileLocator rlocator, BackendId backend);
82
82
  extern bool smgrexists(SMgrRelation reln, ForkNumber forknum);
83
83
  extern void smgrsetowner(SMgrRelation *owner, SMgrRelation reln);
84
84
  extern void smgrclearowner(SMgrRelation *owner, SMgrRelation reln);
85
85
  extern void smgrclose(SMgrRelation reln);
86
86
  extern void smgrcloseall(void);
87
- extern void smgrclosenode(RelFileNodeBackend rnode);
87
+ extern void smgrcloserellocator(RelFileLocatorBackend rlocator);
88
88
  extern void smgrrelease(SMgrRelation reln);
89
89
  extern void smgrreleaseall(void);
90
90
  extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
91
91
  extern void smgrdosyncall(SMgrRelation *rels, int nrels);
92
92
  extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
93
93
  extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
94
- BlockNumber blocknum, char *buffer, bool skipFsync);
94
+ BlockNumber blocknum, const void *buffer, bool skipFsync);
95
+ extern void smgrzeroextend(SMgrRelation reln, ForkNumber forknum,
96
+ BlockNumber blocknum, int nblocks, bool skipFsync);
95
97
  extern bool smgrprefetch(SMgrRelation reln, ForkNumber forknum,
96
98
  BlockNumber blocknum);
97
99
  extern void smgrread(SMgrRelation reln, ForkNumber forknum,
98
- BlockNumber blocknum, char *buffer);
100
+ BlockNumber blocknum, void *buffer);
99
101
  extern void smgrwrite(SMgrRelation reln, ForkNumber forknum,
100
- BlockNumber blocknum, char *buffer, bool skipFsync);
102
+ BlockNumber blocknum, const void *buffer, bool skipFsync);
101
103
  extern void smgrwriteback(SMgrRelation reln, ForkNumber forknum,
102
104
  BlockNumber blocknum, BlockNumber nblocks);
103
105
  extern BlockNumber smgrnblocks(SMgrRelation reln, ForkNumber forknum);
@@ -41,7 +41,7 @@
41
41
  * be again.
42
42
  *
43
43
  *
44
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
44
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
45
45
  * Portions Copyright (c) 1994, Regents of the University of California
46
46
  *
47
47
  * src/include/storage/spin.h
@@ -4,7 +4,7 @@
4
4
  * Definitions for hot standby mode.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/storage/standby.h
@@ -17,11 +17,10 @@
17
17
  #include "datatype/timestamp.h"
18
18
  #include "storage/lock.h"
19
19
  #include "storage/procsignal.h"
20
- #include "storage/relfilenode.h"
20
+ #include "storage/relfilelocator.h"
21
21
  #include "storage/standbydefs.h"
22
22
 
23
23
  /* User-settable GUC parameters */
24
- extern PGDLLIMPORT int vacuum_defer_cleanup_age;
25
24
  extern PGDLLIMPORT int max_standby_archive_delay;
26
25
  extern PGDLLIMPORT int max_standby_streaming_delay;
27
26
  extern PGDLLIMPORT bool log_recovery_conflict_waits;
@@ -29,10 +28,12 @@ extern PGDLLIMPORT bool log_recovery_conflict_waits;
29
28
  extern void InitRecoveryTransactionEnvironment(void);
30
29
  extern void ShutdownRecoveryTransactionEnvironment(void);
31
30
 
32
- extern void ResolveRecoveryConflictWithSnapshot(TransactionId latestRemovedXid,
33
- RelFileNode node);
34
- extern void ResolveRecoveryConflictWithSnapshotFullXid(FullTransactionId latestRemovedFullXid,
35
- RelFileNode node);
31
+ extern void ResolveRecoveryConflictWithSnapshot(TransactionId snapshotConflictHorizon,
32
+ bool isCatalogRel,
33
+ RelFileLocator locator);
34
+ extern void ResolveRecoveryConflictWithSnapshotFullXid(FullTransactionId snapshotConflictHorizon,
35
+ bool isCatalogRel,
36
+ RelFileLocator locator);
36
37
  extern void ResolveRecoveryConflictWithTablespace(Oid tsid);
37
38
  extern void ResolveRecoveryConflictWithDatabase(Oid dbid);
38
39
 
@@ -43,7 +44,7 @@ extern void StandbyDeadLockHandler(void);
43
44
  extern void StandbyTimeoutHandler(void);
44
45
  extern void StandbyLockTimeoutHandler(void);
45
46
  extern void LogRecoveryConflict(ProcSignalReason reason, TimestampTz wait_start,
46
- TimestampTz cur_ts, VirtualTransactionId *wait_list,
47
+ TimestampTz now, VirtualTransactionId *wait_list,
47
48
  bool still_waiting);
48
49
 
49
50
  /*
@@ -4,7 +4,7 @@
4
4
  * Frontend exposed definitions for hot standby mode.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/storage/standbydefs.h
@@ -3,7 +3,7 @@
3
3
  * sync.h
4
4
  * File synchronization management code.
5
5
  *
6
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/storage/sync.h
@@ -13,7 +13,7 @@
13
13
  #ifndef SYNC_H
14
14
  #define SYNC_H
15
15
 
16
- #include "storage/relfilenode.h"
16
+ #include "storage/relfilelocator.h"
17
17
 
18
18
  /*
19
19
  * Type of sync request. These are used to manage the set of pending
@@ -51,7 +51,7 @@ typedef struct FileTag
51
51
  {
52
52
  int16 handler; /* SyncRequestHandler value, saving space */
53
53
  int16 forknum; /* ForkNumber, saving space */
54
- RelFileNode rnode;
54
+ RelFileLocator rlocator;
55
55
  uint32 segno;
56
56
  } FileTag;
57
57
 
@@ -3,7 +3,7 @@
3
3
  * cmdtag.h
4
4
  * Declarations for commandtag names and enumeration.
5
5
  *
6
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/tcop/cmdtag.h
@@ -13,6 +13,8 @@
13
13
  #ifndef CMDTAG_H
14
14
  #define CMDTAG_H
15
15
 
16
+ /* buffer size required for command completion tags */
17
+ #define COMPLETION_TAG_BUFSIZE 64
16
18
 
17
19
  #define PG_CMDTAG(tag, name, evtrgok, rwrok, rowcnt) \
18
20
  tag,
@@ -50,9 +52,12 @@ CopyQueryCompletion(QueryCompletion *dst, const QueryCompletion *src)
50
52
 
51
53
  extern void InitializeQueryCompletion(QueryCompletion *qc);
52
54
  extern const char *GetCommandTagName(CommandTag commandTag);
55
+ extern const char *GetCommandTagNameAndLen(CommandTag commandTag, Size *len);
53
56
  extern bool command_tag_display_rowcount(CommandTag commandTag);
54
57
  extern bool command_tag_event_trigger_ok(CommandTag commandTag);
55
58
  extern bool command_tag_table_rewrite_ok(CommandTag commandTag);
56
- extern CommandTag GetCommandTagEnum(const char *tagname);
59
+ extern CommandTag GetCommandTagEnum(const char *commandname);
60
+ extern Size BuildQueryCompletionString(char *buff, const QueryCompletion *qc,
61
+ bool nameonly);
57
62
 
58
63
  #endif /* CMDTAG_H */
@@ -8,7 +8,7 @@
8
8
  * determined by the PG_CMDTAG macro, which is not defined in this file;
9
9
  * it can be defined by the caller for special purposes.
10
10
  *
11
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
12
12
  * Portions Copyright (c) 1994, Regents of the University of California
13
13
  *
14
14
  * src/include/tcop/cmdtaglist.h
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * deparse_utility.h
4
4
  *
5
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
5
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
6
  * Portions Copyright (c) 1994, Regents of the University of California
7
7
  *
8
8
  * src/include/tcop/deparse_utility.h
@@ -57,7 +57,7 @@
57
57
  * calls in portal and cursor manipulations.
58
58
  *
59
59
  *
60
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
60
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
61
61
  * Portions Copyright (c) 1994, Regents of the University of California
62
62
  *
63
63
  * src/include/tcop/dest.h
@@ -71,8 +71,6 @@
71
71
  #include "tcop/cmdtag.h"
72
72
 
73
73
 
74
- /* buffer size to use for command completion tags */
75
- #define COMPLETION_TAG_BUFSIZE 64
76
74
 
77
75
 
78
76
  /* ----------------
@@ -3,7 +3,7 @@
3
3
  * fastpath.h
4
4
  *
5
5
  *
6
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/tcop/fastpath.h
@@ -4,7 +4,7 @@
4
4
  * prototypes for pquery.c.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/tcop/pquery.h
@@ -4,7 +4,7 @@
4
4
  * prototypes for postgres.c.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, 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
@@ -25,9 +25,9 @@
25
25
  /* Required daylight between max_stack_depth and the kernel limit, in bytes */
26
26
  #define STACK_DEPTH_SLOP (512 * 1024L)
27
27
 
28
- extern PGDLLIMPORT __thread CommandDest whereToSendOutput;
28
+ extern PGDLLIMPORT __thread CommandDest whereToSendOutput;
29
29
  extern PGDLLIMPORT __thread const char *debug_query_string;
30
- extern PGDLLIMPORT __thread int max_stack_depth;
30
+ extern PGDLLIMPORT __thread int max_stack_depth;
31
31
  extern PGDLLIMPORT int PostAuthDelay;
32
32
  extern PGDLLIMPORT int client_connection_check_interval;
33
33
 
@@ -66,9 +66,6 @@ extern List *pg_plan_queries(List *querytrees, const char *query_string,
66
66
  int cursorOptions,
67
67
  ParamListInfo boundParams);
68
68
 
69
- extern bool check_max_stack_depth(int *newval, void **extra, GucSource source);
70
- extern void assign_max_stack_depth(int newval, void *extra);
71
-
72
69
  extern void die(SIGNAL_ARGS);
73
70
  extern void quickdie(SIGNAL_ARGS) pg_attribute_noreturn();
74
71
  extern void StatementCancelHandler(SIGNAL_ARGS);
@@ -4,7 +4,7 @@
4
4
  * prototypes for utility.c.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, 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
@@ -3,7 +3,7 @@
3
3
  * ts_cache.h
4
4
  * Tsearch related object caches.
5
5
  *
6
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, 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
@@ -13,7 +13,7 @@
13
13
  #ifndef TS_CACHE_H
14
14
  #define TS_CACHE_H
15
15
 
16
- #include "utils/guc.h"
16
+ #include "fmgr.h"
17
17
 
18
18
 
19
19
  /*
@@ -92,7 +92,5 @@ extern TSDictionaryCacheEntry *lookup_ts_dictionary_cache(Oid dictId);
92
92
  extern TSConfigCacheEntry *lookup_ts_config_cache(Oid cfgId);
93
93
 
94
94
  extern Oid getTSCurrentConfig(bool emitError);
95
- extern bool check_TSCurrentConfig(char **newval, void **extra, GucSource source);
96
- extern void assign_TSCurrentConfig(const char *newval, void *extra);
97
95
 
98
96
  #endif /* 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-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, 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
@@ -59,33 +59,33 @@ typedef struct AclItem
59
59
  } AclItem;
60
60
 
61
61
  /*
62
- * The upper 16 bits of the ai_privs field of an AclItem are the grant option
63
- * bits, and the lower 16 bits are the actual privileges. We use "rights"
62
+ * The upper 32 bits of the ai_privs field of an AclItem are the grant option
63
+ * bits, and the lower 32 bits are the actual privileges. We use "rights"
64
64
  * to mean the combined grant option and privilege bits fields.
65
65
  */
66
- #define ACLITEM_GET_PRIVS(item) ((item).ai_privs & 0xFFFF)
67
- #define ACLITEM_GET_GOPTIONS(item) (((item).ai_privs >> 16) & 0xFFFF)
66
+ #define ACLITEM_GET_PRIVS(item) ((item).ai_privs & 0xFFFFFFFF)
67
+ #define ACLITEM_GET_GOPTIONS(item) (((item).ai_privs >> 32) & 0xFFFFFFFF)
68
68
  #define ACLITEM_GET_RIGHTS(item) ((item).ai_privs)
69
69
 
70
- #define ACL_GRANT_OPTION_FOR(privs) (((AclMode) (privs) & 0xFFFF) << 16)
71
- #define ACL_OPTION_TO_PRIVS(privs) (((AclMode) (privs) >> 16) & 0xFFFF)
70
+ #define ACL_GRANT_OPTION_FOR(privs) (((AclMode) (privs) & 0xFFFFFFFF) << 32)
71
+ #define ACL_OPTION_TO_PRIVS(privs) (((AclMode) (privs) >> 32) & 0xFFFFFFFF)
72
72
 
73
73
  #define ACLITEM_SET_PRIVS(item,privs) \
74
- ((item).ai_privs = ((item).ai_privs & ~((AclMode) 0xFFFF)) | \
75
- ((AclMode) (privs) & 0xFFFF))
74
+ ((item).ai_privs = ((item).ai_privs & ~((AclMode) 0xFFFFFFFF)) | \
75
+ ((AclMode) (privs) & 0xFFFFFFFF))
76
76
  #define ACLITEM_SET_GOPTIONS(item,goptions) \
77
- ((item).ai_privs = ((item).ai_privs & ~(((AclMode) 0xFFFF) << 16)) | \
78
- (((AclMode) (goptions) & 0xFFFF) << 16))
77
+ ((item).ai_privs = ((item).ai_privs & ~(((AclMode) 0xFFFFFFFF) << 32)) | \
78
+ (((AclMode) (goptions) & 0xFFFFFFFF) << 32))
79
79
  #define ACLITEM_SET_RIGHTS(item,rights) \
80
80
  ((item).ai_privs = (AclMode) (rights))
81
81
 
82
82
  #define ACLITEM_SET_PRIVS_GOPTIONS(item,privs,goptions) \
83
- ((item).ai_privs = ((AclMode) (privs) & 0xFFFF) | \
84
- (((AclMode) (goptions) & 0xFFFF) << 16))
83
+ ((item).ai_privs = ((AclMode) (privs) & 0xFFFFFFFF) | \
84
+ (((AclMode) (goptions) & 0xFFFFFFFF) << 32))
85
85
 
86
86
 
87
- #define ACLITEM_ALL_PRIV_BITS ((AclMode) 0xFFFF)
88
- #define ACLITEM_ALL_GOPTION_BITS ((AclMode) 0xFFFF << 16)
87
+ #define ACLITEM_ALL_PRIV_BITS ((AclMode) 0xFFFFFFFF)
88
+ #define ACLITEM_ALL_GOPTION_BITS ((AclMode) 0xFFFFFFFF << 32)
89
89
 
90
90
  /*
91
91
  * Definitions for convenient access to Acl (array of AclItem).
@@ -209,12 +209,14 @@ extern AclMode aclmask(const Acl *acl, Oid roleid, Oid ownerId,
209
209
  extern int aclmembers(const Acl *acl, Oid **roleids);
210
210
 
211
211
  extern bool has_privs_of_role(Oid member, Oid role);
212
+ extern bool member_can_set_role(Oid member, Oid role);
213
+ extern void check_can_set_role(Oid member, Oid role);
212
214
  extern bool is_member_of_role(Oid member, Oid role);
213
215
  extern bool is_member_of_role_nosuper(Oid member, Oid role);
214
216
  extern bool is_admin_of_role(Oid member, Oid role);
215
- extern void check_is_member_of_role(Oid member, Oid role);
216
- extern Oid get_role_oid(const char *rolename, bool missing_ok);
217
- extern Oid get_role_oid_or_public(const char *rolename);
217
+ extern Oid select_best_admin(Oid member, Oid role);
218
+ extern Oid get_role_oid(const char *rolname, bool missing_ok);
219
+ extern Oid get_role_oid_or_public(const char *rolname);
218
220
  extern Oid get_rolespec_oid(const RoleSpec *role, bool missing_ok);
219
221
  extern void check_rolespec_name(const RoleSpec *role, const char *detail_msg);
220
222
  extern HeapTuple get_rolespec_tuple(const RoleSpec *role);
@@ -234,39 +236,13 @@ extern void ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivi
234
236
 
235
237
  extern void RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid);
236
238
 
237
- extern AclMode pg_attribute_aclmask(Oid table_oid, AttrNumber attnum,
238
- Oid roleid, AclMode mask, AclMaskHow how);
239
- extern AclMode pg_attribute_aclmask_ext(Oid table_oid, AttrNumber attnum,
240
- Oid roleid, AclMode mask,
241
- AclMaskHow how, bool *is_missing);
242
239
  extern AclMode pg_class_aclmask(Oid table_oid, Oid roleid,
243
240
  AclMode mask, AclMaskHow how);
244
- extern AclMode pg_class_aclmask_ext(Oid table_oid, Oid roleid,
245
- AclMode mask, AclMaskHow how,
246
- bool *is_missing);
247
- extern AclMode pg_database_aclmask(Oid db_oid, Oid roleid,
248
- AclMode mask, AclMaskHow how);
249
- extern AclMode pg_parameter_aclmask(const char *name, Oid roleid,
250
- AclMode mask, AclMaskHow how);
251
- extern AclMode pg_parameter_acl_aclmask(Oid acl_oid, Oid roleid,
252
- AclMode mask, AclMaskHow how);
253
- extern AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid,
254
- AclMode mask, AclMaskHow how);
255
- extern AclMode pg_language_aclmask(Oid lang_oid, Oid roleid,
256
- AclMode mask, AclMaskHow how);
257
- extern AclMode pg_largeobject_aclmask_snapshot(Oid lobj_oid, Oid roleid,
258
- AclMode mask, AclMaskHow how, Snapshot snapshot);
259
- extern AclMode pg_namespace_aclmask(Oid nsp_oid, Oid roleid,
260
- AclMode mask, AclMaskHow how);
261
- extern AclMode pg_tablespace_aclmask(Oid spc_oid, Oid roleid,
262
- AclMode mask, AclMaskHow how);
263
- extern AclMode pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
264
- AclMode mask, AclMaskHow how);
265
- extern AclMode pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
266
- AclMode mask, AclMaskHow how);
267
- extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid,
268
- AclMode mask, AclMaskHow how);
269
241
 
242
+ /* generic function */
243
+ extern AclResult object_aclcheck(Oid classid, Oid objectid, Oid roleid, AclMode mode);
244
+
245
+ /* special cases */
270
246
  extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
271
247
  Oid roleid, AclMode mode);
272
248
  extern AclResult pg_attribute_aclcheck_ext(Oid table_oid, AttrNumber attnum,
@@ -277,20 +253,10 @@ extern AclResult pg_attribute_aclcheck_all(Oid table_oid, Oid roleid,
277
253
  extern AclResult pg_class_aclcheck(Oid table_oid, Oid roleid, AclMode mode);
278
254
  extern AclResult pg_class_aclcheck_ext(Oid table_oid, Oid roleid,
279
255
  AclMode mode, bool *is_missing);
280
- extern AclResult pg_database_aclcheck(Oid db_oid, Oid roleid, AclMode mode);
281
256
  extern AclResult pg_parameter_aclcheck(const char *name, Oid roleid,
282
257
  AclMode mode);
283
- extern AclResult pg_parameter_acl_aclcheck(Oid acl_oid, Oid roleid,
284
- AclMode mode);
285
- extern AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode);
286
- extern AclResult pg_language_aclcheck(Oid lang_oid, Oid roleid, AclMode mode);
287
- extern AclResult pg_largeobject_aclcheck_snapshot(Oid lang_oid, Oid roleid,
258
+ extern AclResult pg_largeobject_aclcheck_snapshot(Oid lobj_oid, Oid roleid,
288
259
  AclMode mode, Snapshot snapshot);
289
- extern AclResult pg_namespace_aclcheck(Oid nsp_oid, Oid roleid, AclMode mode);
290
- extern AclResult pg_tablespace_aclcheck(Oid spc_oid, Oid roleid, AclMode mode);
291
- extern AclResult pg_foreign_data_wrapper_aclcheck(Oid fdw_oid, Oid roleid, AclMode mode);
292
- extern AclResult pg_foreign_server_aclcheck(Oid srv_oid, Oid roleid, AclMode mode);
293
- extern AclResult pg_type_aclcheck(Oid type_oid, Oid roleid, AclMode mode);
294
260
 
295
261
  extern void aclcheck_error(AclResult aclerr, ObjectType objtype,
296
262
  const char *objectname);
@@ -305,28 +271,7 @@ extern void removeExtObjInitPriv(Oid objoid, Oid classoid);
305
271
 
306
272
 
307
273
  /* ownercheck routines just return true (owner) or false (not) */
308
- extern bool pg_class_ownercheck(Oid class_oid, Oid roleid);
309
- extern bool pg_type_ownercheck(Oid type_oid, Oid roleid);
310
- extern bool pg_oper_ownercheck(Oid oper_oid, Oid roleid);
311
- extern bool pg_proc_ownercheck(Oid proc_oid, Oid roleid);
312
- extern bool pg_language_ownercheck(Oid lan_oid, Oid roleid);
313
- extern bool pg_largeobject_ownercheck(Oid lobj_oid, Oid roleid);
314
- extern bool pg_namespace_ownercheck(Oid nsp_oid, Oid roleid);
315
- extern bool pg_tablespace_ownercheck(Oid spc_oid, Oid roleid);
316
- extern bool pg_opclass_ownercheck(Oid opc_oid, Oid roleid);
317
- extern bool pg_opfamily_ownercheck(Oid opf_oid, Oid roleid);
318
- extern bool pg_database_ownercheck(Oid db_oid, Oid roleid);
319
- extern bool pg_collation_ownercheck(Oid coll_oid, Oid roleid);
320
- extern bool pg_conversion_ownercheck(Oid conv_oid, Oid roleid);
321
- extern bool pg_ts_dict_ownercheck(Oid dict_oid, Oid roleid);
322
- extern bool pg_ts_config_ownercheck(Oid cfg_oid, Oid roleid);
323
- extern bool pg_foreign_data_wrapper_ownercheck(Oid srv_oid, Oid roleid);
324
- extern bool pg_foreign_server_ownercheck(Oid srv_oid, Oid roleid);
325
- extern bool pg_event_trigger_ownercheck(Oid et_oid, Oid roleid);
326
- extern bool pg_extension_ownercheck(Oid ext_oid, Oid roleid);
327
- extern bool pg_publication_ownercheck(Oid pub_oid, Oid roleid);
328
- extern bool pg_subscription_ownercheck(Oid sub_oid, Oid roleid);
329
- extern bool pg_statistics_object_ownercheck(Oid stat_oid, Oid roleid);
274
+ extern bool object_ownercheck(Oid classid, Oid objectid, Oid roleid);
330
275
  extern bool has_createrole_privilege(Oid roleid);
331
276
  extern bool has_bypassrls_privilege(Oid roleid);
332
277
 
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * aclchk_internal.h
4
4
  *
5
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
5
+ * Portions Copyright (c) 1996-2023, 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-2022, PostgreSQL Global Development Group
54
+ * Portions Copyright (c) 1996-2023, 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
@@ -74,6 +74,13 @@ struct ExprContext;
74
74
  */
75
75
  #define MAXDIM 6
76
76
 
77
+ /*
78
+ * Maximum number of elements in an array. We limit this to at most about a
79
+ * quarter billion elements, so that it's not necessary to check for overflow
80
+ * in quite so many places --- for instance when palloc'ing Datum arrays.
81
+ */
82
+ #define MaxArraySize ((Size) (MaxAllocSize / sizeof(Datum)))
83
+
77
84
  /*
78
85
  * Arrays are varlena objects, so must meet the varlena convention that
79
86
  * the first int32 of the object contains the total object size in bytes.
@@ -387,6 +394,7 @@ extern void array_bitmap_copy(bits8 *destbitmap, int destoffset,
387
394
  extern ArrayType *construct_array(Datum *elems, int nelems,
388
395
  Oid elmtype,
389
396
  int elmlen, bool elmbyval, char elmalign);
397
+ extern ArrayType *construct_array_builtin(Datum *elems, int nelems, Oid elmtype);
390
398
  extern ArrayType *construct_md_array(Datum *elems,
391
399
  bool *nulls,
392
400
  int ndims,
@@ -401,10 +409,16 @@ extern void deconstruct_array(ArrayType *array,
401
409
  Oid elmtype,
402
410
  int elmlen, bool elmbyval, char elmalign,
403
411
  Datum **elemsp, bool **nullsp, int *nelemsp);
412
+ extern void deconstruct_array_builtin(ArrayType *array,
413
+ Oid elmtype,
414
+ Datum **elemsp, bool **nullsp, int *nelemsp);
404
415
  extern bool array_contains_nulls(ArrayType *array);
405
416
 
406
417
  extern ArrayBuildState *initArrayResult(Oid element_type,
407
418
  MemoryContext rcontext, bool subcontext);
419
+ extern ArrayBuildState *initArrayResultWithSize(Oid element_type,
420
+ MemoryContext rcontext,
421
+ bool subcontext, int initsize);
408
422
  extern ArrayBuildState *accumArrayResult(ArrayBuildState *astate,
409
423
  Datum dvalue, bool disnull,
410
424
  Oid element_type,
@@ -443,7 +457,11 @@ extern void array_free_iterator(ArrayIterator iterator);
443
457
  extern int ArrayGetOffset(int n, const int *dim, const int *lb, const int *indx);
444
458
  extern int ArrayGetOffset0(int n, const int *tup, const int *scale);
445
459
  extern int ArrayGetNItems(int ndim, const int *dims);
460
+ extern int ArrayGetNItemsSafe(int ndim, const int *dims,
461
+ struct Node *escontext);
446
462
  extern void ArrayCheckBounds(int ndim, const int *dims, const int *lb);
463
+ extern bool ArrayCheckBoundsSafe(int ndim, const int *dims, const int *lb,
464
+ struct Node *escontext);
447
465
  extern void mda_get_range(int n, int *span, const int *st, const int *endp);
448
466
  extern void mda_get_prod(int n, const int *range, int *prod);
449
467
  extern void mda_get_offset_values(int n, int *dist, const int *prod, const int *span);