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
@@ -138,36 +138,37 @@
138
138
  K_PG_EXCEPTION_CONTEXT = 354,
139
139
  K_PG_EXCEPTION_DETAIL = 355,
140
140
  K_PG_EXCEPTION_HINT = 356,
141
- K_PRINT_STRICT_PARAMS = 357,
142
- K_PRIOR = 358,
143
- K_QUERY = 359,
144
- K_RAISE = 360,
145
- K_RELATIVE = 361,
146
- K_RETURN = 362,
147
- K_RETURNED_SQLSTATE = 363,
148
- K_REVERSE = 364,
149
- K_ROLLBACK = 365,
150
- K_ROW_COUNT = 366,
151
- K_ROWTYPE = 367,
152
- K_SCHEMA = 368,
153
- K_SCHEMA_NAME = 369,
154
- K_SCROLL = 370,
155
- K_SLICE = 371,
156
- K_SQLSTATE = 372,
157
- K_STACKED = 373,
158
- K_STRICT = 374,
159
- K_TABLE = 375,
160
- K_TABLE_NAME = 376,
161
- K_THEN = 377,
162
- K_TO = 378,
163
- K_TYPE = 379,
164
- K_USE_COLUMN = 380,
165
- K_USE_VARIABLE = 381,
166
- K_USING = 382,
167
- K_VARIABLE_CONFLICT = 383,
168
- K_WARNING = 384,
169
- K_WHEN = 385,
170
- K_WHILE = 386
141
+ K_PG_ROUTINE_OID = 357,
142
+ K_PRINT_STRICT_PARAMS = 358,
143
+ K_PRIOR = 359,
144
+ K_QUERY = 360,
145
+ K_RAISE = 361,
146
+ K_RELATIVE = 362,
147
+ K_RETURN = 363,
148
+ K_RETURNED_SQLSTATE = 364,
149
+ K_REVERSE = 365,
150
+ K_ROLLBACK = 366,
151
+ K_ROW_COUNT = 367,
152
+ K_ROWTYPE = 368,
153
+ K_SCHEMA = 369,
154
+ K_SCHEMA_NAME = 370,
155
+ K_SCROLL = 371,
156
+ K_SLICE = 372,
157
+ K_SQLSTATE = 373,
158
+ K_STACKED = 374,
159
+ K_STRICT = 375,
160
+ K_TABLE = 376,
161
+ K_TABLE_NAME = 377,
162
+ K_THEN = 378,
163
+ K_TO = 379,
164
+ K_TYPE = 380,
165
+ K_USE_COLUMN = 381,
166
+ K_USE_VARIABLE = 382,
167
+ K_USING = 383,
168
+ K_VARIABLE_CONFLICT = 384,
169
+ K_WARNING = 385,
170
+ K_WHEN = 386,
171
+ K_WHILE = 387
171
172
  };
172
173
  #endif
173
174
  /* Tokens. */
@@ -270,43 +271,44 @@
270
271
  #define K_PG_EXCEPTION_CONTEXT 354
271
272
  #define K_PG_EXCEPTION_DETAIL 355
272
273
  #define K_PG_EXCEPTION_HINT 356
