pg_query 2.0.3 → 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 (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -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 +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  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 +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  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 +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -3,7 +3,7 @@
3
3
  * plpgsql.h - Definitions for the PL/pgSQL
4
4
  * procedural language
5
5
  *
6
- * Portions Copyright (c) 1996-2020, 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
  *
@@ -64,7 +64,6 @@ typedef enum PLpgSQL_datum_type
64
64
  PLPGSQL_DTYPE_ROW,
65
65
  PLPGSQL_DTYPE_REC,
66
66
  PLPGSQL_DTYPE_RECFIELD,
67
- PLPGSQL_DTYPE_ARRAYELEM,
68
67
  PLPGSQL_DTYPE_PROMISE
69
68
  } PLpgSQL_datum_type;
70
69
 
@@ -128,8 +127,7 @@ typedef enum PLpgSQL_stmt_type
128
127
  PLPGSQL_STMT_PERFORM,
129
128
  PLPGSQL_STMT_CALL,
130
129
  PLPGSQL_STMT_COMMIT,
131
- PLPGSQL_STMT_ROLLBACK,
132
- PLPGSQL_STMT_SET
130
+ PLPGSQL_STMT_ROLLBACK
133
131
  } PLpgSQL_stmt_type;
134
132
 
135
133
  /*
@@ -149,6 +147,7 @@ enum
149
147
  typedef enum PLpgSQL_getdiag_kind
150
148
  {
151
149
  PLPGSQL_GETDIAG_ROW_COUNT,
150
+ PLPGSQL_GETDIAG_ROUTINE_OID,
152
151
  PLPGSQL_GETDIAG_CONTEXT,
153
152
  PLPGSQL_GETDIAG_ERROR_CONTEXT,
154
153
  PLPGSQL_GETDIAG_ERROR_DETAIL,
@@ -218,10 +217,10 @@ typedef struct PLpgSQL_type
218
217
  */
219
218
  typedef struct PLpgSQL_expr
220
219
  {
221
- char *query;
222
- SPIPlanPtr plan;
220
+ char *query; /* query string, verbatim from function body */
221
+ RawParseMode parseMode; /* raw_parser() mode to use */
222
+ SPIPlanPtr plan; /* plan, or NULL if not made yet */
223
223
  Bitmapset *paramnos; /* all dnos referenced by this query */
224
- int rwparam; /* dno of read/write param, or -1 if none */
225
224
 
226
225
  /* function containing this expr (not set until we first parse query) */
227
226
  struct PLpgSQL_function *func;
@@ -235,6 +234,17 @@ typedef struct PLpgSQL_expr
235
234
  int32 expr_simple_typmod; /* result typmod, if simple */
236
235
  bool expr_simple_mutable; /* true if simple expr is mutable */
237
236
 
237
+ /*
238
+ * These fields are used to optimize assignments to expanded-datum
239
+ * variables. If this expression is the source of an assignment to a
240
+ * simple variable, target_param holds that variable's dno; else it's -1.
241
+ * If we match a Param within expr_simple_expr to such a variable, that
242
+ * Param's address is stored in expr_rw_param; then expression code
243
+ * generation will allow the value for that Param to be passed read/write.
244
+ */
245
+ int target_param; /* dno of assign target, or -1 if none */
246
+ Param *expr_rw_param; /* read/write Param within expr, if any */
247
+
238
248
  /*
239
249
  * If the expression was ever determined to be simple, we remember its
240
250
  * CachedPlanSource and CachedPlan here. If expr_simple_plan_lxid matches
@@ -260,7 +270,7 @@ typedef struct PLpgSQL_expr
260
270
  * Generic datum array item
261
271
  *
262
272
  * PLpgSQL_datum is the common supertype for PLpgSQL_var, PLpgSQL_row,
263
- * PLpgSQL_rec, PLpgSQL_recfield, and PLpgSQL_arrayelem.
273
+ * PLpgSQL_rec, and PLpgSQL_recfield.
264
274
  */
265
275
  typedef struct PLpgSQL_datum
266
276
  {
@@ -421,30 +431,6 @@ typedef struct PLpgSQL_recfield
421
431
  /* if rectupledescid == INVALID_TUPLEDESC_IDENTIFIER, finfo isn't valid */
422
432
  } PLpgSQL_recfield;
423
433
 
424
- /*
425
- * Element of array variable
426
- */
427
- typedef struct PLpgSQL_arrayelem
428
- {
429
- PLpgSQL_datum_type dtype;
430
- int dno;
431
- /* end of PLpgSQL_datum fields */
432
-
433
- PLpgSQL_expr *subscript;
434
- int arrayparentno; /* dno of parent array variable */
435
-
436
- /* Remaining fields are cached info about the array variable's type */
437
- Oid parenttypoid; /* type of array variable; 0 if not yet set */
438
- int32 parenttypmod; /* typmod of array variable */
439
- Oid arraytypoid; /* OID of actual array type */
440
- int32 arraytypmod; /* typmod of array (and its elements too) */
441
- int16 arraytyplen; /* typlen of array type */
442
- Oid elemtypoid; /* OID of array element type */
443
- int16 elemtyplen; /* typlen of element type */
444
- bool elemtypbyval; /* element type is pass-by-value? */
445
- char elemtypalign; /* typalign of element type */
446
- } PLpgSQL_arrayelem;
447
-
448
434
  /*
449
435
  * Item in the compilers namespace tree
450
436
  */
@@ -580,17 +566,6 @@ typedef struct PLpgSQL_stmt_rollback
580
566
  bool chain;
581
567
  } PLpgSQL_stmt_rollback;
