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
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * See proclist.h for functions that operate on these types.
7
7
  *
8
- * Portions Copyright (c) 2016-2022, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 2016-2023, PostgreSQL Global Development Group
9
9
  *
10
10
  * IDENTIFICATION
11
11
  * src/include/storage/proclist_types.h
@@ -4,7 +4,7 @@
4
4
  * Routines for interprocess signaling
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/procsignal.h
@@ -35,12 +35,14 @@ typedef enum
35
35
  PROCSIG_WALSND_INIT_STOPPING, /* ask walsenders to prepare for shutdown */
36
36
  PROCSIG_BARRIER, /* global barrier interrupt */
37
37
  PROCSIG_LOG_MEMORY_CONTEXT, /* ask backend to log the memory contexts */
38
+ PROCSIG_PARALLEL_APPLY_MESSAGE, /* Message from parallel apply workers */
38
39
 
39
40
  /* Recovery conflict reasons */
40
41
  PROCSIG_RECOVERY_CONFLICT_DATABASE,
41
42
  PROCSIG_RECOVERY_CONFLICT_TABLESPACE,
42
43
  PROCSIG_RECOVERY_CONFLICT_LOCK,
43
44
  PROCSIG_RECOVERY_CONFLICT_SNAPSHOT,
45
+ PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT,
44
46
  PROCSIG_RECOVERY_CONFLICT_BUFFERPIN,
45
47
  PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK,
46
48
 
@@ -0,0 +1,99 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * relfilelocator.h
4
+ * Physical access information for relations.
5
+ *
6
+ *
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1994, Regents of the University of California
9
+ *
10
+ * src/include/storage/relfilelocator.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef RELFILELOCATOR_H
15
+ #define RELFILELOCATOR_H
16
+
17
+ #include "common/relpath.h"
18
+ #include "storage/backendid.h"
19
+
20
+ /*
21
+ * RelFileLocator must provide all that we need to know to physically access
22
+ * a relation, with the exception of the backend ID, which can be provided
23
+ * separately. Note, however, that a "physical" relation is comprised of
24
+ * multiple files on the filesystem, as each fork is stored as a separate
25
+ * file, and each fork can be divided into multiple segments. See md.c.
26
+ *
27
+ * spcOid identifies the tablespace of the relation. It corresponds to
28
+ * pg_tablespace.oid.
29
+ *
30
+ * dbOid identifies the database of the relation. It is zero for
31
+ * "shared" relations (those common to all databases of a cluster).
32
+ * Nonzero dbOid values correspond to pg_database.oid.
33
+ *
34
+ * relNumber identifies the specific relation. relNumber corresponds to
35
+ * pg_class.relfilenode (NOT pg_class.oid, because we need to be able
36
+ * to assign new physical files to relations in some situations).
37
+ * Notice that relNumber is only unique within a database in a particular
38
+ * tablespace.
39
+ *
40
+ * Note: spcOid must be GLOBALTABLESPACE_OID if and only if dbOid is
41
+ * zero. We support shared relations only in the "global" tablespace.
42
+ *
43
+ * Note: in pg_class we allow reltablespace == 0 to denote that the
44
+ * relation is stored in its database's "default" tablespace (as
45
+ * identified by pg_database.dattablespace). However this shorthand
46
+ * is NOT allowed in RelFileLocator structs --- the real tablespace ID
47
+ * must be supplied when setting spcOid.
48
+ *
49
+ * Note: in pg_class, relfilenode can be zero to denote that the relation
50
+ * is a "mapped" relation, whose current true filenode number is available
51
+ * from relmapper.c. Again, this case is NOT allowed in RelFileLocators.
52
+ *
53
+ * Note: various places use RelFileLocator in hashtable keys. Therefore,
54
+ * there *must not* be any unused padding bytes in this struct. That
55
+ * should be safe as long as all the fields are of type Oid.
56
+ */
57
+ typedef struct RelFileLocator
58
+ {
59
+ Oid spcOid; /* tablespace */
60
+ Oid dbOid; /* database */
61
+ RelFileNumber relNumber; /* relation */
62
+ } RelFileLocator;
63
+
64
+ /*
65
+ * Augmenting a relfilelocator with the backend ID provides all the information
66
+ * we need to locate the physical storage. The backend ID is InvalidBackendId
67
+ * for regular relations (those accessible to more than one backend), or the
68
+ * owning backend's ID for backend-local relations. Backend-local relations
69
+ * are always transient and removed in case of a database crash; they are
70
+ * never WAL-logged or fsync'd.
71
+ */
72
+ typedef struct RelFileLocatorBackend
73
+ {
74
+ RelFileLocator locator;
75
+ BackendId backend;
76
+ } RelFileLocatorBackend;
77
+
78
+ #define RelFileLocatorBackendIsTemp(rlocator) \
79
+ ((rlocator).backend != InvalidBackendId)
80
+
81
+ /*
82
+ * Note: RelFileLocatorEquals and RelFileLocatorBackendEquals compare relNumber
83
+ * first since that is most likely to be different in two unequal
84
+ * RelFileLocators. It is probably redundant to compare spcOid if the other
85
+ * fields are found equal, but do it anyway to be sure. Likewise for checking
86
+ * the backend ID in RelFileLocatorBackendEquals.
87
+ */
88
+ #define RelFileLocatorEquals(locator1, locator2) \
89
+ ((locator1).relNumber == (locator2).relNumber && \
90
+ (locator1).dbOid == (locator2).dbOid && \
91
+ (locator1).spcOid == (locator2).spcOid)
92
+
93
+ #define RelFileLocatorBackendEquals(locator1, locator2) \
94
+ ((locator1).locator.relNumber == (locator2).locator.relNumber && \
95
+ (locator1).locator.dbOid == (locator2).locator.dbOid && \
96
+ (locator1).backend == (locator2).backend && \
97
+ (locator1).locator.spcOid == (locator2).locator.spcOid)
98
+
99
+ #endif /* RELFILELOCATOR_H */
@@ -86,7 +86,7 @@
86
86
  * when using the SysV semaphore code.