273
- #define K_PRINT_STRICT_PARAMS 357
274
- #define K_PRIOR 358
275
- #define K_QUERY 359
276
- #define K_RAISE 360
277
- #define K_RELATIVE 361
278
- #define K_RETURN 362
279
- #define K_RETURNED_SQLSTATE 363
280
- #define K_REVERSE 364
281
- #define K_ROLLBACK 365
282
- #define K_ROW_COUNT 366
283
- #define K_ROWTYPE 367
284
- #define K_SCHEMA 368
285
- #define K_SCHEMA_NAME 369
286
- #define K_SCROLL 370
287
- #define K_SLICE 371
288
- #define K_SQLSTATE 372
289
- #define K_STACKED 373
290
- #define K_STRICT 374
291
- #define K_TABLE 375
292
- #define K_TABLE_NAME 376
293
- #define K_THEN 377
294
- #define K_TO 378
295
- #define K_TYPE 379
296
- #define K_USE_COLUMN 380
297
- #define K_USE_VARIABLE 381
298
- #define K_USING 382
299
- #define K_VARIABLE_CONFLICT 383
300
- #define K_WARNING 384
301
- #define K_WHEN 385
302
- #define K_WHILE 386
274
+ #define K_PG_ROUTINE_OID 357
275
+ #define K_PRINT_STRICT_PARAMS 358
276
+ #define K_PRIOR 359
277
+ #define K_QUERY 360
278
+ #define K_RAISE 361
279
+ #define K_RELATIVE 362
280
+ #define K_RETURN 363
281
+ #define K_RETURNED_SQLSTATE 364
282
+ #define K_REVERSE 365
283
+ #define K_ROLLBACK 366
284
+ #define K_ROW_COUNT 367
285
+ #define K_ROWTYPE 368
286
+ #define K_SCHEMA 369
287
+ #define K_SCHEMA_NAME 370
288
+ #define K_SCROLL 371
289
+ #define K_SLICE 372
290
+ #define K_SQLSTATE 373
291
+ #define K_STACKED 374
292
+ #define K_STRICT 375
293
+ #define K_TABLE 376
294
+ #define K_TABLE_NAME 377
295
+ #define K_THEN 378
296
+ #define K_TO 379
297
+ #define K_TYPE 380
298
+ #define K_USE_COLUMN 381
299
+ #define K_USE_VARIABLE 382
300
+ #define K_USING 383
301
+ #define K_VARIABLE_CONFLICT 384
302
+ #define K_WARNING 385
303
+ #define K_WHEN 386
304
+ #define K_WHILE 387
303
305
 
304
306
 
305
307
 
306
308
 
307
309
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
308
310
  typedef union YYSTYPE
309
- #line 120 "pl_gram.y"
311
+ #line 117 "pl_gram.y"
310
312
  {
311
313
  core_YYSTYPE core_yystype;
312
314
  /* these fields must match core_YYSTYPE: */
@@ -358,14 +360,14 @@ typedef union YYSTYPE
358
360
  PLpgSQL_case_when *casewhen;
359
361
  }
360
362
  /* Line 1529 of yacc.c. */
361
- #line 362 "pl_gram.h"
363
+ #line 364 "pl_gram.h"
362
364
  YYSTYPE;
363
365
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
364
366
  # define YYSTYPE_IS_DECLARED 1
365
367
  # define YYSTYPE_IS_TRIVIAL 1
366
368
  #endif
367
369
 
368
- extern __thread YYSTYPE plpgsql_yylval;
370
+ extern __thread YYSTYPE plpgsql_yylval;
369
371
 
370
372
  #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
371
373
  typedef struct YYLTYPE
@@ -380,4 +382,4 @@ typedef struct YYLTYPE
380
382
  # define YYLTYPE_IS_TRIVIAL 1
381
383
  #endif
382
384
 
383
- extern __thread YYLTYPE plpgsql_yylloc;
385
+ extern __thread YYLTYPE plpgsql_yylloc;
@@ -7,7 +7,7 @@
7
7
  * by the PG_KEYWORD macro, which is not defined in this file; it can
8
8
  * be defined by the caller for special purposes.
9
9
  *
10
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * src/pl/plpgsql/src/pl_reserved_kwlist.h
@@ -3,7 +3,7 @@
3
3
  * pl_reserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
  * NOTES
@@ -7,7 +7,7 @@
7
7
  * by the PG_KEYWORD macro, which is not defined in this file; it can
8
8
  * be defined by the caller for special purposes.
9
9
  *
10
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * src/pl/plpgsql/src/pl_unreserved_kwlist.h
@@ -85,6 +85,7 @@ PG_KEYWORD("pg_datatype_name", K_PG_DATATYPE_NAME)
85
85
  PG_KEYWORD("pg_exception_context", K_PG_EXCEPTION_CONTEXT)
86
86
  PG_KEYWORD("pg_exception_detail", K_PG_EXCEPTION_DETAIL)
87
87
  PG_KEYWORD("pg_exception_hint", K_PG_EXCEPTION_HINT)
88
+ PG_KEYWORD("pg_routine_oid", K_PG_ROUTINE_OID)
88
89
  PG_KEYWORD("print_strict_params", K_PRINT_STRICT_PARAMS)
89
90
  PG_KEYWORD("prior", K_PRIOR)
90
91
  PG_KEYWORD("query", K_QUERY)
@@ -3,7 +3,7 @@
3
3
  * pl_unreserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
  * NOTES
@@ -80,6 +80,7 @@ static const char UnreservedPLKeywords_kw_string[] =
80
80
  "pg_exception_context\0"