582
568
 
583
- /*
584
- * SET statement
585
- */
586
- typedef struct PLpgSQL_stmt_set
587
- {
588
- PLpgSQL_stmt_type cmd_type;
589
- int lineno;
590
- unsigned int stmtid;
591
- PLpgSQL_expr *expr;
592
- } PLpgSQL_stmt_set;
593
-
594
569
  /*
595
570
  * GET DIAGNOSTICS item
596
571
  */
@@ -919,8 +894,8 @@ typedef struct PLpgSQL_stmt_execsql
919
894
  int lineno;
920
895
  unsigned int stmtid;
921
896
  PLpgSQL_expr *sqlstmt;
922
- bool mod_stmt; /* is the stmt INSERT/UPDATE/DELETE? Note:
923
- * mod_stmt is set when we plan the query */
897
+ bool mod_stmt; /* is the stmt INSERT/UPDATE/DELETE/MERGE? */
898
+ bool mod_stmt_set; /* is mod_stmt valid yet? */
924
899
  bool into; /* INTO supplied? */
925
900
  bool strict; /* INTO STRICT flag */
926
901
  PLpgSQL_variable *target; /* INTO target (record or row) */
@@ -1023,9 +998,6 @@ typedef struct PLpgSQL_function
1023
998
  int extra_warnings;
1024
999
  int extra_errors;
1025
1000
 
1026
- /* count of statements inside function */
1027
- unsigned int nstatements;
1028
-
1029
1001
  /* the datums representing the function's local variables */
1030
1002
  int ndatums;
1031
1003
  PLpgSQL_datum **datums;
@@ -1034,6 +1006,10 @@ typedef struct PLpgSQL_function
1034
1006
  /* function body parsetree */
1035
1007
  PLpgSQL_stmt_block *action;
1036
1008
 
1009
+ /* data derived while parsing body */
1010
+ unsigned int nstatements; /* counter for assigning stmtids */
1011
+ bool requires_procedure_resowner; /* contains CALL or DO? */
1012
+
1037
1013
  /* these fields change when the function is used */
1038
1014
  struct PLpgSQL_execstate *cur_estate;
1039
1015
  unsigned long use_count;
@@ -1095,9 +1071,11 @@ typedef struct PLpgSQL_execstate
1095
1071
  EState *simple_eval_estate;
1096
1072
  ResourceOwner simple_eval_resowner;
1097
1073
 
1074
+ /* if running nonatomic procedure or DO block, resowner to use for CALL */
1075
+ ResourceOwner procedure_resowner;
1076
+
1098
1077
  /* lookup table to use for executing type casts */
1099
1078
  HTAB *cast_hash;
1100
- MemoryContext cast_hash_context;
1101
1079
 
1102
1080
  /* memory context for statement-lifespan temporary values */
1103
1081
  MemoryContext stmt_mcontext; /* current stmt context, or NULL if none */
@@ -1110,6 +1088,7 @@ typedef struct PLpgSQL_execstate
1110
1088
 
1111
1089
  /* status information for error context reporting */
1112
1090
  PLpgSQL_stmt *err_stmt; /* current stmt */
1091
+ PLpgSQL_variable *err_var; /* current variable, if in a DECLARE section */
1113
1092
  const char *err_text; /* additional state info */
1114
1093
 
1115
1094
  void *plugin_info; /* reserved for use by optional plugin */
@@ -1121,8 +1100,6 @@ typedef struct PLpgSQL_execstate
1121
1100
  * variable "PLpgSQL_plugin" and set it to point to a PLpgSQL_plugin struct.
