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
@@ -2,7 +2,7 @@
2
2
  * Symbols referenced in this file:
3
3
  * - exprLocation
4
4
  * - leftmostLoc
5
- * - raw_expression_tree_walker
5
+ * - raw_expression_tree_walker_impl
6
6
  *--------------------------------------------------------------------
7
7
  */
8
8
 
@@ -11,7 +11,7 @@
11
11
  * nodeFuncs.c
12
12
  * Various general-purpose manipulations of Node trees
13
13
  *
14
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
15
15
  * Portions Copyright (c) 1994, Regents of the University of California
16
16
  *
17
17
  *
@@ -35,10 +35,12 @@
35
35
  static bool expression_returns_set_walker(Node *node, void *context);
36
36
  static int leftmostLoc(int loc1, int loc2);
37
37
  static bool fix_opfuncids_walker(Node *node, void *context);
38
- static bool planstate_walk_subplans(List *plans, bool (*walker) (),
38
+ static bool planstate_walk_subplans(List *plans,
39
+ planstate_tree_walker_callback walker,
39
40
  void *context);
40
41
  static bool planstate_walk_members(PlanState **planstates, int nplans,
41
- bool (*walker) (), void *context);
42
+ planstate_tree_walker_callback walker,
43
+ void *context);
42
44
 
43
45
 
44
46
  /*
@@ -372,6 +374,18 @@ exprLocation(const Node *expr)
372
374
  exprLocation((Node *) xexpr->args));
373
375
  }
374
376
  break;
377
+ case T_JsonFormat:
378
+ loc = ((const JsonFormat *) expr)->location;
379
+ break;
380
+ case T_JsonValueExpr:
381
+ loc = exprLocation((Node *) ((const JsonValueExpr *) expr)->raw_expr);
382
+ break;
383
+ case T_JsonConstructorExpr:
384
+ loc = ((const JsonConstructorExpr *) expr)->location;
385
+ break;
386
+ case T_JsonIsPredicate:
387
+ loc = ((const JsonIsPredicate *) expr)->location;
388
+ break;
375
389
  case T_NullTest:
376
390
  {
377
391
  const NullTest *nexpr = (const NullTest *) expr;
@@ -523,9 +537,37 @@ exprLocation(const Node *expr)
523
537
  case T_OnConflictClause:
524
538
  loc = ((const OnConflictClause *) expr)->location;
525
539
  break;
540
+ case T_CTESearchClause:
541
+ loc = ((const CTESearchClause *) expr)->location;
542
+ break;
543
+ case T_CTECycleClause:
544
+ loc = ((const CTECycleClause *) expr)->location;
545
+ break;
526
546
  case T_CommonTableExpr:
527
547
  loc = ((const CommonTableExpr *) expr)->location;
528
548
  break;
549
+ case T_JsonKeyValue:
550
+ /* just use the key's location */
551
+ loc = exprLocation((Node *) ((const JsonKeyValue *) expr)->key);
552
+ break;
553
+ case T_JsonObjectConstructor:
554
+ loc = ((const JsonObjectConstructor *) expr)->location;
555
+ break;
556
+ case T_JsonArrayConstructor:
557
+ loc = ((const JsonArrayConstructor *) expr)->location;
558
+ break;
559
+ case T_JsonArrayQueryConstructor:
560
+ loc = ((const JsonArrayQueryConstructor *) expr)->location;
561
+ break;
562
+ case T_JsonAggConstructor:
563
+ loc = ((const JsonAggConstructor *) expr)->location;
564
+ break;
565
+ case T_JsonObjectAgg:
566
+ loc = exprLocation((Node *) ((const JsonObjectAgg *) expr)->constructor);
567
+ break;
568
+ case T_JsonArrayAgg:
569
+ loc = exprLocation((Node *) ((const JsonArrayAgg *) expr)->constructor);
570
+ break;
529
571
  case T_PlaceHolderVar:
530
572
  /* just use argument's location */
531
573
  loc = exprLocation((Node *) ((const PlaceHolderVar *) expr)->phexpr);
@@ -715,7 +757,9 @@ leftmostLoc(int loc1, int loc2)
715
757
  * uses, but may need to be revisited in future.
716
758
  */
717
759
 
718
-
760
+ #define WALK(n) walker((Node *) (n), context)
761
+ #define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
762
+ #undef LIST_WALK
719
763
 
