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
@@ -0,0 +1,59 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * archive_module.h
4
+ * Exports for archive modules.
5
+ *
6
+ * Copyright (c) 2022-2023, PostgreSQL Global Development Group
7
+ *
8
+ * src/include/archive/archive_module.h
9
+ *
10
+ *-------------------------------------------------------------------------
11
+ */
12
+ #ifndef _ARCHIVE_MODULE_H
13
+ #define _ARCHIVE_MODULE_H
14
+
15
+ /*
16
+ * The value of the archive_library GUC.
17
+ */
18
+ extern PGDLLIMPORT char *XLogArchiveLibrary;
19
+
20
+ typedef struct ArchiveModuleState
21
+ {
22
+ /*
23
+ * Private data pointer for use by an archive module. This can be used to
24
+ * store state for the module that will be passed to each of its
25
+ * callbacks.
26
+ */
27
+ void *private_data;
28
+ } ArchiveModuleState;
29
+
30
+ /*
31
+ * Archive module callbacks
32
+ *
33
+ * These callback functions should be defined by archive libraries and returned
34
+ * via _PG_archive_module_init(). ArchiveFileCB is the only required callback.
35
+ * For more information about the purpose of each callback, refer to the
36
+ * archive modules documentation.
37
+ */
38
+ typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);
39
+ typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);
40
+ typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);
41
+ typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);
42
+
43
+ typedef struct ArchiveModuleCallbacks
44
+ {
45
+ ArchiveStartupCB startup_cb;
46
+ ArchiveCheckConfiguredCB check_configured_cb;
47
+ ArchiveFileCB archive_file_cb;
48
+ ArchiveShutdownCB shutdown_cb;
49
+ } ArchiveModuleCallbacks;
50
+
51
+ /*
52
+ * Type of the shared library symbol _PG_archive_module_init that is looked
53
+ * up when loading an archive library.
54
+ */
55
+ typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
56
+
57
+ extern PGDLLEXPORT const ArchiveModuleCallbacks *_PG_archive_module_init(void);
58
+
59
+ #endif /* _ARCHIVE_MODULE_H */
@@ -9,7 +9,7 @@
9
9
  * polluting the namespace with lots of stuff...
10
10
  *
11
11
  *
12
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
12
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
13
13
  * Portions Copyright (c) 1994, Regents of the University of California
14
14
  *
15
15
  * src/include/c.h
@@ -30,7 +30,7 @@
30
30
  * 2) bool, true, false
31
31
  * 3) standard system types
32
32
  * 4) IsValid macros for system types
33
- * 5) offsetof, lengthof, alignment
33
+ * 5) lengthof, alignment
34
34
  * 6) assertions
35
35
  * 7) widely useful macros
36
36
  * 8) random stuff
@@ -144,6 +144,17 @@
144
144
  #define pg_attribute_no_sanitize_alignment()
145
145
  #endif
146
146
 
147
+ /*
148
+ * pg_attribute_nonnull means the compiler should warn if the function is
149
+ * called with the listed arguments set to NULL. If no arguments are
150
+ * listed, the compiler should warn if any pointer arguments are set to NULL.
151
+ */
152
+ #if __has_attribute (nonnull)
153
+ #define pg_attribute_nonnull(...) __attribute__((nonnull(__VA_ARGS__)))
154
+ #else
155
+ #define pg_attribute_nonnull(...)
156
+ #endif
157
+
147
158
  /*
148
159
  * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
149
160
  * used in assert-enabled builds, to avoid compiler warnings about unused
@@ -170,6 +181,17 @@
170
181
  #define pg_attribute_noreturn() __attribute__((noreturn))
171
182
  #define pg_attribute_packed() __attribute__((packed))
172
183
  #define HAVE_PG_ATTRIBUTE_NORETURN 1
184
+ #elif defined(_MSC_VER)
185
+ /*
186
+ * MSVC supports aligned. noreturn is also possible but in MSVC it is
187
+ * declared before the definition while pg_attribute_noreturn() macro
188
+ * is currently used after the definition.
189
+ *
190
+ * Packing is also possible but only by wrapping the entire struct definition
191
+ * which doesn't fit into our current macro declarations.
192
+ */
193
+ #define pg_attribute_aligned(a) __declspec(align(a))
194
+ #define pg_attribute_noreturn()
173
195
  #else