81
81
  "pg_exception_detail\0"
82
82
  "pg_exception_hint\0"
83
+ "pg_routine_oid\0"
83
84
  "print_strict_params\0"
84
85
  "prior\0"
85
86
  "query\0"
@@ -165,63 +166,64 @@ static const uint16 UnreservedPLKeywords_kw_offsets[] = {
165
166
  420,
166
167
  440,
167
168
  458,
168
- 478,
169
- 484,
170
- 490,
171
- 496,
169
+ 473,
170
+ 493,
171
+ 499,
172
172
  505,
173
- 512,
174
- 530,
175
- 538,
176
- 547,
177
- 557,
178
- 565,
173
+ 511,
174
+ 520,
175
+ 527,
176
+ 545,
177
+ 553,
178
+ 562,
179
179
  572,
180
- 584,
181
- 591,
182
- 597,
180
+ 580,
181
+ 587,
182
+ 599,
183
183
  606,
184
- 614,
185
- 620,
186
- 631,
187
- 636,
188
- 647,
189
- 660,
190
- 678,
184
+ 612,
185
+ 621,
186
+ 629,
187
+ 635,
188
+ 646,
189
+ 651,
190
+ 662,
191
+ 675,
192
+ 693,
191
193
  };
192
194
 
193
- #define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS 82
195
+ #define UNRESERVEDPLKEYWORDS_NUM_KEYWORDS 83
194
196
 
195
197
  static int
196
198
  UnreservedPLKeywords_hash_func(const void *key, size_t keylen)