1122
1101
  * Typically the struct could just be static data in the plugin library.
1123
1102
  * We expect that a plugin would do this at library load time (_PG_init()).
1124
- * It must also be careful to set the rendezvous variable back to NULL
1125
- * if it is unloaded (_PG_fini()).
1126
1103
  *
1127
1104
  * This structure is basically a collection of function pointers --- at
1128
1105
  * various interesting points in pl_exec.c, we call these functions
@@ -1141,9 +1118,17 @@ typedef struct PLpgSQL_execstate
1141
1118
  * statement.
1142
1119
  *
1143
1120
  * Also, immediately before any call to func_setup, PL/pgSQL fills in the
1144
- * error_callback and assign_expr fields with pointers to its own
1145
- * plpgsql_exec_error_callback and exec_assign_expr functions. This is
1146
- * a somewhat ad-hoc expedient to simplify life for debugger plugins.
1121
+ * remaining fields with pointers to some of its own functions, allowing the
1122
+ * plugin to invoke those functions conveniently. The exposed functions are:
1123
+ * plpgsql_exec_error_callback
1124
+ * exec_assign_expr
1125
+ * exec_assign_value
1126
+ * exec_eval_datum
1127
+ * exec_cast_value
1128
+ * (plpgsql_exec_error_callback is not actually meant to be called by the
1129
+ * plugin, but rather to allow it to identify PL/pgSQL error context stack
1130
+ * frames. The others are useful for debugger-like plugins to examine and
1131
+ * set variables.)
1147
1132
  */
1148
1133
  typedef struct PLpgSQL_plugin
1149
1134
  {
@@ -1156,8 +1141,20 @@ typedef struct PLpgSQL_plugin
1156
1141
 
1157
1142
  /* Function pointers set by PL/pgSQL itself */
1158
1143
  void (*error_callback) (void *arg);
1159
- void (*assign_expr) (PLpgSQL_execstate *estate, PLpgSQL_datum *target,
1144
+ void (*assign_expr) (PLpgSQL_execstate *estate,
1145
+ PLpgSQL_datum *target,
1160
1146
  PLpgSQL_expr *expr);
1147
+ void (*assign_value) (PLpgSQL_execstate *estate,
1148
+ PLpgSQL_datum *target,
1149
+ Datum value, bool isNull,
1150
+ Oid valtype, int32 valtypmod);
1151
+ void (*eval_datum) (PLpgSQL_execstate *estate, PLpgSQL_datum *datum,
1152
+ Oid *typeId, int32 *typetypmod,
1153
+ Datum *value, bool *isnull);
1154
+ Datum (*cast_value) (PLpgSQL_execstate *estate,
1155
+ Datum value, bool *isnull,
1156
+ Oid valtype, int32 valtypmod,
1157
+ Oid reqtype, int32 reqtypmod);
1161
1158
  } PLpgSQL_plugin;
1162
1159
 
1163
1160
  /*
@@ -1194,11 +1191,11 @@ typedef enum
1194
1191
  IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
1195
1192
  } IdentifierLookup;
1196
1193
 
1197
- extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1194
+ extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1198
1195
 
1199
- extern __thread int plpgsql_variable_conflict;
1196
+ extern __thread int plpgsql_variable_conflict;
1200
1197
 
1201
- extern __thread bool plpgsql_print_strict_params;
1198
+ extern __thread bool plpgsql_print_strict_params;
1202
1199
 
1203
1200
  extern bool plpgsql_check_asserts;
1204
1201
 
@@ -1212,18 +1209,18 @@ extern bool plpgsql_check_asserts;
1212
1209
  extern int plpgsql_extra_warnings;
1213
1210
  extern int plpgsql_extra_errors;
1214
1211
 
1215
- extern __thread bool plpgsql_check_syntax;
1216
- extern __thread bool plpgsql_DumpExecTree;
1212
+ extern __thread bool plpgsql_check_syntax;
1213
+ extern __thread bool plpgsql_DumpExecTree;
1217
1214
 
1218
- extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1215
+ extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1219
1216
 
1220
- extern __thread int plpgsql_nDatums;
1221
- extern __thread PLpgSQL_datum **plpgsql_Datums;
1217
+ extern __thread int plpgsql_nDatums;
1218
+ extern __thread PLpgSQL_datum **plpgsql_Datums;
1222
1219
 
1223
- extern __thread char *plpgsql_error_funcname;
1220
+ extern __thread char *plpgsql_error_funcname;
1224
1221
 
1225
- extern __thread PLpgSQL_function *plpgsql_curr_compile;
1226
- extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1222
+ extern __thread PLpgSQL_function *plpgsql_curr_compile;
1223
+ extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1227
1224
 
1228
1225
  extern PLpgSQL_plugin **plpgsql_plugin_ptr;
1229
1226
 
@@ -1234,11 +1231,11 @@ extern PLpgSQL_plugin **plpgsql_plugin_ptr;
1234
1231
  /*
1235
1232
  * Functions in pl_comp.c
1236
1233
  */
1237
- extern PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
1238
- bool forValidator);
1234
+ extern PGDLLEXPORT PLpgSQL_function *plpgsql_compile(FunctionCallInfo fcinfo,
1235
+ bool forValidator);
1239
1236
  extern PLpgSQL_function *plpgsql_compile_inline(char *proc_source);