87
87
  *
88
88
  *
89
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
89
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
90
90
  * Portions Copyright (c) 1994, Regents of the University of California
91
91
  *
92
92
  * src/include/storage/s_lock.h
@@ -142,7 +142,7 @@ typedef unsigned char slock_t;
142
142
  static __inline__ int
143
143
  tas(volatile slock_t *lock)
144
144
  {
145
- register slock_t _res = 1;
145
+ slock_t _res = 1;
146
146
 
147
147
  /*
148
148
  * Use a non-locking test before asserting the bus lock. Note that the
@@ -223,7 +223,7 @@ typedef unsigned char slock_t;
223
223
  static __inline__ int
224
224
  tas(volatile slock_t *lock)
225
225
  {
226
- register slock_t _res = 1;
226
+ slock_t _res = 1;
227
227
 
228
228
  __asm__ __volatile__(
229
229
  " lock \n"
@@ -250,78 +250,13 @@ spin_delay(void)
250
250
  #endif /* __x86_64__ */
251
251
 
252
252
 
253
- #if defined(__ia64__) || defined(__ia64)
254
- /*
255
- * Intel Itanium, gcc or Intel's compiler.
256
- *
257
- * Itanium has weak memory ordering, but we rely on the compiler to enforce
258
- * strict ordering of accesses to volatile data. In particular, while the
259
- * xchg instruction implicitly acts as a memory barrier with 'acquire'
260
- * semantics, we do not have an explicit memory fence instruction in the
261
- * S_UNLOCK macro. We use a regular assignment to clear the spinlock, and
262
- * trust that the compiler marks the generated store instruction with the
263
- * ".rel" opcode.
264
- *
265
- * Testing shows that assumption to hold on gcc, although I could not find
266
- * any explicit statement on that in the gcc manual. In Intel's compiler,
267
- * the -m[no-]serialize-volatile option controls that, and testing shows that
268
- * it is enabled by default.
269
- *
270
- * While icc accepts gcc asm blocks on x86[_64], this is not true on ia64
271
- * (at least not in icc versions before 12.x). So we have to carry a separate
272
- * compiler-intrinsic-based implementation for it.
273
- */
274
- #define HAS_TEST_AND_SET
275
-
276
- typedef unsigned int slock_t;
277
-
278
- #define TAS(lock) tas(lock)
279
-
280
- /* On IA64, it's a win to use a non-locking test before the xchg proper */
281
- #define TAS_SPIN(lock) (*(lock) ? 1 : TAS(lock))
282
-
283
- #ifndef __INTEL_COMPILER
284
-
285
- static __inline__ int
286
- tas(volatile slock_t *lock)
287
- {
288
- long int ret;
289
-
290
- __asm__ __volatile__(
291
- " xchg4 %0=%1,%2 \n"
292
- : "=r"(ret), "+m"(*lock)
293
- : "r"(1)
294
- : "memory");
295
- return (int) ret;
296
- }
297
-
298
- #else /* __INTEL_COMPILER */
299
-
300
- static __inline__ int
301
- tas(volatile slock_t *lock)
302
- {
303
- int ret;
304
-
305
- ret = _InterlockedExchange(lock,1); /* this is a xchg asm macro */
306
-
307
- return ret;
308
- }
309
-
310
- /* icc can't use the regular gcc S_UNLOCK() macro either in this case */
311
- #define S_UNLOCK(lock) \
312
- do { __memory_barrier(); *(lock) = 0; } while (0)
313
-
314
- #endif /* __INTEL_COMPILER */
315
- #endif /* __ia64__ || __ia64 */
316
-
317
-
318
253
  /*
319
254
  * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
320
255
  *
321
256
  * We use the int-width variant of the builtin because it works on more chips
322
257
  * than other widths.
323
258
  */
324
- #if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64)
259
+ #if defined(__arm__) || defined(__arm) || defined(__aarch64__)
325
260
  #ifdef HAVE_GCC__SYNC_INT32_TAS
326
261
  #define HAS_TEST_AND_SET
327
262
 
@@ -342,7 +277,7 @@ tas(volatile slock_t *lock)
342
277
  * high-core-count ARM64 processors. It seems mostly a wash for smaller gear,
343
278
  * and ISB doesn't exist at all on pre-v7 ARM chips.
344
279
  */
345
- #if defined(__aarch64__) || defined(__aarch64)
280
+ #if defined(__aarch64__)
346
281
 
347
282
  #define SPIN_DELAY() spin_delay()
348
283
 
@@ -353,9 +288,9 @@ spin_delay(void)
353
288
  " isb; \n");