197
199
  {
198
- static const int16 h[165] = {
199
- 58, 0, 26, 32767, 0, 0, 9, 32767,
200
- 0, 32767, 37, 74, 32767, -7, 32767, 39,
201
- 58, -5, 32767, 31, 32767, 32767, 75, -23,
202
- 32767, 0, 32767, 32767, 32767, -14, 32767, 81,
203
- 32767, 32767, 32767, -36, -9, 32767, 32767, 32767,
204
- 40, 32767, 54, 10, 11, 43, 32767, 0,
205
- 52, 105, -22, 15, 32767, -33, 49, -65,
206
- 48, 32767, 32767, 32767, 25, 49, -47, 37,
207
- 21, 32767, 32767, -15, 70, 32767, 32767, 64,
208
- -10, 126, 32767, 51, 0, 36, 32767, -55,
209
- -22, 32767, 32767, 32767, 32767, 32767, -26, -35,
210
- 32767, 61, 32767, 32767, 32767, -23, 98, 48,
211
- 23, 19, 32767, 7, 35, 5, -18, 71,
212
- 28, 5, 32767, 32767, 32767, 74, 32767, 82,
213
- 32767, 0, 32767, 32767, 66, 0, 0, 50,
214
- 32767, 32767, 5, 2, 0, 32767, 55, 32767,
215
- 32767, 45, 79, 32767, 32767, 73, 22, 0,
216
- 103, 32767, -20, 72, 32767, 0, 29, 32767,
217
- 0, 32767, 32767, 0, 50, 28, 32767, -40,
218
- 32767, 32767, 34, 56, 32767, 32767, 32767, 17,
219
- -36, 32767, 67, 32767, 0
200
+ static const int16 h[167] = {
201
+ 0, -26, 32767, 0, 74, -36, 32767, 32767,
202
+ 93, 0, 35, 14, 34, -65, -42, 78,
203
+ -22, 8, 10, 0, 5, 32767, 10, 26,
204
+ 32767, 4, 32767, 32767, -81, -9, -25, 32767,
205
+ -17, 11, 0, -43, 11, 8, 45, 0,
206
+ 32767, 32767, 32767, 12, 0, 32767, 32, 32767,
207
+ 0, 32767, -18, 64, 32767, -2, 31, 32767,
208
+ 50, 80, -75, 32767, 32767, 32767, 0, 32767,
209
+ 32767, 0, 54, 82, 32767, 32767, 69, 60,
210
+ 43, 32767, 0, 95, 21, 1, 27, 0,
211
+ 120, 32767, -46, 32767, -57, 32767, 32767, 55,
212
+ 70, 32767, 28, 32767, 0, -14, -38, 32767,
213
+ 57, 0, 32767, 19, 98, 0, 32767, 68,
214
+ 32767, 32767, 32767, 32767, -26, 13, 27, 35,
215
+ 37, 32767, 49, -44, 65, -35, 0, 32767,
216
+ 32767, 32767, 30, 0, 0, 32767, 26, 42,
217
+ 7, 32767, 72, -43, 32767, 0, 32767, 89,
218
+ 36, 48, 32767, 32, 38, 3, 32767, 49,
219
+ 32767, 0, 51, 0, 32767, 73, 32767, 32767,
220
+ 79, 32767, 30, 32767, 0, 0, 50, 32767,
221
+ 0, 32767, 32767, 32767, 0, 32767, 32767
220
222
  };
221
223
 
222
224
  const unsigned char *k = (const unsigned char *) key;
223
225
  uint32 a = 0;
224
- uint32 b = 0;
226
+ uint32 b = 1;
225
227
 
226
228
  while (keylen--)
227
229
  {
@@ -230,7 +232,7 @@ UnreservedPLKeywords_hash_func(const void *key, size_t keylen)
230
232
  a = a * 257 + c;
231
233
  b = b * 8191 + c;
232
234
  }
233
- return h[a % 165] + h[b % 165];
235
+ return h[a % 167] + h[b % 167];
234
236
  }
235
237
 
236
238
  static const ScanKeywordList UnreservedPLKeywords = {
@@ -3,7 +3,7 @@
3
3
  * plpgsql.h - Definitions for the PL/pgSQL
4
4
  * procedural language
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
  *
@@ -147,6 +147,7 @@ enum
147
147
  typedef enum PLpgSQL_getdiag_kind
148
148
  {
149
149
  PLPGSQL_GETDIAG_ROW_COUNT,
150
+ PLPGSQL_GETDIAG_ROUTINE_OID,
150
151
  PLPGSQL_GETDIAG_CONTEXT,
151
152
  PLPGSQL_GETDIAG_ERROR_CONTEXT,
152
153
  PLPGSQL_GETDIAG_ERROR_DETAIL,
@@ -1075,7 +1076,6 @@ typedef struct PLpgSQL_execstate
1075
1076
 
1076
1077
  /* lookup table to use for executing type casts */
1077
1078
  HTAB *cast_hash;
1078
- MemoryContext cast_hash_context;
1079
1079
 
1080
1080
  /* memory context for statement-lifespan temporary values */
1081
1081
  MemoryContext stmt_mcontext; /* current stmt context, or NULL if none */
@@ -1191,11 +1191,11 @@ typedef enum
1191
1191
  IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
1192
1192
  } IdentifierLookup;
1193
1193
 
1194
- extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1194
+ extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1195
1195
 
1196
- extern __thread int plpgsql_variable_conflict;
1196
+ extern __thread int plpgsql_variable_conflict;
1197
1197
 
1198
- extern __thread bool plpgsql_print_strict_params;
1198
+ extern __thread bool plpgsql_print_strict_params;
1199
1199
 
1200
1200
  extern bool plpgsql_check_asserts;
1201
1201
 
@@ -1209,18 +1209,18 @@ extern bool plpgsql_check_asserts;
1209
1209
  extern int plpgsql_extra_warnings;
1210
1210
  extern int plpgsql_extra_errors;
1211
1211
 
1212
- extern __thread bool plpgsql_check_syntax;
1213
- extern __thread bool plpgsql_DumpExecTree;
1212
+ extern __thread bool plpgsql_check_syntax;
1213
+ extern __thread bool plpgsql_DumpExecTree;
1214
1214
 
1215
- extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1215
+ extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1216
1216
 
1217
- extern __thread int plpgsql_nDatums;
1218
- extern __thread PLpgSQL_datum **plpgsql_Datums;
1217
+ extern __thread int plpgsql_nDatums;
1218
+ extern __thread PLpgSQL_datum **plpgsql_Datums;
1219
1219
 
1220
- extern __thread char *plpgsql_error_funcname;
1220
+ extern __thread char *plpgsql_error_funcname;
1221
1221
 
1222
- extern __thread PLpgSQL_function *plpgsql_curr_compile;
1223
- extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1222
+ extern __thread PLpgSQL_function *plpgsql_curr_compile;
1223
+ extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1224
1224
 
1225
1225
  extern PLpgSQL_plugin **plpgsql_plugin_ptr;
1226
1226
 
@@ -1231,11 +1231,11 @@ extern PLpgSQL_plugin **plpgsql_plugin_ptr;
1231
1231
  /*
1232
1232
  * Functions in pl_comp.c
1233
1233
  */
1234
- extern PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
1235
- bool forValidator);
1234
+ extern PGDLLEXPORT PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
1235
+ bool forValidator);
1236
1236
  extern PLpgSQL_function *plpgsql_compile_inline(char *proc_source);