1240
- extern void plpgsql_parser_setup(struct ParseState *pstate,
1241
- PLpgSQL_expr *expr);
1237
+ extern PGDLLEXPORT void plpgsql_parser_setup(struct ParseState *pstate,
1238
+ PLpgSQL_expr *expr);
1242
1239
  extern bool plpgsql_parse_word(char *word1, const char *yytxt, bool lookup,
1243
1240
  PLwdatum *wdatum, PLword *word);
1244
1241
  extern bool plpgsql_parse_dblword(char *word1, char *word2,
@@ -1249,9 +1246,9 @@ extern PLpgSQL_type *plpgsql_parse_wordtype(char *ident);
1249
1246
  extern PLpgSQL_type *plpgsql_parse_cwordtype(List *idents);
1250
1247
  extern PLpgSQL_type *plpgsql_parse_wordrowtype(char *ident);
1251
1248
  extern PLpgSQL_type *plpgsql_parse_cwordrowtype(List *idents);
1252
- extern PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
1253
- Oid collation,
1254
- TypeName *origtypname);
1249
+ extern PGDLLEXPORT PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
1250
+ Oid collation,
1251
+ TypeName *origtypname);
1255
1252
  extern PLpgSQL_variable *plpgsql_build_variable(const char *refname, int lineno,
1256
1253
  PLpgSQL_type *dtype,
1257
1254
  bool add2namespace);
@@ -1260,8 +1257,8 @@ extern PLpgSQL_rec *plpgsql_build_record(const char *refname, int lineno,
1260
1257
  bool add2namespace);
1261
1258
  extern PLpgSQL_recfield *plpgsql_build_recfield(PLpgSQL_rec *rec,
1262
1259
  const char *fldname);
1263
- extern int plpgsql_recognize_err_condition(const char *condname,
1264
- bool allow_sqlstate);
1260
+ extern PGDLLEXPORT int plpgsql_recognize_err_condition(const char *condname,
1261
+ bool allow_sqlstate);
1265
1262
  extern PLpgSQL_condition *plpgsql_parse_err_condition(char *condname);
1266
1263
  extern void plpgsql_start_datums(void);
1267
1264
  extern void plpgsql_finish_datums(PLpgSQL_function *function);
@@ -1269,11 +1266,6 @@ extern void plpgsql_adddatum(PLpgSQL_datum *newdatum);
1269
1266
  extern int plpgsql_add_initdatums(int **varnos);
1270
1267
  extern void plpgsql_HashTableInit(void);
1271
1268
 
1272
- /*
1273
- * Functions in pl_handler.c
1274
- */
1275
- extern void _PG_init(void);
1276
-
1277
1269
  /*
1278
1270
  * Functions in pl_exec.c
1279
1271
  */
@@ -1281,6 +1273,7 @@ extern Datum plpgsql_exec_function(PLpgSQL_function *func,
1281
1273
  FunctionCallInfo fcinfo,
1282
1274
  EState *simple_eval_estate,
1283
1275
  ResourceOwner simple_eval_resowner,
1276
+ ResourceOwner procedure_resowner,
1284
1277
  bool atomic);
1285
1278
  extern HeapTuple plpgsql_exec_trigger(PLpgSQL_function *func,
1286
1279
  TriggerData *trigdata);