174
196
  /*
175
197
  * NB: aligned and packed are not given default definitions because they
@@ -302,7 +324,25 @@
302
324
  * pretty trivial: VA_ARGS_NARGS_() returns its 64th argument, and we set up
303
325
  * the call so that that is the appropriate one of the list of constants.
304
326
  * This idea is due to Laurent Deniau.
327
+ *
328
+ * MSVC has an implementation of __VA_ARGS__ that doesn't conform to the
329
+ * standard unless you use the /Zc:preprocessor compiler flag, but that
330
+ * isn't available before Visual Studio 2019. For now, use a different
331
+ * definition that also works on older compilers.
305
332
  */
333
+ #ifdef _MSC_VER
334
+ #define EXPAND(args) args
335
+ #define VA_ARGS_NARGS(...) \
336
+ VA_ARGS_NARGS_ EXPAND((__VA_ARGS__, \
337
+ 63,62,61,60, \
338
+ 59,58,57,56,55,54,53,52,51,50, \
339
+ 49,48,47,46,45,44,43,42,41,40, \
340
+ 39,38,37,36,35,34,33,32,31,30, \
341
+ 29,28,27,26,25,24,23,22,21,20, \
342
+ 19,18,17,16,15,14,13,12,11,10, \
343
+ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
344
+ #else
345
+
306
346
  #define VA_ARGS_NARGS(...) \
307
347
  VA_ARGS_NARGS_(__VA_ARGS__, \
308
348
  63,62,61,60, \
@@ -312,6 +352,8 @@
312
352
  29,28,27,26,25,24,23,22,21,20, \
313
353
  19,18,17,16,15,14,13,12,11,10, \
314
354
  9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
355
+ #endif
356
+
315
357
  #define VA_ARGS_NARGS_( \
316
358
  _01,_02,_03,_04,_05,_06,_07,_08,_09,_10, \
317
359
  _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \
@@ -322,16 +364,6 @@
322
364
  _61,_62,_63, N, ...) \
323
365
  (N)
324
366
 
325
- /*
326
- * dummyret is used to set return values in macros that use ?: to make
327
- * assignments. gcc wants these to be void, other compilers like char
328
- */
329
- #ifdef __GNUC__ /* GNU cc */
330
- #define dummyret void
331
- #else
332
- #define dummyret char
333
- #endif
334
-
335
367
  /*
336
368
  * Generic function pointer. This can be used in the rare cases where it's
337
369
  * necessary to cast a function pointer to a seemingly incompatible function
@@ -349,15 +381,32 @@ typedef void (*pg_funcptr_t) (void);
349
381
  */
350
382
  #define FLEXIBLE_ARRAY_MEMBER /* empty */
351
383
 
352
- /* Which __func__ symbol do we have, if any? */
353
- #ifdef HAVE_FUNCNAME__FUNC
354
- #define PG_FUNCNAME_MACRO __func__
355
- #else
356
- #ifdef HAVE_FUNCNAME__FUNCTION
357
- #define PG_FUNCNAME_MACRO __FUNCTION__
358
- #else
359
- #define PG_FUNCNAME_MACRO NULL
360
- #endif
384
+ /*
385
+ * Does the compiler support #pragma GCC system_header? We optionally use it
386
+ * to avoid warnings that we can't fix (e.g. in the perl headers).
387
+ * See https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
388
+ *
389
+ * Headers for which we do not want to show compiler warnings can,
390
+ * conditionally, use #pragma GCC system_header to avoid warnings. Obviously
391
+ * this should only be used for external headers over which we do not have
392
+ * control.
393
+ *
394
+ * Support for the pragma is tested here, instead of during configure, as gcc
395
+ * also warns about the pragma being used in a .c file. It's surprisingly hard
396
+ * to get autoconf to use .h as the file-ending. Looks like gcc has
397
+ * implemented the pragma since the 2000, so this test should suffice.
398
+ *
399
+ *
400
+ * Alternatively, we could add the include paths for problematic headers with
401
+ * -isystem, but that is a larger hammer and is harder to search for.
402
+ *
403
+ * A more granular alternative would be to use #pragma GCC diagnostic
404
+ * push/ignored/pop, but gcc warns about unknown warnings being ignored, so
405
+ * every to-be-ignored-temporarily compiler warning would require its own
406
+ * pg_config.h symbol and #ifdef.
407
+ */
408
+ #ifdef __GNUC__
409
+ #define HAVE_PRAGMA_GCC_SYSTEM_HEADER 1
361
410
  #endif
362
411
 
363
412
 
@@ -713,20 +762,9 @@ typedef NameData *Name;
713
762
 
714
763
 
715
764
  /* ----------------------------------------------------------------
716
- * Section 5: offsetof, lengthof, alignment
765
+ * Section 5: lengthof, alignment
717
766
  * ----------------------------------------------------------------
718
767
  */
719
- /*
720
- * offsetof
721
- * Offset of a structure/union field within that structure/union.
722
- *
723
- * XXX This is supposed to be part of stddef.h, but isn't on
724
- * some systems (like SunOS 4).
725
- */
726
- #ifndef offsetof
727
- #define offsetof(type, field) ((long) &((type *)0)->field)
728
- #endif /* offsetof */
729
-
730
768
  /*
731
769
  * lengthof
732
770
  * Number of elements in an array.
@@ -803,80 +841,42 @@ typedef NameData *Name;
803
841
 
804
842
  #define Assert(condition) ((void)true)
805
843
  #define AssertMacro(condition) ((void)true)
806
- #define AssertArg(condition) ((void)true)
807
- #define AssertState(condition) ((void)true)
808
- #define AssertPointerAlignment(ptr, bndr) ((void)true)
809
- #define Trap(condition, errorType) ((void)true)
810
- #define TrapMacro(condition, errorType) (true)
811
844
 
812
845
  #elif defined(FRONTEND)
813
846
 
814
847
  #include <assert.h>
815
848
  #define Assert(p) assert(p)
816
849
  #define AssertMacro(p) ((void) assert(p))
817
- #define AssertArg(condition) assert(condition)
818
- #define AssertState(condition) assert(condition)
819
- #define AssertPointerAlignment(ptr, bndr) ((void)true)
820
850
 
821
851
  #else /* USE_ASSERT_CHECKING && !FRONTEND */
822
852
 
823
853
  /*
824
- * Trap
825
- * Generates an exception if the given condition is true.
854
+ * Assert
855
+ * Generates a fatal exception if the given condition is false.
826
856
  */
827
- #define Trap(condition, errorType) \
857
+ #define Assert(condition) \
828
858
  do { \
829
- if (condition) \
830
- ExceptionalCondition(#condition, (errorType), \
831
- __FILE__, __LINE__); \
859
+ if (!(condition)) \
860
+ ExceptionalCondition(#condition, __FILE__, __LINE__); \
832
861
  } while (0)
833
862
 
834
863
  /*
835
- * TrapMacro is the same as Trap but it's intended for use in macros:
864
+ * AssertMacro is the same as Assert but it's suitable for use in
865
+ * expression-like macros, for example:
836
866
  *
837
867
  * #define foo(x) (AssertMacro(x != 0), bar(x))
838
- *
839
- * Isn't CPP fun?
840
868
  */
841
- #define TrapMacro(condition, errorType) \
842
- ((bool) (! (condition) || \
843
- (ExceptionalCondition(#condition, (errorType), \
844
- __FILE__, __LINE__), 0)))
845
-
846
- #define Assert(condition) \
847
- do { \
848
- if (!(condition)) \
849
- ExceptionalCondition(#condition, "FailedAssertion", \
850
- __FILE__, __LINE__); \
851
- } while (0)
852
-
853
869
  #define AssertMacro(condition) \
854
870
  ((void) ((condition) || \
855
- (ExceptionalCondition(#condition, "FailedAssertion", \
856
- __FILE__, __LINE__), 0)))
871
+ (ExceptionalCondition(#condition, __FILE__, __LINE__), 0)))
857
872
 
858
- #define AssertArg(condition) \
859
- do { \
860
- if (!(condition)) \
861
- ExceptionalCondition(#condition, "BadArgument", \
862
- __FILE__, __LINE__); \
863
- } while (0)
864
-
865
- #define AssertState(condition) \
866
- do { \
867
- if (!(condition)) \
868
- ExceptionalCondition(#condition, "BadState", \
869
- __FILE__, __LINE__); \
870
- } while (0)
873
+ #endif /* USE_ASSERT_CHECKING && !FRONTEND */
871
874
 
872
875
  /*
873
876
  * Check that `ptr' is `bndr' aligned.
874
877
  */
875
878
  #define AssertPointerAlignment(ptr, bndr) \
876
- Trap(TYPEALIGN(bndr, (uintptr_t)(ptr)) != (uintptr_t)(ptr), \
877
- "UnalignedPointer")
878
-
879
- #endif /* USE_ASSERT_CHECKING && !FRONTEND */
879
+ Assert(TYPEALIGN(bndr, (uintptr_t)(ptr)) == (uintptr_t)(ptr))
880
880
 
881
881
  /*
882
882
  * ExceptionalCondition is compiled into the backend whether or not
@@ -886,7 +886,6 @@ typedef NameData *Name;
886
886
  */
887
887
  #ifndef FRONTEND
888
888
  extern void ExceptionalCondition(const char *conditionName,
889
- const char *errorType,
890
889
  const char *fileName, int lineNumber) pg_attribute_noreturn();
891
890
  #endif
892
891
 
@@ -896,47 +895,50 @@ extern void ExceptionalCondition(const char *conditionName,
896
895
  * If the "condition" (a compile-time-constant expression) evaluates to false,
897
896
  * throw a compile error using the "errmessage" (a string literal).
898
897
  *
899
- * gcc 4.6 and up supports _Static_assert(), but there are bizarre syntactic
900
- * placement restrictions. Macros StaticAssertStmt() and StaticAssertExpr()
898
+ * C11 has _Static_assert(), and most C99 compilers already support that. For
899
+ * portability, we wrap it into StaticAssertDecl(). _Static_assert() is a
900
+ * "declaration", and so it must be placed where for example a variable
901
+ * declaration would be valid. As long as we compile with
902
+ * -Wno-declaration-after-statement, that also means it cannot be placed after
903
+ * statements in a function. Macros StaticAssertStmt() and StaticAssertExpr()
901
904
  * make it safe to use as a statement or in an expression, respectively.
902
- * The macro StaticAssertDecl() is suitable for use at file scope (outside of
903
- * any function).
904
905
  *
905
- * Otherwise we fall back on a kluge that assumes the compiler will complain
906
- * about a negative width for a struct bit-field. This will not include a
907
- * helpful error message, but it beats not getting an error at all.
906
+ * For compilers without _Static_assert(), we fall back on a kluge that
907
+ * assumes the compiler will complain about a negative width for a struct
908
+ * bit-field. This will not include a helpful error message, but it beats not
909
+ * getting an error at all.
908
910
  */
909
911
  #ifndef __cplusplus
910
912
  #ifdef HAVE__STATIC_ASSERT
913
+ #define StaticAssertDecl(condition, errmessage) \
914
+ _Static_assert(condition, errmessage)
911
915
  #define StaticAssertStmt(condition, errmessage) \
912
916
  do { _Static_assert(condition, errmessage); } while(0)
913
917
  #define StaticAssertExpr(condition, errmessage) \
914
918
  ((void) ({ StaticAssertStmt(condition, errmessage); true; }))
915
- #define StaticAssertDecl(condition, errmessage) \
916
- _Static_assert(condition, errmessage)
917
919
  #else /* !HAVE__STATIC_ASSERT */
920
+ #define StaticAssertDecl(condition, errmessage) \
921
+ extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
918
922
  #define StaticAssertStmt(condition, errmessage) \
919
923
  ((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; }))
920
924
  #define StaticAssertExpr(condition, errmessage) \
921
925
  StaticAssertStmt(condition, errmessage)
922
- #define StaticAssertDecl(condition, errmessage) \
923
- extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
924
926
  #endif /* HAVE__STATIC_ASSERT */
925
927
  #else /* C++ */
926
928
  #if defined(__cpp_static_assert) && __cpp_static_assert >= 200410
929
+ #define StaticAssertDecl(condition, errmessage) \
930
+ static_assert(condition, errmessage)
927
931
  #define StaticAssertStmt(condition, errmessage) \
928
932
  static_assert(condition, errmessage)
929
933
  #define StaticAssertExpr(condition, errmessage) \
930
934
  ({ static_assert(condition, errmessage); })
931
- #define StaticAssertDecl(condition, errmessage) \
932
- static_assert(condition, errmessage)
933
935
  #else /* !__cpp_static_assert */
936
+ #define StaticAssertDecl(condition, errmessage) \
937
+ extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
934
938
  #define StaticAssertStmt(condition, errmessage) \
935
939
  do { struct static_assert_struct { int static_assert_failure : (condition) ? 1 : -1; }; } while(0)
936
940
  #define StaticAssertExpr(condition, errmessage) \
937
941
  ((void) ({ StaticAssertStmt(condition, errmessage); }))
938
- #define StaticAssertDecl(condition, errmessage) \
939
- extern void static_assert_func(int static_assert_failure[(condition) ? 1 : -1])
940
942
  #endif /* __cpp_static_assert */
941
943
  #endif /* C++ */
942
944
 
@@ -985,12 +987,6 @@ extern void ExceptionalCondition(const char *conditionName,
985
987
  */
986
988
  #define Min(x, y) ((x) < (y) ? (x) : (y))
987
989
 
988
- /*
989
- * Abs
990
- * Return the absolute value of the argument.
991
- */
992
- #define Abs(x) ((x) >= 0 ? (x) : -(x))
993
-
994
990
 
995
991
  /* Get a bit mask of the bits set in non-long aligned addresses */
996
992
  #define LONG_ALIGN_MASK (sizeof(long) - 1)
@@ -1113,10 +1109,6 @@ extern void ExceptionalCondition(const char *conditionName,
1113
1109
  * ----------------------------------------------------------------
1114
1110
  */
1115
1111
 
1116
- #ifdef HAVE_STRUCT_SOCKADDR_UN
1117
- #define HAVE_UNIX_SOCKETS 1
1118
- #endif
1119
-
1120
1112
  /*
1121
1113
  * Invert the sign of a qsort-style comparison result, ie, exchange negative
1122
1114
  * and positive integer values, being careful not to get the wrong answer
@@ -1127,14 +1119,11 @@ extern void ExceptionalCondition(const char *conditionName,
1127
1119
 
1128
1120
  /*
1129
1121
  * Use this, not "char buf[BLCKSZ]", to declare a field or local variable
1130
- * holding a page buffer, if that page might be accessed as a page and not
1131
- * just a string of bytes. Otherwise the variable might be under-aligned,
1132
- * causing problems on alignment-picky hardware. (In some places, we use
1133
- * this to declare buffers even though we only pass them to read() and
1134
- * write(), because copying to/from aligned buffers is usually faster than
1135
- * using unaligned buffers.) We include both "double" and "int64" in the
1136
- * union to ensure that the compiler knows the value must be MAXALIGN'ed
1137
- * (cf. configure's computation of MAXIMUM_ALIGNOF).
1122
+ * holding a page buffer, if that page might be accessed as a page. Otherwise
1123
+ * the variable might be under-aligned, causing problems on alignment-picky
1124
+ * hardware. We include both "double" and "int64" in the union to ensure that
1125
+ * the compiler knows the value must be MAXALIGN'ed (cf. configure's
1126
+ * computation of MAXIMUM_ALIGNOF).
1138
1127
  */
1139
1128
  typedef union PGAlignedBlock
1140
1129
  {
@@ -1143,9 +1132,30 @@ typedef union PGAlignedBlock
1143
1132
  int64 force_align_i64;
1144
1133
  } PGAlignedBlock;
1145
1134
 
1135
+ /*
1136
+ * Use this to declare a field or local variable holding a page buffer, if that
1137
+ * page might be accessed as a page or passed to an SMgr I/O function. If
1138
+ * allocating using the MemoryContext API, the aligned allocation functions
1139
+ * should be used with PG_IO_ALIGN_SIZE. This alignment may be more efficient
1140
+ * for I/O in general, but may be strictly required on some platforms when
1141
+ * using direct I/O.
1142
+ */
1143
+ typedef union PGIOAlignedBlock
1144
+ {
1145
+ #ifdef pg_attribute_aligned
1146
+ pg_attribute_aligned(PG_IO_ALIGN_SIZE)
1147
+ #endif
1148
+ char data[BLCKSZ];
1149
+ double force_align_d;
1150
+ int64 force_align_i64;
1151
+ } PGIOAlignedBlock;
1152
+
1146
1153
  /* Same, but for an XLOG_BLCKSZ-sized buffer */
1147
1154
  typedef union PGAlignedXLogBlock
1148
1155
  {
1156
+ #ifdef pg_attribute_aligned
1157
+ pg_attribute_aligned(PG_IO_ALIGN_SIZE)
1158
+ #endif
1149
1159
  char data[XLOG_BLCKSZ];
1150
1160
  double force_align_d;
1151
1161
  int64 force_align_i64;
@@ -1279,39 +1289,10 @@ typedef union PGAlignedXLogBlock
1279
1289
  * standard C library.
1280
1290
  */
1281
1291
 
1282
- #if defined(HAVE_FDATASYNC) && !HAVE_DECL_FDATASYNC
1292
+ #if !HAVE_DECL_FDATASYNC
1283
1293
  extern int fdatasync(int fildes);
1284
1294
  #endif
1285
1295
 
1286
- /* Older platforms may provide strto[u]ll functionality under other names */
1287
- #if !defined(HAVE_STRTOLL) && defined(HAVE___STRTOLL)
1288
- #define strtoll __strtoll
1289
- #define HAVE_STRTOLL 1
1290
- #endif
1291
-
1292
- #if !defined(HAVE_STRTOLL) && defined(HAVE_STRTOQ)
1293
- #define strtoll strtoq
1294
- #define HAVE_STRTOLL 1
1295
- #endif
1296
-
1297
- #if !defined(HAVE_STRTOULL) && defined(HAVE___STRTOULL)
1298
- #define strtoull __strtoull
1299
- #define HAVE_STRTOULL 1
1300
- #endif
1301
-
1302
- #if !defined(HAVE_STRTOULL) && defined(HAVE_STRTOUQ)
1303
- #define strtoull strtouq
1304
- #define HAVE_STRTOULL 1
1305
- #endif
1306
-
1307
- #if defined(HAVE_STRTOLL) && !HAVE_DECL_STRTOLL
1308
- extern long long strtoll(const char *str, char **endptr, int base);
1309
- #endif
1310
-
1311
- #if defined(HAVE_STRTOULL) && !HAVE_DECL_STRTOULL
1312
- extern unsigned long long strtoull(const char *str, char **endptr, int base);
1313
- #endif
1314
-
1315
1296
  /*
1316
1297
  * Thin wrappers that convert strings to exactly 64-bit integers, matching our
1317
1298
  * definition of int64. (For the naming, compare that POSIX has
@@ -1325,6 +1306,15 @@ extern unsigned long long strtoull(const char *str, char **endptr, int base);
1325
1306
  #define strtou64(str, endptr, base) ((uint64) strtoull(str, endptr, base))
1326
1307
  #endif
1327
1308
 
1309
+ /*
1310
+ * Similarly, wrappers around labs()/llabs() matching our int64.
1311
+ */
1312
+ #ifdef HAVE_LONG_INT_64
1313
+ #define i64abs(i) labs(i)
1314
+ #else
1315
+ #define i64abs(i) llabs(i)
1316
+ #endif
1317
+
1328
1318
  /*
1329
1319
  * Use "extern PGDLLIMPORT ..." to declare variables that are defined
1330
1320
  * in the core backend and need to be accessible by loadable modules.
@@ -1336,14 +1326,19 @@ extern unsigned long long strtoull(const char *str, char **endptr, int base);
1336
1326
 
1337
1327
  /*
1338
1328
  * Use "extern PGDLLEXPORT ..." to declare functions that are defined in
1339
- * loadable modules and need to be callable by the core backend. (Usually,
1340
- * this is not necessary because our build process automatically exports
1341
- * such symbols, but sometimes manual marking is required.)
1342
- * No special marking is required on most ports.
1329
+ * loadable modules and need to be callable by the core backend or other
1330
+ * loadable modules.
1331
+ * If the compiler knows __attribute__((visibility("*"))), we use that,
1332
+ * unless we already have a platform-specific definition. Otherwise,
1333
+ * no special marking is required.
1343
1334
  */
1344
1335
  #ifndef PGDLLEXPORT
1336
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
1337
+ #define PGDLLEXPORT __attribute__((visibility("default")))
1338
+ #else
1345
1339
  #define PGDLLEXPORT
1346
1340
  #endif
1341
+ #endif
1347
1342
 
1348
1343
  /*
1349
1344
  * The following is used as the arg list for signal handlers. Any ports
@@ -1376,13 +1371,6 @@ typedef intptr_t sigjmp_buf[5];
1376
1371
  #endif /* __MINGW64__ */
1377
1372
  #endif /* WIN32 */
1378
1373
 
1379
- /* EXEC_BACKEND defines */
1380
- #ifdef EXEC_BACKEND
1381
- #define NON_EXEC_STATIC
1382
- #else
1383
- #define NON_EXEC_STATIC static
1384
- #endif
1385
-
1386
1374
  /* /port compatibility functions */
1387
1375
  #include "port.h"
1388
1376
 
@@ -4,7 +4,7 @@
4
4
  * prototypes for functions in backend/catalog/catalog.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/catalog/catalog.h
@@ -38,7 +38,8 @@ extern bool IsPinnedObject(Oid classId, Oid objectId);
38
38
 
39
39
  extern Oid GetNewOidWithIndex(Relation relation, Oid indexId,
40
40
  AttrNumber oidcolumn);
41
- extern Oid GetNewRelFileNode(Oid reltablespace, Relation pg_class,
42
- char relpersistence);
41
+ extern RelFileNumber GetNewRelFileNumber(Oid reltablespace,
42
+ Relation pg_class,
43
+ char relpersistence);
43
44
 
44
45
  #endif /* CATALOG_H */
@@ -32,9 +32,13 @@
32
32
  * include/catalog is the most common kind of initdb-forcing change.
33
33
  * But it could be used to protect any kind of incompatible change in
34
34
  * database contents or layout, such as altering tuple headers.
35
+ * Another common reason for a catversion update is a change in parsetree
36
+ * external representation, since serialized parsetrees appear in stored
37
+ * rules and new-style SQL functions. Almost any change in primnodes.h or
38
+ * parsenodes.h will warrant a catversion update.
35
39
  *
36
40
  *
37
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
41
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
38
42
  * Portions Copyright (c) 1994, Regents of the University of California
39
43
  *
40
44
  * src/include/catalog/catversion.h
@@ -53,6 +57,6 @@
53
57
  */
54
58
 
55
59
  /* yyyymmddN */
56
- #define CATALOG_VERSION_NO 202209061
60
+ #define CATALOG_VERSION_NO 202307071
57
61
 
58
62
  #endif
@@ -4,7 +4,7 @@
4
4
  * Routines to support inter-object dependencies.
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/catalog/dependency.h
@@ -112,6 +112,7 @@ typedef enum ObjectClass
112
112
  OCLASS_TSTEMPLATE, /* pg_ts_template */
113
113
  OCLASS_TSCONFIG, /* pg_ts_config */
114
114
  OCLASS_ROLE, /* pg_authid */
115
+ OCLASS_ROLE_MEMBERSHIP, /* pg_auth_members */
115
116
  OCLASS_DATABASE, /* pg_database */
116
117
  OCLASS_TBLSPACE, /* pg_tablespace */
117
118
  OCLASS_FDW, /* pg_foreign_data_wrapper */
@@ -248,7 +249,7 @@ extern void recordDependencyOnTablespace(Oid classId, Oid objectId,
248
249
  extern void changeDependencyOnTablespace(Oid classId, Oid objectId,
249
250
  Oid newTablespaceId);
250
251
 
251
- extern void updateAclDependencies(Oid classId, Oid objectId, int32 objectSubId,
252
+ extern void updateAclDependencies(Oid classId, Oid objectId, int32 objsubId,
252
253
  Oid ownerId,
253
254
  int noldmembers, Oid *oldmembers,
254
255
  int nnewmembers, Oid *newmembers);
@@ -262,8 +263,8 @@ extern void copyTemplateDependencies(Oid templateDbId, Oid newDbId);
262
263
 
263
264
  extern void dropDatabaseDependencies(Oid databaseId);
264
265
 
265
- extern void shdepDropOwned(List *relids, DropBehavior behavior);
266
+ extern void shdepDropOwned(List *roleids, DropBehavior behavior);
266
267
 
267
- extern void shdepReassignOwned(List *relids, Oid newrole);
268
+ extern void shdepReassignOwned(List *roleids, Oid newrole);
268
269
 
269
270
  #endif /* DEPENDENCY_H */
@@ -9,7 +9,7 @@
9
9
  * bootstrap file from these header files.)
10
10
  *
11
11
  *
12
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
12
+ * Portions Copyright (c) 1996-2023, 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
@@ -71,12 +71,13 @@
71
71
  * DECLARE_UNIQUE_INDEX_PKEY. ("PKEY" marks the index as being the catalog's
72
72
  * primary key; currently this is only cosmetically different from a regular
73
73
  * unique index. By convention, we usually make a catalog's OID column its
74
- * pkey, if it has one.) The first two arguments are the index's name and
75
- * OID, the rest is much like a standard 'create index' SQL command.
74
+ * pkey, if it has one.)
76
75
  *
77
- * For each index, we also provide a #define for its OID. References to
78
- * the index in the C code should always use these #defines, not the actual
79
- * index name (much less the numeric OID).
76
+ * The first two arguments are the index's name and OID. The third argument
77
+ * is the name of a #define to generate for its OID. References to the index
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.
80
81
  *
81
82
  * The macro definitions are just to keep the C compiler from spitting up.
82
83
  */