1237
- extern void plpgsql_parser_setup(struct ParseState *pstate,
1238
- PLpgSQL_expr *expr);
1237
+ extern PGDLLEXPORT void plpgsql_parser_setup(struct ParseState *pstate,
1238
+ PLpgSQL_expr *expr);
1239
1239
  extern bool plpgsql_parse_word(char *word1, const char *yytxt, bool lookup,
1240
1240
  PLwdatum *wdatum, PLword *word);
1241
1241
  extern bool plpgsql_parse_dblword(char *word1, char *word2,
@@ -1246,9 +1246,9 @@ extern PLpgSQL_type *plpgsql_parse_wordtype(char *ident);
1246
1246
  extern PLpgSQL_type *plpgsql_parse_cwordtype(List *idents);
1247
1247
  extern PLpgSQL_type *plpgsql_parse_wordrowtype(char *ident);
1248
1248
  extern PLpgSQL_type *plpgsql_parse_cwordrowtype(List *idents);
1249
- extern PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
1250
- Oid collation,
1251
- TypeName *origtypname);
1249
+ extern PGDLLEXPORT PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
1250
+ Oid collation,
1251
+ TypeName *origtypname);
1252
1252
  extern PLpgSQL_variable *plpgsql_build_variable(const char *refname, int lineno,
1253
1253
  PLpgSQL_type *dtype,
1254
1254
  bool add2namespace);
@@ -1257,8 +1257,8 @@ extern PLpgSQL_rec *plpgsql_build_record(const char *refname, int lineno,
1257
1257
  bool add2namespace);
1258
1258
  extern PLpgSQL_recfield *plpgsql_build_recfield(PLpgSQL_rec *rec,
1259
1259
  const char *fldname);
1260
- extern int plpgsql_recognize_err_condition(const char *condname,
1261
- bool allow_sqlstate);
1260
+ extern PGDLLEXPORT int plpgsql_recognize_err_condition(const char *condname,
1261
+ bool allow_sqlstate);
1262
1262
  extern PLpgSQL_condition *plpgsql_parse_err_condition(char *condname);
1263
1263
  extern void plpgsql_start_datums(void);
1264
1264
  extern void plpgsql_finish_datums(PLpgSQL_function *function);
@@ -1266,11 +1266,6 @@ extern void plpgsql_adddatum(PLpgSQL_datum *newdatum);
1266
1266
  extern int plpgsql_add_initdatums(int **varnos);
1267
1267
  extern void plpgsql_HashTableInit(void);
1268
1268
 
1269
- /*
1270
- * Functions in pl_handler.c
1271
- */
1272
- extern void _PG_init(void);
1273
-
1274
1269
  /*
1275
1270
  * Functions in pl_exec.c
1276
1271
  */
@@ -1287,8 +1282,8 @@ extern void plpgsql_exec_event_trigger(PLpgSQL_function *func,
1287
1282
  extern void plpgsql_xact_cb(XactEvent event, void *arg);
1288
1283
  extern void plpgsql_subxact_cb(SubXactEvent event, SubTransactionId mySubid,
1289
1284
  SubTransactionId parentSubid, void *arg);
1290
- extern Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate,
1291
- PLpgSQL_datum *datum);
1285
+ extern PGDLLEXPORT Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate,
1286
+ PLpgSQL_datum *datum);
1292
1287
  extern void plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate,
1293
1288
  PLpgSQL_datum *datum,
1294
1289
  Oid *typeId, int32 *typMod,