@@ -1289,8 +1282,8 @@ extern void plpgsql_exec_event_trigger(PLpgSQL_function *func,
1289
1282
  extern void plpgsql_xact_cb(XactEvent event, void *arg);
1290
1283
  extern void plpgsql_subxact_cb(SubXactEvent event, SubTransactionId mySubid,
1291
1284
  SubTransactionId parentSubid, void *arg);
1292
- extern Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate,
1293
- PLpgSQL_datum *datum);
1285
+ extern PGDLLEXPORT Oid plpgsql_exec_get_datum_type(PLpgSQL_execstate *estate,
1286
+ PLpgSQL_datum *datum);
1294
1287
  extern void plpgsql_exec_get_datum_type_info(PLpgSQL_execstate *estate,
1295
1288
  PLpgSQL_datum *datum,
1296
1289
  Oid *typeId, int32 *typMod,
@@ -1305,9 +1298,9 @@ extern void plpgsql_ns_push(const char *label,
1305
1298
  extern void plpgsql_ns_pop(void);
1306
1299
  extern PLpgSQL_nsitem *plpgsql_ns_top(void);
1307
1300
  extern void plpgsql_ns_additem(PLpgSQL_nsitem_type itemtype, int itemno, const char *name);
1308
- extern PLpgSQL_nsitem *plpgsql_ns_lookup(PLpgSQL_nsitem *ns_cur, bool localmode,
1309
- const char *name1, const char *name2,
1310
- 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);
1311
1304
  extern PLpgSQL_nsitem *plpgsql_ns_lookup_label(PLpgSQL_nsitem *ns_cur,
1312
1305
  const char *name);
1313
1306
  extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
@@ -1315,7 +1308,7 @@ extern PLpgSQL_nsitem *plpgsql_ns_find_nearest_loop(PLpgSQL_nsitem *ns_cur);
1315
1308
  /*
1316
1309
  * Other functions in pl_funcs.c
1317
1310
  */
1318
- extern const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
1311
+ extern PGDLLEXPORT const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt);
1319
1312
  extern const char *plpgsql_getdiag_kindname(PLpgSQL_getdiag_kind kind);
1320
1313
  extern void plpgsql_free_function_memory(PLpgSQL_function *func);
1321
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-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
7
7
  *
8
8
  * NOTES:
9
9
  *
@@ -21,6 +21,12 @@
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
- #endif /* __aarch64__ || __aarch64 */
26
+ #else
27
+ /*
28
+ * Architecture Reference Manual for ARMv8 states aligned read/write to/from
29
+ * general purpose register is atomic.
30
+ */
31
+ #define PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY
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-2020, 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");
@@ -7,7 +7,7 @@
7
7
  * support for xadd and cmpxchg. Given that the 386 isn't supported anywhere
8
8
  * anymore that's not much of a restriction luckily.
9
9
  *
10
- * Portions Copyright (c) 1996-2020, 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
  * NOTES:
@@ -140,7 +140,7 @@ pg_spin_delay_impl(void)
140
140
  static inline bool
141
141
  pg_atomic_test_set_flag_impl(volatile pg_atomic_flag *ptr)
142
142
  {
143
- register char _res = 1;
143
+ char _res = 1;
144
144
 
145
145
  __asm__ __volatile__(
146
146
  " lock \n"
@@ -4,7 +4,7 @@
4
4
  * Fallback for platforms without spinlock and/or atomics support. Slower
5
5
  * than native atomics support, but not unusably slow.
6
6
  *
7
- * Portions Copyright (c) 1996-2020, 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/port/atomics/fallback.h
@@ -93,7 +93,7 @@ typedef struct pg_atomic_flag
93
93
  typedef struct pg_atomic_uint32
94
94
  {
95
95
  /* Check pg_atomic_flag's definition above for an explanation */
96
- #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC, GCC and HP compilers */
96
+ #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC */
97
97
  int sema[4];
98
98
  #else
99
99
  int sema;
@@ -111,7 +111,7 @@ typedef struct pg_atomic_uint32
111
111
  typedef struct pg_atomic_uint64
112
112
  {
113
113
  /* Check pg_atomic_flag's definition above for an explanation */
114
- #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC, GCC and HP compilers */
114
+ #if defined(__hppa) || defined(__hppa__) /* HP PA-RISC */
115
115
  int sema[4];
116
116
  #else
117
117
  int sema;
@@ -3,16 +3,16 @@
3
3
  * generic-gcc.h
4
4
  * Atomic operations, implemented using gcc (or compatible) intrinsics.
5
5
  *
6
- * Portions Copyright (c) 1996-2020, 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:
10
10
  *
11
11
  * Documentation:
12
12
  * * Legacy __sync Built-in Functions for Atomic Memory Access
13
- * http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/_005f_005fsync-Builtins.html
13
+ * https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/_005f_005fsync-Builtins.html
14
14
  * * Built-in functions for memory model aware atomic operations
15
- * http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/_005f_005fatomic-Builtins.html
15
+ * https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/_005f_005fatomic-Builtins.html
16
16
  *
17
17
  * src/include/port/atomics/generic-gcc.h
18
18
  *