720
764
  /*
721
765
  * query_tree_walker --- initiate a walk of a Query's expressions
@@ -812,10 +856,6 @@ leftmostLoc(int loc1, int loc2)
812
856
  #define FLATCOPY(newnode, node, nodetype) \
813
857
  ( (newnode) = (nodetype *) palloc(sizeof(nodetype)), \
814
858
  memcpy((newnode), (node), sizeof(nodetype)) )
815
- #define CHECKFLATCOPY(newnode, node, nodetype) \
816
- ( AssertMacro(IsA((node), nodetype)), \
817
- (newnode) = (nodetype *) palloc(sizeof(nodetype)), \
818
- memcpy((newnode), (node), sizeof(nodetype)) )
819
859
  #define MUTATE(newfield, oldfield, fieldtype) \
820
860
  ( (newfield) = (fieldtype) mutator((Node *) (oldfield), context) )
821
861
 
@@ -835,9 +875,9 @@ leftmostLoc(int loc1, int loc2)
835
875
  * which is the bitwise OR of flag values to suppress mutating of
836
876
  * indicated items. (More flag bits may be added as needed.)
837
877
  *
838
- * Normally the Query node itself is copied, but some callers want it to be
839
- * modified in-place; they must pass QTW_DONT_COPY_QUERY in flags. All
840
- * modified substructure is safely copied in any case.
878
+ * Normally the top-level Query node itself is copied, but some callers want
879
+ * it to be modified in-place; they must pass QTW_DONT_COPY_QUERY in flags.
880
+ * All modified substructure is safely copied in any case.
841
881
  */
842
882
 
843
883
 
@@ -880,14 +920,14 @@ leftmostLoc(int loc1, int loc2)
880
920
  * boundaries: we descend to everything that's possibly interesting.
881
921
  *
882
922
  * Currently, the node type coverage here extends only to DML statements
883
- * (SELECT/INSERT/UPDATE/DELETE) and nodes that can appear in them, because
884
- * this is used mainly during analysis of CTEs, and only DML statements can
885
- * appear in CTEs.
923
+ * (SELECT/INSERT/UPDATE/DELETE/MERGE) and nodes that can appear in them,
924
+ * because this is used mainly during analysis of CTEs, and only DML
925
+ * statements can appear in CTEs.
886
926
  */
887
927
  bool