@@ -1303,9 +1298,9 @@ extern void plpgsql_ns_push(const char *label,
1303
1298
  extern void plpgsql_ns_pop(void);
1304
1299
  extern PLpgSQL_nsitem *plpgsql_ns_top(void);
1305
1300
  extern void plpgsql_ns_additem(PLpgSQL_nsitem_type itemtype, int itemno, const char *name);
1306
- extern PLpgSQL_nsitem *plpgsql_ns_lookup(PLpgSQL_nsitem *ns_cur, bool localmode,
1307
- const char *name1, const char *name2,
1308
- const char *name3, int *names_used);
1301
+ extern PGDLLEXPORT PLpgSQL_nsitem *plpgsql_ns_lookup(PLpgSQL_nsitem *ns_cur, bool localmode,
1302
+ const char *name1, const char *name2,
1303
+ const char *name3, int *names_used);
1309
1304
  extern PLpgSQL_nsitem *plpgsql_ns_lookup_label(PLpgSQL_nsitem *ns_cur,
1310
1305
  const char *name);
1311
1306
  extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
@@ -1313,7 +1308,7 @@ extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
1313
1308
  /*
1314
1309
  * Other functions in pl_funcs.c
1315
1310
  */
1316
- extern const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
1311
+ extern PGDLLEXPORT const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
1317
1312
  extern const char *plpgsql_getdiag_kindname(PLpgSQL_getdiag_kind kind);
1318
1313
  extern void plpgsql_free_function_memory(PLpgSQL_function *func);
1319
1314
  extern void plpgsql_dumptree(PLpgSQL_function *func);
@@ -3,7 +3,7 @@
3
3
  * arch-arm.h
4
4
  * Atomic operations considerations specific to ARM
5
5
  *
6
- * Portions Copyright (c) 2013-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
7
7
  *
8
8
  * NOTES:
9
9
  *
@@ -21,7 +21,7 @@
21
21
  * 64 bit atomics on ARM32 are implemented using kernel fallbacks and thus
22
22
  * might be slow, so disable entirely. On ARM64 that problem doesn't exist.
23
23
  */
24
- #if !defined(__aarch64__) && !defined(__aarch64)
24
+ #if !defined(__aarch64__)
25
25
  #define PG_DISABLE_64_BIT_ATOMICS
26
26
  #else
27
27
  /*
@@ -29,4 +29,4 @@
29
29
  * general purpose register is atomic.
30
30
  */
31
31
  #define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
32
- #endif /* __aarch64__ || __aarch64 */
32
+ #endif /* __aarch64__ */
@@ -0,0 +1,17 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * arch-hppa.h
4
+ * Atomic operations considerations specific to HPPA
5
+ *
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * NOTES:
10
+ *
11
+ * src/include/port/atomics/arch-hppa.h
12
+ *
13
+ *-------------------------------------------------------------------------
14
+ */
15
+
16
+ /* HPPA doesn't do either read or write reordering */
17
+ #define pg_memory_barrier_impl() pg_compiler_barrier_impl()
@@ -3,7 +3,7 @@
3
3
  * arch-ppc.h
4
4
  * Atomic operations considerations specific to PowerPC
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
  * NOTES:
@@ -90,12 +90,12 @@ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
90
90
  (int32) *expected >= PG_INT16_MIN)
91
91
  __asm__ __volatile__(
92
92
  " sync \n"
93
- " lwarx %0,0,%5 \n"
93
+ " lwarx %0,0,%5,1 \n"
94
94
  " cmpwi %0,%3 \n"
95
- " bne $+12 \n" /* branch to isync */
95
+ " bne $+12 \n" /* branch to lwsync */
96
96
  " stwcx. %4,0,%5 \n"
97
97
  " bne $-16 \n" /* branch to lwarx */
98
- " isync \n"
98
+ " lwsync \n"
99
99
  " mfcr %1 \n"
100
100
  : "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
101
101
  : "i"(*expected), "r"(newval), "r"(&ptr->value)
@@ -104,12 +104,12 @@ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
104
104
  #endif
105
105
  __asm__ __volatile__(
106
106
  " sync \n"
107
- " lwarx %0,0,%5 \n"
107
+ " lwarx %0,0,%5,1 \n"
108
108
  " cmpw %0,%3 \n"
109
- " bne $+12 \n" /* branch to isync */
109
+ " bne $+12 \n" /* branch to lwsync */
110
110
  " stwcx. %4,0,%5 \n"
111
111
  " bne $-16 \n" /* branch to lwarx */
112
- " isync \n"
112
+ " lwsync \n"
113
113
  " mfcr %1 \n"
114
114
  : "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
115
115
  : "r"(*expected), "r"(newval), "r"(&ptr->value)
@@ -138,11 +138,11 @@ pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
138
138
  add_ <= PG_INT16_MAX && add_ >= PG_INT16_MIN)
139
139
  __asm__ __volatile__(
140
140
  " sync \n"
141
- " lwarx %1,0,%4 \n"
141
+ " lwarx %1,0,%4,1 \n"
142
142
  " addi %0,%1,%3 \n"
143
143
  " stwcx. %0,0,%4 \n"
144
144
  " bne $-12 \n" /* branch to lwarx */
145
- " isync \n"
145
+ " lwsync \n"
146
146
  : "=&r"(_t), "=&b"(res), "+m"(ptr->value)
147
147
  : "i"(add_), "r"(&ptr->value)
148
148
  : "memory", "cc");
@@ -150,11 +150,11 @@ pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
150
150
  #endif
151
151
  __asm__ __volatile__(
152
152
  " sync \n"
153
- " lwarx %1,0,%4 \n"
153
+ " lwarx %1,0,%4,1 \n"
154
154
  " add %0,%1,%3 \n"
155
155
  " stwcx. %0,0,%4 \n"
156
156
  " bne $-12 \n" /* branch to lwarx */
157
- " isync \n"
157
+ " lwsync \n"
158
158
  : "=&r"(_t), "=&r"(res), "+m"(ptr->value)
159
159
  : "r"(add_), "r"(&ptr->value)
160
160
  : "memory", "cc");
@@ -180,12 +180,12 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
180
180
  (int64) *expected >= PG_INT16_MIN)