354
289
  }
355
290
 
356
- #endif /* __aarch64__ || __aarch64 */
291
+ #endif /* __aarch64__ */
357
292
  #endif /* HAVE_GCC__SYNC_INT32_TAS */
358
- #endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
293
+ #endif /* __arm__ || __arm || __aarch64__ */
359
294
 
360
295
 
361
296
  /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
@@ -386,7 +321,7 @@ tas(volatile slock_t *lock)
386
321
  /*
387
322
  * Solaris has always run sparc processors in TSO (total store) mode, but
388
323
  * linux didn't use to and the *BSDs still don't. So, be careful about
389
- * acquire/release semantics. The CPU will treat superfluous membars as
324
+ * acquire/release semantics. The CPU will treat superfluous members as
390
325
  * NOPs, so it's just code space.
391
326
  */
392
327
  #define HAS_TEST_AND_SET
@@ -398,7 +333,7 @@ typedef unsigned char slock_t;
398
333
  static __inline__ int
399
334
  tas(volatile slock_t *lock)
400
335
  {
401
- register slock_t _res;
336
+ slock_t _res;
402
337
 
403
338
  /*
404
339
  * See comment in src/backend/port/tas/sunstudio_sparc.s for why this
@@ -477,7 +412,8 @@ typedef unsigned int slock_t;
477
412
  *
478
413
  * NOTE: per the Enhanced PowerPC Architecture manual, v1.0 dated 7-May-2002,
479
414
  * an isync is a sufficient synchronization barrier after a lwarx/stwcx loop.
480
- * On newer machines, we can use lwsync instead for better performance.
415
+ * But if the spinlock is in ordinary memory, we can use lwsync instead for
416
+ * better performance.
481
417
  *
482
418
  * Ordinarily, we'd code the branches here using GNU-style local symbols, that
483
419
  * is "1f" referencing "1:" and so on. But some people run gcc on AIX with
@@ -492,23 +428,15 @@ tas(volatile slock_t *lock)
492
428
  int _res;
493
429
 
494
430
  __asm__ __volatile__(
495
- #ifdef USE_PPC_LWARX_MUTEX_HINT
496
431
  " lwarx %0,0,%3,1 \n"
497
- #else
498
- " lwarx %0,0,%3 \n"
499
- #endif
500
432
  " cmpwi %0,0 \n"
501
433
  " bne $+16 \n" /* branch to li %1,1 */
502
434
  " addi %0,%0,1 \n"
503
435
  " stwcx. %0,0,%3 \n"
504
- " beq $+12 \n" /* branch to lwsync/isync */
436
+ " beq $+12 \n" /* branch to lwsync */
505
437
  " li %1,1 \n"
506
438
  " b $+12 \n" /* branch to end of asm sequence */
507
- #ifdef USE_PPC_LWSYNC
508
439
  " lwsync \n"
509
- #else
510
- " isync \n"
511
- #endif
512
440
  " li %1,0 \n"
513
441
 
514
442
  : "=&b"(_t), "=r"(_res), "+m"(*lock)
@@ -519,107 +447,18 @@ tas(volatile slock_t *lock)
519
447
 
520
448
  /*
521
449
  * PowerPC S_UNLOCK is almost standard but requires a "sync" instruction.
522
- * On newer machines, we can use lwsync instead for better performance.
450
+ * But we can use lwsync instead for better performance.
523
451
  */
524
- #ifdef USE_PPC_LWSYNC
525
452
  #define S_UNLOCK(lock) \
526
453
  do \
527
454
  { \
528
455
  __asm__ __volatile__ (" lwsync \n" ::: "memory"); \
529
456
  *((volatile slock_t *) (lock)) = 0; \
530
457
  } while (0)
531
- #else
532
- #define S_UNLOCK(lock) \
533
- do \
534
- { \
535
- __asm__ __volatile__ (" sync \n" ::: "memory"); \
536
- *((volatile slock_t *) (lock)) = 0; \
537
- } while (0)
538
- #endif /* USE_PPC_LWSYNC */
539
458
 
540
459
  #endif /* powerpc */
541
460
 
542
461
 
543
- /* Linux Motorola 68k */
544
- #if (defined(__mc68000__) || defined(__m68k__)) && defined(__linux__)
545
- #define HAS_TEST_AND_SET
546
-
547
- typedef unsigned char slock_t;
548
-
549
- #define TAS(lock) tas(lock)
550
-
551
- static __inline__ int
552
- tas(volatile slock_t *lock)
553
- {
554
- register int rv;
555
-
556
- __asm__ __volatile__(
557
- " clrl %0 \n"
558
- " tas %1 \n"
559
- " sne %0 \n"
560
- : "=d"(rv), "+m"(*lock)
561
- : /* no inputs */
562
- : "memory", "cc");
563
- return rv;
564
- }
565
-
566
- #endif /* (__mc68000__ || __m68k__) && __linux__ */
567
-
568
-
569
- /* Motorola 88k */
570
- #if defined(__m88k__)
571
- #define HAS_TEST_AND_SET
572
-
573
- typedef unsigned int slock_t;
574
-
575
- #define TAS(lock) tas(lock)
576
-
577
- static __inline__ int
578
- tas(volatile slock_t *lock)
579
- {
580
- register slock_t _res = 1;
581
-
582
- __asm__ __volatile__(
583
- " xmem %0, %2, %%r0 \n"
584
- : "+r"(_res), "+m"(*lock)
585
- : "r"(lock)
586
- : "memory");
587
- return (int) _res;
588
- }
589
-
590
- #endif /* __m88k__ */
591
-
592
-
593
- /*
594
- * VAXen -- even multiprocessor ones
595
- * (thanks to Tom Ivar Helbekkmo)
596
- */
597
- #if defined(__vax__)
598
- #define HAS_TEST_AND_SET
599
-
600
- typedef unsigned char slock_t;
601
-
602
- #define TAS(lock) tas(lock)
603
-
604
- static __inline__ int
605
- tas(volatile slock_t *lock)
606
- {
607
- register int _res;
608
-
609
- __asm__ __volatile__(
610
- " movl $1, %0 \n"
611
- " bbssi $0, (%2), 1f \n"
612
- " clrl %0 \n"
613
- "1: \n"
614
- : "=&r"(_res), "+m"(*lock)
615
- : "r"(lock)
616
- : "memory");
617
- return _res;
618
- }
619
-
620
- #endif /* __vax__ */
621
-
622
-
623
462
  #if defined(__mips__) && !defined(__sgi) /* non-SGI MIPS */
624
463
  #define HAS_TEST_AND_SET
625
464
 
@@ -649,9 +488,9 @@ typedef unsigned int slock_t;
649
488
  static __inline__ int
650
489
  tas(volatile slock_t *lock)
651
490
  {
652
- register volatile slock_t *_l = lock;
653
- register int _res;
654
- register int _tmp;
491
+ volatile slock_t *_l = lock;
492
+ int _res;
493
+ int _tmp;
655
494
 
656
495
  __asm__ __volatile__(
657
496
  " .set push \n"
@@ -691,56 +530,70 @@ do \
691
530
  #endif /* __mips__ && !__sgi */
692
531
 
693
532
 
694
- #if defined(__m32r__) && defined(HAVE_SYS_TAS_H) /* Renesas' M32R */
695
- #define HAS_TEST_AND_SET
696
-
697
- #include <sys/tas.h>
698
-
699
- typedef int slock_t;
700
-
701
- #define TAS(lock) tas(lock)
702
-
703
- #endif /* __m32r__ */
704
-
705
-
706
- #if defined(__sh__) /* Renesas' SuperH */
533
+ #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC */
534
+ /*
535
+ * HP's PA-RISC
536
+ *
537
+ * Because LDCWX requires a 16-byte-aligned address, we declare slock_t as a
538
+ * 16-byte struct. The active word in the struct is whichever has the aligned
539
+ * address; the other three words just sit at -1.
540
+ */
707
541
  #define HAS_TEST_AND_SET
708
542
 
709
- typedef unsigned char slock_t;
543
+ typedef struct
544
+ {
545
+ int sema[4];
546
+ } slock_t;
710
547
 
711
- #define TAS(lock) tas(lock)
548
+ #define TAS_ACTIVE_WORD(lock) ((volatile int *) (((uintptr_t) (lock) + 15) & ~15))
712
549
 
713
550
  static __inline__ int
714
551
  tas(volatile slock_t *lock)
715
552
  {
716
- register int _res;
553
+ volatile int *lockword = TAS_ACTIVE_WORD(lock);
554
+ int lockval;
717
555
 
718
556
  /*
719
- * This asm is coded as if %0 could be any register, but actually SuperH
720
- * restricts the target of xor-immediate to be R0. That's handled by
721
- * the "z" constraint on _res.
557
+ * The LDCWX instruction atomically clears the target word and
558
+ * returns the previous value. Hence, if the instruction returns
559
+ * 0, someone else has already acquired the lock before we tested
560
+ * it (i.e., we have failed).
561
+ *
562
+ * Notice that this means that we actually clear the word to set
563
+ * the lock and set the word to clear the lock. This is the
564
+ * opposite behavior from the SPARC LDSTUB instruction. For some
565
+ * reason everything that H-P does is rather baroque...
566
+ *
567
+ * For details about the LDCWX instruction, see the "Precision
568
+ * Architecture and Instruction Reference Manual" (09740-90014 of June
569
+ * 1987), p. 5-38.
722
570
  */
723
571
  __asm__ __volatile__(
724
- " tas.b @%2 \n"
725
- " movt %0 \n"
726
- " xor #1,%0 \n"
727
- : "=z"(_res), "+m"(*lock)
728
- : "r"(lock)
729
- : "memory", "t");
730
- return _res;
572
+ " ldcwx 0(0,%2),%0 \n"
573
+ : "=r"(lockval), "+m"(*lockword)
574
+ : "r"(lockword)
575
+ : "memory");
576
+ return (lockval == 0);
731
577
  }
732
578
 
733
- #endif /* __sh__ */
734
-
735
-
736
- /* These live in s_lock.c, but only for gcc */
579
+ #define S_UNLOCK(lock) \
580
+ do { \
581
+ __asm__ __volatile__("" : : : "memory"); \
582
+ *TAS_ACTIVE_WORD(lock) = -1; \
583
+ } while (0)
737
584
 
585
+ #define S_INIT_LOCK(lock) \
586
+ do { \
587
+ volatile slock_t *lock_ = (lock); \
588
+ lock_->sema[0] = -1; \
589
+ lock_->sema[1] = -1; \
590
+ lock_->sema[2] = -1; \
591
+ lock_->sema[3] = -1; \
592
+ } while (0)
738
593
 
739
- #if defined(__m68k__) && !defined(__linux__) /* non-Linux Motorola 68k */
740
- #define HAS_TEST_AND_SET
594
+ #define S_LOCK_FREE(lock) (*TAS_ACTIVE_WORD(lock) != 0)
741
595
 
742
- typedef unsigned char slock_t;
743
- #endif
596
+ #endif /* __hppa || __hppa__ */
744
597
 
745
598
 
746
599
  /*
@@ -805,7 +658,6 @@ tas(volatile slock_t *lock)
805
658
  #endif /* defined(__GNUC__) || defined(__INTEL_COMPILER) */
806
659
 
807
660
 
808
-
809
661
  /*
810
662
  * ---------------------------------------------------------------------
811
663
  * Platforms that use non-gcc inline assembly:
@@ -814,101 +666,6 @@ tas(volatile slock_t *lock)
814
666
 
815
667
  #if !defined(HAS_TEST_AND_SET) /* We didn't trigger above, let's try here */
816
668
 
817
-
818
- #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC, GCC and HP compilers */
819
- /*
820
- * HP's PA-RISC
821
- *
822
- * See src/backend/port/hpux/tas.c.template for details about LDCWX. Because
823
- * LDCWX requires a 16-byte-aligned address, we declare slock_t as a 16-byte
824
- * struct. The active word in the struct is whichever has the aligned address;
825
- * the other three words just sit at -1.
826
- *
827
- * When using gcc, we can inline the required assembly code.
828
- */
829
- #define HAS_TEST_AND_SET
830
-
831
- typedef struct
832
- {
833
- int sema[4];
834
- } slock_t;
835
-
836
- #define TAS_ACTIVE_WORD(lock) ((volatile int *) (((uintptr_t) (lock) + 15) & ~15))
837
-
838
- #if defined(__GNUC__)
839
-
840
- static __inline__ int
841
- tas(volatile slock_t *lock)
842
- {
843
- volatile int *lockword = TAS_ACTIVE_WORD(lock);
844
- register int lockval;
845
-
846
- __asm__ __volatile__(
847
- " ldcwx 0(0,%2),%0 \n"
848
- : "=r"(lockval), "+m"(*lockword)
849
- : "r"(lockword)
850
- : "memory");
851
- return (lockval == 0);
852
- }
853
-
854
- /*
855
- * The hppa implementation doesn't follow the rules of this files and provides
856
- * a gcc specific implementation outside of the above defined(__GNUC__). It
857
- * does so to avoid duplication between the HP compiler and gcc. So undefine
858
- * the generic fallback S_UNLOCK from above.
859
- */
860
- #ifdef S_UNLOCK
861
- #undef S_UNLOCK
862
- #endif
863
- #define S_UNLOCK(lock) \
864
- do { \
865
- __asm__ __volatile__("" : : : "memory"); \
866
- *TAS_ACTIVE_WORD(lock) = -1; \
867
- } while (0)
868
-
869
- #endif /* __GNUC__ */
870
-
871
- #define S_INIT_LOCK(lock) \
872
- do { \
873
- volatile slock_t *lock_ = (lock); \
874
- lock_->sema[0] = -1; \
875
- lock_->sema[1] = -1; \
876
- lock_->sema[2] = -1; \
877
- lock_->sema[3] = -1; \
878
- } while (0)
879
-
880
- #define S_LOCK_FREE(lock) (*TAS_ACTIVE_WORD(lock) != 0)
881
-
882
- #endif /* __hppa || __hppa__ */
883
-
884
-
885
- #if defined(__hpux) && defined(__ia64) && !defined(__GNUC__)
886
- /*
887
- * HP-UX on Itanium, non-gcc/icc compiler
888
- *
889
- * We assume that the compiler enforces strict ordering of loads/stores on
890
- * volatile data (see comments on the gcc-version earlier in this file).
891
- * Note that this assumption does *not* hold if you use the
892
- * +Ovolatile=__unordered option on the HP-UX compiler, so don't do that.
893
- *
894
- * See also Implementing Spinlocks on the Intel Itanium Architecture and
895
- * PA-RISC, by Tor Ekqvist and David Graves, for more information. As of
896
- * this writing, version 1.0 of the manual is available at:
897
- * http://h21007.www2.hp.com/portal/download/files/unprot/itanium/spinlocks.pdf
898
- */
899
- #define HAS_TEST_AND_SET
900
-
901
- typedef unsigned int slock_t;
902
-
903
- #include <ia64/sys/inline.h>
904
- #define TAS(lock) _Asm_xchg(_SZ_W, lock, 1, _LDHINT_NONE)
905
- /* On IA64, it's a win to use a non-locking test before the xchg proper */
906
- #define TAS_SPIN(lock) (*(lock) ? 1 : TAS(lock))
907
- #define S_UNLOCK(lock) \
908
- do { _Asm_mf(); (*(lock)) = 0; } while (0)
909
-
910
- #endif /* HPUX on IA64, non gcc/icc */
911
-
912
669
  #if defined(_AIX) /* AIX */
913
670
  /*
914
671
  * AIX (POWER)
@@ -1016,7 +773,7 @@ extern int tas_sema(volatile slock_t *lock);
1016
773
 
1017
774
  #if !defined(S_LOCK)
1018
775
  #define S_LOCK(lock) \
1019
- (TAS(lock) ? s_lock((lock), __FILE__, __LINE__, PG_FUNCNAME_MACRO) : 0)
776
+ (TAS(lock) ? s_lock((lock), __FILE__, __LINE__, __func__) : 0)
1020
777
  #endif /* S_LOCK */
1021
778
 
1022
779
  #if !defined(S_LOCK_FREE)
@@ -1103,7 +860,7 @@ init_spin_delay(SpinDelayStatus *status,
1103
860
  status->func = func;
1104
861
  }
1105
862
 
1106
- #define init_local_spin_delay(status) init_spin_delay(status, __FILE__, __LINE__, PG_FUNCNAME_MACRO)
863
+ #define init_local_spin_delay(status) init_spin_delay(status, __FILE__, __LINE__, __func__)
1107
864
  extern void perform_spin_delay(SpinDelayStatus *status);
1108
865
  extern void finish_spin_delay(SpinDelayStatus *status);
1109
866
 
@@ -4,7 +4,7 @@
4
4
  * Shared temporary file management.
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/sharedfileset.h
@@ -3,7 +3,7 @@
3
3
  * shm_mq.h
4
4
  * single-reader, single-writer shared memory message queue
5
5
  *
6
- * Portions Copyright (c) 1996-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/shm_mq.h
@@ -12,7 +12,7 @@
12
12
  * other data structure within the segment and only put the pointer to
13
13
  * the data structure itself in the table of contents.
14
14
  *
15
- * Portions Copyright (c) 1996-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/shm_toc.h