888
- raw_expression_tree_walker(Node *node,
889
- bool (*walker) (),
890
- void *context)
928
+ raw_expression_tree_walker_impl(Node *node,
929
+ tree_walker_callback walker,
930
+ void *context)
891
931
  {
892
932
  ListCell *temp;
893
933
 
@@ -903,14 +943,15 @@ raw_expression_tree_walker(Node *node,
903
943
 
904
944
  switch (nodeTag(node))
905
945
  {
946
+ case T_JsonFormat:
906
947
  case T_SetToDefault:
907
948
  case T_CurrentOfExpr:
908
949
  case T_SQLValueFunction:
909
950
  case T_Integer:
910
951
  case T_Float:
952
+ case T_Boolean:
911
953
  case T_String:
912
954
  case T_BitString:
913
- case T_Null:
914
955
  case T_ParamRef:
915
956
  case T_A_Const:
916
957
  case T_A_Star:
@@ -920,17 +961,17 @@ raw_expression_tree_walker(Node *node,
920
961
  /* we assume the colnames list isn't interesting */
921
962
  break;
922
963
  case T_RangeVar:
923
- return walker(((RangeVar *) node)->alias, context);
964
+ return WALK(((RangeVar *) node)->alias);
924
965
  case T_GroupingFunc:
925
- return walker(((GroupingFunc *) node)->args, context);
966
+ return WALK(((GroupingFunc *) node)->args);
926
967
  case T_SubLink:
927
968
  {
928
969
  SubLink *sublink = (SubLink *) node;
929
970
 
930
- if (walker(sublink->testexpr, context))
971
+ if (WALK(sublink->testexpr))
931
972
  return true;
932
973
  /* we assume the operName is not interesting */
933
- if (walker(sublink->subselect, context))
974
+ if (WALK(sublink->subselect))
934
975
  return true;
935
976
  }
936
977
  break;
@@ -938,55 +979,85 @@ raw_expression_tree_walker(Node *node,
938
979
  {
939
980
  CaseExpr *caseexpr = (CaseExpr *) node;
940
981
 
941
- if (walker(caseexpr->arg, context))
982
+ if (WALK(caseexpr->arg))
942
983
  return true;
943
984
  /* we assume walker doesn't care about CaseWhens, either */
944
985
  foreach(temp, caseexpr->args)
945
986
  {
946
987
  CaseWhen *when = lfirst_node(CaseWhen, temp);
947
988
 
948
- if (walker(when->expr, context))
989
+ if (WALK(when->expr))
949
990
  return true;
950
- if (walker(when->result, context))
991
+ if (WALK(when->result))
951
992
  return true;
952
993
  }
953
- if (walker(caseexpr->defresult, context))
994
+ if (WALK(caseexpr->defresult))
954
995
  return true;
955
996
  }
956
997
  break;
957
998
  case T_RowExpr:
958
999
  /* Assume colnames isn't interesting */
959
- return walker(((RowExpr *) node)->args, context);
1000
+ return WALK(((RowExpr *) node)->args);
960
1001
  case T_CoalesceExpr:
961
- return walker(((CoalesceExpr *) node)->args, context);
1002
+ return WALK(((CoalesceExpr *) node)->args);
962
1003
  case T_MinMaxExpr:
963
- return walker(((MinMaxExpr *) node)->args, context);
1004
+ return WALK(((MinMaxExpr *) node)->args);
964
1005
  case T_XmlExpr:
965
1006
  {
966
1007
  XmlExpr *xexpr = (XmlExpr *) node;
967
1008
 
968
- if (walker(xexpr->named_args, context))
1009
+ if (WALK(xexpr->named_args))
969
1010
  return true;
970
1011
  /* we assume walker doesn't care about arg_names */
971
- if (walker(xexpr->args, context))
1012
+ if (WALK(xexpr->args))
1013
+ return true;
1014
+ }
1015
+ break;
1016
+ case T_JsonReturning:
1017
+ return WALK(((JsonReturning *) node)->format);
1018
+ case T_JsonValueExpr:
1019
+ {
1020
+ JsonValueExpr *jve = (JsonValueExpr *) node;
1021
+
1022
+ if (WALK(jve->raw_expr))
1023
+ return true;
1024
+ if (WALK(jve->formatted_expr))
1025
+ return true;
1026
+ if (WALK(jve->format))
1027
+ return true;
1028
+ }
1029
+ break;
1030
+ case T_JsonConstructorExpr:
1031
+ {
1032
+ JsonConstructorExpr *ctor = (JsonConstructorExpr *) node;
1033
+
1034
+ if (WALK(ctor->args))
1035
+ return true;
1036
+ if (WALK(ctor->func))
1037
+ return true;
1038
+ if (WALK(ctor->coercion))
1039
+ return true;
1040
+ if (WALK(ctor->returning))
972
1041
  return true;
973
1042
  }
974
1043
  break;
1044
+ case T_JsonIsPredicate:
1045
+ return WALK(((JsonIsPredicate *) node)->expr);
975
1046
  case T_NullTest:
976
- return walker(((NullTest *) node)->arg, context);
1047
+ return WALK(((NullTest *) node)->arg);
977
1048
  case T_BooleanTest:
978
- return walker(((BooleanTest *) node)->arg, context);
1049
+ return WALK(((BooleanTest *) node)->arg);
979
1050
  case T_JoinExpr:
980
1051
  {
981
1052
  JoinExpr *join = (JoinExpr *) node;
982
1053
 
983
- if (walker(join->larg, context))
1054
+ if (WALK(join->larg))
984
1055
  return true;
985
- if (walker(join->rarg, context))
1056
+ if (WALK(join->rarg))
986
1057
  return true;
987
- if (walker(join->quals, context))
1058
+ if (WALK(join->quals))
988
1059
  return true;
989
- if (walker(join->alias, context))
1060
+ if (WALK(join->alias))
990
1061
  return true;
991
1062
  /* using list is deemed uninteresting */
992
1063
  }
@@ -995,18 +1066,18 @@ raw_expression_tree_walker(Node *node,
995
1066
  {
996
1067
  IntoClause *into = (IntoClause *) node;
997
1068
 
998
- if (walker(into->rel, context))
1069
+ if (WALK(into->rel))
999
1070
  return true;
1000
1071
  /* colNames, options are deemed uninteresting */
1001
1072
  /* viewQuery should be null in raw parsetree, but check it */
1002
- if (walker(into->viewQuery, context))
1073
+ if (WALK(into->viewQuery))
1003
1074
  return true;
1004
1075
  }
1005
1076
  break;
1006
1077
  case T_List:
1007
1078
  foreach(temp, (List *) node)
1008
1079
  {
1009
- if (walker((Node *) lfirst(temp), context))
1080
+ if (WALK((Node *) lfirst(temp)))
1010
1081
  return true;
1011
1082
  }
1012
1083
  break;
@@ -1014,17 +1085,17 @@ raw_expression_tree_walker(Node *node,
1014
1085
  {
1015
1086
  InsertStmt *stmt = (InsertStmt *) node;
1016
1087
 
1017
- if (walker(stmt->relation, context))
1088
+ if (WALK(stmt->relation))
1018
1089
  return true;
1019
- if (walker(stmt->cols, context))
1090
+ if (WALK(stmt->cols))
1020
1091
  return true;
1021
- if (walker(stmt->selectStmt, context))
1092
+ if (WALK(stmt->selectStmt))
1022
1093
  return true;
1023
- if (walker(stmt->onConflictClause, context))
1094
+ if (WALK(stmt->onConflictClause))
1024
1095
  return true;
1025
- if (walker(stmt->returningList, context))
1096
+ if (WALK(stmt->returningList))
1026
1097
  return true;
1027
- if (walker(stmt->withClause, context))
1098
+ if (WALK(stmt->withClause))
1028
1099
  return true;
1029
1100
  }
1030
1101
  break;
@@ -1032,15 +1103,15 @@ raw_expression_tree_walker(Node *node,
1032
1103
  {
1033
1104
  DeleteStmt *stmt = (DeleteStmt *) node;
1034
1105
 
1035
- if (walker(stmt->relation, context))
1106
+ if (WALK(stmt->relation))
1036
1107
  return true;
1037
- if (walker(stmt->usingClause, context))
1108
+ if (WALK(stmt->usingClause))
1038
1109
  return true;
1039
- if (walker(stmt->whereClause, context))
1110
+ if (WALK(stmt->whereClause))
1040
1111
  return true;
1041
- if (walker(stmt->returningList, context))
1112
+ if (WALK(stmt->returningList))
1042
1113
  return true;
1043
- if (walker(stmt->withClause, context))
1114
+ if (WALK(stmt->withClause))
1044
1115
  return true;
1045
1116
  }
1046
1117
  break;
@@ -1048,17 +1119,45 @@ raw_expression_tree_walker(Node *node,
1048
1119
  {
1049
1120
  UpdateStmt *stmt = (UpdateStmt *) node;
1050
1121
 
1051
- if (walker(stmt->relation, context))
1122
+ if (WALK(stmt->relation))
1123
+ return true;
1124
+ if (WALK(stmt->targetList))
1125
+ return true;
1126
+ if (WALK(stmt->whereClause))
1127
+ return true;
1128
+ if (WALK(stmt->fromClause))
1129
+ return true;
1130
+ if (WALK(stmt->returningList))
1131
+ return true;
1132
+ if (WALK(stmt->withClause))
1133
+ return true;
1134
+ }
1135
+ break;
1136
+ case T_MergeStmt:
1137
+ {
1138
+ MergeStmt *stmt = (MergeStmt *) node;
1139
+
1140
+ if (WALK(stmt->relation))
1141
+ return true;
1142
+ if (WALK(stmt->sourceRelation))
1052
1143
  return true;
1053
- if (walker(stmt->targetList, context))
1144
+ if (WALK(stmt->joinCondition))
1054
1145
  return true;
1055
- if (walker(stmt->whereClause, context))
1146
+ if (WALK(stmt->mergeWhenClauses))
1056
1147
  return true;
1057
- if (walker(stmt->fromClause, context))
1148
+ if (WALK(stmt->withClause))
1149
+ return true;
1150
+ }
1151
+ break;
1152
+ case T_MergeWhenClause:
1153
+ {
1154
+ MergeWhenClause *mergeWhenClause = (MergeWhenClause *) node;
1155
+
1156
+ if (WALK(mergeWhenClause->condition))
1058
1157
  return true;
1059
- if (walker(stmt->returningList, context))
1158
+ if (WALK(mergeWhenClause->targetList))
1060
1159
  return true;
1061
- if (walker(stmt->withClause, context))
1160
+ if (WALK(mergeWhenClause->values))
1062
1161
  return true;
1063
1162
  }
1064
1163
  break;
@@ -1066,37 +1165,47 @@ raw_expression_tree_walker(Node *node,
1066
1165
  {
1067
1166
  SelectStmt *stmt = (SelectStmt *) node;
1068
1167
 
1069
- if (walker(stmt->distinctClause, context))
1168
+ if (WALK(stmt->distinctClause))
1070
1169
  return true;
1071
- if (walker(stmt->intoClause, context))
1170
+ if (WALK(stmt->intoClause))
1072
1171
  return true;
1073
- if (walker(stmt->targetList, context))
1172
+ if (WALK(stmt->targetList))
1074
1173
  return true;
1075
- if (walker(stmt->fromClause, context))
1174
+ if (WALK(stmt->fromClause))
1076
1175
  return true;
1077
- if (walker(stmt->whereClause, context))
1176
+ if (WALK(stmt->whereClause))
1078
1177
  return true;
1079
- if (walker(stmt->groupClause, context))
1178
+ if (WALK(stmt->groupClause))
1080
1179
  return true;
1081
- if (walker(stmt->havingClause, context))
1180
+ if (WALK(stmt->havingClause))
1082
1181
  return true;
1083
- if (walker(stmt->windowClause, context))
1182
+ if (WALK(stmt->windowClause))
1084
1183
  return true;
1085
- if (walker(stmt->valuesLists, context))
1184
+ if (WALK(stmt->valuesLists))
1086
1185
  return true;
1087
- if (walker(stmt->sortClause, context))
1186
+ if (WALK(stmt->sortClause))
1088
1187
  return true;
1089
- if (walker(stmt->limitOffset, context))
1188
+ if (WALK(stmt->limitOffset))
1090
1189
  return true;
1091
- if (walker(stmt->limitCount, context))
1190
+ if (WALK(stmt->limitCount))
1092
1191
  return true;
1093
- if (walker(stmt->lockingClause, context))
1192
+ if (WALK(stmt->lockingClause))
1094
1193
  return true;
1095
- if (walker(stmt->withClause, context))
1194
+ if (WALK(stmt->withClause))
1096
1195
  return true;
1097
- if (walker(stmt->larg, context))
1196
+ if (WALK(stmt->larg))
1197
+ return true;
1198
+ if (WALK(stmt->rarg))
1199
+ return true;
1200
+ }
1201
+ break;
1202
+ case T_PLAssignStmt:
1203
+ {
1204
+ PLAssignStmt *stmt = (PLAssignStmt *) node;
1205
+
1206
+ if (WALK(stmt->indirection))
1098
1207
  return true;
1099
- if (walker(stmt->rarg, context))
1208
+ if (WALK(stmt->val))
1100
1209
  return true;
1101
1210
  }
1102
1211
  break;
@@ -1104,9 +1213,9 @@ raw_expression_tree_walker(Node *node,
1104
1213
  {
1105
1214
  A_Expr *expr = (A_Expr *) node;
1106
1215
 
1107
- if (walker(expr->lexpr, context))
1216
+ if (WALK(expr->lexpr))
1108
1217
  return true;
1109
- if (walker(expr->rexpr, context))
1218
+ if (WALK(expr->rexpr))
1110
1219
  return true;
1111
1220
  /* operator name is deemed uninteresting */
1112
1221
  }
@@ -1115,7 +1224,7 @@ raw_expression_tree_walker(Node *node,
1115
1224
  {
1116
1225
  BoolExpr *expr = (BoolExpr *) node;
1117
1226
 
1118
- if (walker(expr->args, context))
1227
+ if (WALK(expr->args))
1119
1228
  return true;
1120
1229
  }
1121
1230
  break;
@@ -1126,26 +1235,26 @@ raw_expression_tree_walker(Node *node,
1126
1235
  {
1127
1236
  FuncCall *fcall = (FuncCall *) node;
1128
1237
 
1129
- if (walker(fcall->args, context))
1238
+ if (WALK(fcall->args))
1130
1239
  return true;
1131
- if (walker(fcall->agg_order, context))
1240
+ if (WALK(fcall->agg_order))
1132
1241
  return true;
1133
- if (walker(fcall->agg_filter, context))
1242
+ if (WALK(fcall->agg_filter))
1134
1243
  return true;
1135
- if (walker(fcall->over, context))
1244
+ if (WALK(fcall->over))
1136
1245
  return true;
1137
1246
  /* function name is deemed uninteresting */
1138
1247
  }
1139
1248
  break;
1140
1249
  case T_NamedArgExpr:
1141
- return walker(((NamedArgExpr *) node)->arg, context);
1250
+ return WALK(((NamedArgExpr *) node)->arg);
1142
1251
  case T_A_Indices:
1143
1252
  {
1144
1253
  A_Indices *indices = (A_Indices *) node;
1145
1254
 
1146
- if (walker(indices->lidx, context))
1255
+ if (WALK(indices->lidx))
1147
1256
  return true;
1148
- if (walker(indices->uidx, context))
1257
+ if (WALK(indices->uidx))
1149
1258
  return true;
1150
1259
  }
1151
1260
  break;
@@ -1153,51 +1262,51 @@ raw_expression_tree_walker(Node *node,
1153
1262
  {
1154
1263
  A_Indirection *indir = (A_Indirection *) node;
1155
1264
 
1156
- if (walker(indir->arg, context))
1265
+ if (WALK(indir->arg))
1157
1266
  return true;
1158
- if (walker(indir->indirection, context))
1267
+ if (WALK(indir->indirection))
1159
1268
  return true;
1160
1269
  }
1161
1270
  break;
1162
1271
  case T_A_ArrayExpr:
1163
- return walker(((A_ArrayExpr *) node)->elements, context);
1272
+ return WALK(((A_ArrayExpr *) node)->elements);
1164
1273
  case T_ResTarget:
1165
1274
  {
1166
1275
  ResTarget *rt = (ResTarget *) node;
1167
1276
 
1168
- if (walker(rt->indirection, context))
1277
+ if (WALK(rt->indirection))
1169
1278
  return true;
1170
- if (walker(rt->val, context))
1279
+ if (WALK(rt->val))
1171
1280
  return true;
1172
1281
  }
1173
1282
  break;
1174
1283
  case T_MultiAssignRef:
1175
- return walker(((MultiAssignRef *) node)->source, context);
1284
+ return WALK(((MultiAssignRef *) node)->source);
1176
1285
  case T_TypeCast:
1177
1286
  {
1178
1287
  TypeCast *tc = (TypeCast *) node;
1179
1288
 
1180
- if (walker(tc->arg, context))
1289
+ if (WALK(tc->arg))
1181
1290
  return true;
1182
- if (walker(tc->typeName, context))
1291
+ if (WALK(tc->typeName))
1183
1292
  return true;
1184
1293
  }
1185
1294
  break;
1186
1295
  case T_CollateClause:
1187
- return walker(((CollateClause *) node)->arg, context);
1296
+ return WALK(((CollateClause *) node)->arg);
1188
1297
  case T_SortBy:
1189
- return walker(((SortBy *) node)->node, context);
1298
+ return WALK(((SortBy *) node)->node);
1190
1299
  case T_WindowDef:
1191
1300
  {
1192
1301
  WindowDef *wd = (WindowDef *) node;
1193
1302
 
1194
- if (walker(wd->partitionClause, context))
1303
+ if (WALK(wd->partitionClause))
1195
1304
  return true;
1196
- if (walker(wd->orderClause, context))
1305
+ if (WALK(wd->orderClause))
1197
1306
  return true;
1198
- if (walker(wd->startOffset, context))
1307
+ if (WALK(wd->startOffset))
1199
1308
  return true;
1200
- if (walker(wd->endOffset, context))
1309
+ if (WALK(wd->endOffset))
1201
1310
  return true;
1202
1311
  }
1203
1312
  break;
@@ -1205,9 +1314,9 @@ raw_expression_tree_walker(Node *node,
1205
1314
  {
1206
1315
  RangeSubselect *rs = (RangeSubselect *) node;
1207
1316
 
1208
- if (walker(rs->subquery, context))
1317
+ if (WALK(rs->subquery))
1209
1318
  return true;
1210
- if (walker(rs->alias, context))
1319
+ if (WALK(rs->alias))
1211
1320
  return true;
1212
1321
  }
1213
1322
  break;
@@ -1215,11 +1324,11 @@ raw_expression_tree_walker(Node *node,
1215
1324
  {
1216
1325
  RangeFunction *rf = (RangeFunction *) node;
1217
1326
 
1218
- if (walker(rf->functions, context))
1327
+ if (WALK(rf->functions))
1219
1328
  return true;
1220
- if (walker(rf->alias, context))
1329
+ if (WALK(rf->alias))
1221
1330
  return true;
1222
- if (walker(rf->coldeflist, context))
1331
+ if (WALK(rf->coldeflist))
1223
1332
  return true;
1224
1333
  }
1225
1334
  break;
@@ -1227,12 +1336,12 @@ raw_expression_tree_walker(Node *node,
1227
1336
  {
1228
1337
  RangeTableSample *rts = (RangeTableSample *) node;
1229
1338
 
1230
- if (walker(rts->relation, context))
1339
+ if (WALK(rts->relation))
1231
1340
  return true;
1232
1341
  /* method name is deemed uninteresting */
1233
- if (walker(rts->args, context))
1342
+ if (WALK(rts->args))
1234
1343
  return true;
1235
- if (walker(rts->repeatable, context))
1344
+ if (WALK(rts->repeatable))
1236
1345
  return true;
1237
1346
  }
1238
1347
  break;
@@ -1240,15 +1349,15 @@ raw_expression_tree_walker(Node *node,
1240
1349
  {
1241
1350
  RangeTableFunc *rtf = (RangeTableFunc *) node;
1242
1351
 
1243
- if (walker(rtf->docexpr, context))
1352
+ if (WALK(rtf->docexpr))
1244
1353
  return true;
1245
- if (walker(rtf->rowexpr, context))
1354
+ if (WALK(rtf->rowexpr))
1246
1355
  return true;
1247
- if (walker(rtf->namespaces, context))
1356
+ if (WALK(rtf->namespaces))
1248
1357
  return true;
1249
- if (walker(rtf->columns, context))
1358
+ if (WALK(rtf->columns))
1250
1359
  return true;
1251
- if (walker(rtf->alias, context))
1360
+ if (WALK(rtf->alias))
1252
1361
  return true;
1253
1362
  }
1254
1363
  break;
@@ -1256,9 +1365,9 @@ raw_expression_tree_walker(Node *node,
1256
1365
  {
1257
1366
  RangeTableFuncCol *rtfc = (RangeTableFuncCol *) node;
1258
1367
 
1259
- if (walker(rtfc->colexpr, context))
1368
+ if (WALK(rtfc->colexpr))
1260
1369
  return true;
1261
- if (walker(rtfc->coldefexpr, context))
1370
+ if (WALK(rtfc->coldefexpr))
1262
1371
  return true;
1263
1372
  }
1264
1373
  break;
@@ -1266,9 +1375,9 @@ raw_expression_tree_walker(Node *node,
1266
1375
  {
1267
1376
  TypeName *tn = (TypeName *) node;
1268
1377
 
1269
- if (walker(tn->typmods, context))
1378
+ if (WALK(tn->typmods))
1270
1379
  return true;
1271
- if (walker(tn->arrayBounds, context))
1380
+ if (WALK(tn->arrayBounds))
1272
1381
  return true;
1273
1382
  /* type name itself is deemed uninteresting */
1274
1383
  }
@@ -1277,11 +1386,11 @@ raw_expression_tree_walker(Node *node,
1277
1386
  {
1278
1387
  ColumnDef *coldef = (ColumnDef *) node;
1279
1388
 
1280
- if (walker(coldef->typeName, context))
1389
+ if (WALK(coldef->typeName))
1281
1390
  return true;
1282
- if (walker(coldef->raw_default, context))
1391
+ if (WALK(coldef->raw_default))
1283
1392
  return true;
1284
- if (walker(coldef->collClause, context))
1393
+ if (WALK(coldef->collClause))
1285
1394
  return true;
1286
1395
  /* for now, constraints are ignored */
1287
1396
  }
@@ -1290,34 +1399,34 @@ raw_expression_tree_walker(Node *node,
1290
1399
  {
1291
1400
  IndexElem *indelem = (IndexElem *) node;
1292
1401
 
1293
- if (walker(indelem->expr, context))
1402
+ if (WALK(indelem->expr))
1294
1403
  return true;
1295
1404
  /* collation and opclass names are deemed uninteresting */
1296
1405
  }
1297
1406
  break;
1298
1407
  case T_GroupingSet:
1299
- return walker(((GroupingSet *) node)->content, context);
1408
+ return WALK(((GroupingSet *) node)->content);
1300
1409
  case T_LockingClause:
1301
- return walker(((LockingClause *) node)->lockedRels, context);
1410
+ return WALK(((LockingClause *) node)->lockedRels);
1302
1411
  case T_XmlSerialize:
1303
1412
  {
1304
1413
  XmlSerialize *xs = (XmlSerialize *) node;
1305
1414
 
1306
- if (walker(xs->expr, context))
1415
+ if (WALK(xs->expr))
1307
1416
  return true;
1308
- if (walker(xs->typeName, context))
1417
+ if (WALK(xs->typeName))
1309
1418
  return true;
1310
1419
  }
1311
1420
  break;
1312
1421
  case T_WithClause:
1313
- return walker(((WithClause *) node)->ctes, context);
1422
+ return WALK(((WithClause *) node)->ctes);
1314
1423
  case T_InferClause:
1315
1424
  {
1316
1425
  InferClause *stmt = (InferClause *) node;
1317
1426
 
1318
- if (walker(stmt->indexElems, context))
1427
+ if (WALK(stmt->indexElems))
1319
1428
  return true;
1320
- if (walker(stmt->whereClause, context))
1429
+ if (WALK(stmt->whereClause))
1321
1430
  return true;
1322
1431
  }
1323
1432
  break;
@@ -1325,16 +1434,101 @@ raw_expression_tree_walker(Node *node,
1325
1434
  {
1326
1435
  OnConflictClause *stmt = (OnConflictClause *) node;
1327
1436
 
1328
- if (walker(stmt->infer, context))
1437
+ if (WALK(stmt->infer))
1329
1438
  return true;
1330
- if (walker(stmt->targetList, context))
1439
+ if (WALK(stmt->targetList))
1331
1440
  return true;
1332
- if (walker(stmt->whereClause, context))
1441
+ if (WALK(stmt->whereClause))
1333
1442
  return true;
1334
1443
  }
1335
1444
  break;
1336
1445
  case T_CommonTableExpr:
1337
- return walker(((CommonTableExpr *) node)->ctequery, context);
1446
+ /* search_clause and cycle_clause are not interesting here */
1447
+ return WALK(((CommonTableExpr *) node)->ctequery);
1448
+ case T_JsonOutput:
1449
+ {
1450
+ JsonOutput *out = (JsonOutput *) node;
1451
+
1452
+ if (WALK(out->typeName))
1453
+ return true;
1454
+ if (WALK(out->returning))
1455
+ return true;
1456
+ }
1457
+ break;
1458
+ case T_JsonKeyValue:
1459
+ {
1460
+ JsonKeyValue *jkv = (JsonKeyValue *) node;
1461
+
1462
+ if (WALK(jkv->key))
1463
+ return true;
1464
+ if (WALK(jkv->value))
1465
+ return true;
1466
+ }
1467
+ break;
1468
+ case T_JsonObjectConstructor:
1469
+ {
1470
+ JsonObjectConstructor *joc = (JsonObjectConstructor *) node;
1471
+
1472
+ if (WALK(joc->output))
1473
+ return true;
1474
+ if (WALK(joc->exprs))
1475
+ return true;
1476
+ }
1477
+ break;
1478
+ case T_JsonArrayConstructor:
1479
+ {
1480
+ JsonArrayConstructor *jac = (JsonArrayConstructor *) node;
1481
+
1482
+ if (WALK(jac->output))
1483
+ return true;
1484
+ if (WALK(jac->exprs))
1485
+ return true;
1486
+ }
1487
+ break;
1488
+ case T_JsonAggConstructor:
1489
+ {
1490
+ JsonAggConstructor *ctor = (JsonAggConstructor *) node;
1491
+
1492
+ if (WALK(ctor->output))
1493
+ return true;
1494
+ if (WALK(ctor->agg_order))
1495
+ return true;
1496
+ if (WALK(ctor->agg_filter))
1497
+ return true;
1498
+ if (WALK(ctor->over))
1499
+ return true;
1500
+ }
1501
+ break;
1502
+ case T_JsonObjectAgg:
1503
+ {
1504
+ JsonObjectAgg *joa = (JsonObjectAgg *) node;
1505
+
1506
+ if (WALK(joa->constructor))
1507
+ return true;
1508
+ if (WALK(joa->arg))
1509
+ return true;
1510
+ }
1511
+ break;
1512
+ case T_JsonArrayAgg:
1513
+ {
1514
+ JsonArrayAgg *jaa = (JsonArrayAgg *) node;
1515
+
1516
+ if (WALK(jaa->constructor))
1517
+ return true;
1518
+ if (WALK(jaa->arg))
1519
+ return true;
1520
+ }
1521
+ break;
1522
+ case T_JsonArrayQueryConstructor:
1523
+ {
1524
+ JsonArrayQueryConstructor *jaqc = (JsonArrayQueryConstructor *) node;
1525
+
1526
+ if (WALK(jaqc->output))
1527
+ return true;
1528
+ if (WALK(jaqc->query))
1529
+ return true;
1530
+ }
1531
+ break;
1338
1532
  default:
1339
1533
  elog(ERROR, "unrecognized node type: %d",
1340
1534
  (int) nodeTag(node));
@@ -1349,7 +1543,7 @@ raw_expression_tree_walker(Node *node,
1349
1543
  * The walker has already visited the current node, and so we need only
1350
1544
  * recurse into any sub-nodes it has.
1351
1545
  */
1352
-
1546
+ #define PSWALK(n) walker(n, context)
1353
1547
 
1354
1548
  /*
1355
1549
  * Walk a list of SubPlans (or initPlans, which also use SubPlan nodes).