181
181
  __asm__ __volatile__(
182
182
  " sync \n"
183
- " ldarx %0,0,%5 \n"
183
+ " ldarx %0,0,%5,1 \n"
184
184
  " cmpdi %0,%3 \n"
185
- " bne $+12 \n" /* branch to isync */
185
+ " bne $+12 \n" /* branch to lwsync */
186
186
  " stdcx. %4,0,%5 \n"
187
187
  " bne $-16 \n" /* branch to ldarx */
188
- " isync \n"
188
+ " lwsync \n"
189
189
  " mfcr %1 \n"
190
190
  : "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
191
191
  : "i"(*expected), "r"(newval), "r"(&ptr->value)
@@ -194,12 +194,12 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
194
194
  #endif
195
195
  __asm__ __volatile__(
196
196
  " sync \n"
197
- " ldarx %0,0,%5 \n"
197
+ " ldarx %0,0,%5,1 \n"
198
198
  " cmpd %0,%3 \n"
199
- " bne $+12 \n" /* branch to isync */
199
+ " bne $+12 \n" /* branch to lwsync */
200
200
  " stdcx. %4,0,%5 \n"
201
201
  " bne $-16 \n" /* branch to ldarx */
202
- " isync \n"
202
+ " lwsync \n"
203
203
  " mfcr %1 \n"
204
204
  : "=&r"(found), "=r"(condition_register), "+m"(ptr->value)
205
205
  : "r"(*expected), "r"(newval), "r"(&ptr->value)
@@ -224,11 +224,11 @@ pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
224
224
  add_ <= PG_INT16_MAX && add_ >= PG_INT16_MIN)
225
225
  __asm__ __volatile__(
226
226
  " sync \n"
227
- " ldarx %1,0,%4 \n"
227
+ " ldarx %1,0,%4,1 \n"
228
228
  " addi %0,%1,%3 \n"
229
229
  " stdcx. %0,0,%4 \n"
230
230
  " bne $-12 \n" /* branch to ldarx */
231
- " isync \n"
231
+ " lwsync \n"
232
232
  : "=&r"(_t), "=&b"(res), "+m"(ptr->value)
233
233
  : "i"(add_), "r"(&ptr->value)
234
234
  : "memory", "cc");
@@ -236,11 +236,11 @@ pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
236
236
  #endif
237
237
  __asm__ __volatile__(
238
238
  " sync \n"
239
- " ldarx %1,0,%4 \n"
239
+ " ldarx %1,0,%4,1 \n"
240
240
  " add %0,%1,%3 \n"
241
241
  " stdcx. %0,0,%4 \n"
242
242
  " bne $-12 \n" /* branch to ldarx */
243
- " isync \n"
243
+ " lwsync \n"
244
244
  : "=&r"(_t), "=&r"(res), "+m"(ptr->value)
245
245
  : "r"(add_), "r"(&ptr->value)
246
246
  : "memory", "cc");