pg_query 4.2.1 → 6.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 (901) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +7 -9
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +33 -9
  11. data/ext/pg_query/include/pg_query.h +28 -3
  12. data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
  19. data/ext/pg_query/include/postgres/access/amapi.h +303 -0
  20. data/ext/pg_query/include/postgres/access/attmap.h +54 -0
  21. data/ext/pg_query/include/postgres/access/attnum.h +64 -0
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +62 -0
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
  26. data/ext/pg_query/include/postgres/access/detoast.h +82 -0
  27. data/ext/pg_query/include/postgres/access/genam.h +246 -0
  28. data/ext/pg_query/include/postgres/access/gin.h +91 -0
  29. data/ext/pg_query/include/postgres/access/htup.h +89 -0
  30. data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
  31. data/ext/pg_query/include/postgres/access/itup.h +170 -0
  32. data/ext/pg_query/include/postgres/access/parallel.h +81 -0
  33. data/ext/pg_query/include/postgres/access/printtup.h +35 -0
  34. data/ext/pg_query/include/postgres/access/relation.h +28 -0
  35. data/ext/pg_query/include/postgres/access/relscan.h +191 -0
  36. data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
  37. data/ext/pg_query/include/postgres/access/sdir.h +67 -0
  38. data/ext/pg_query/include/postgres/access/skey.h +151 -0
  39. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  40. data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
  41. data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
  42. data/ext/pg_query/include/postgres/access/table.h +28 -0
  43. data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
  44. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  45. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  46. data/ext/pg_query/include/postgres/access/transam.h +418 -0
  47. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  48. data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
  49. data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
  50. data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
  51. data/ext/pg_query/include/postgres/access/twophase.h +65 -0
  52. data/ext/pg_query/include/postgres/access/xact.h +530 -0
  53. data/ext/pg_query/include/postgres/access/xlog.h +310 -0
  54. data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
  55. data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
  56. data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
  57. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  58. data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
  59. data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
  60. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  61. data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
  62. data/ext/pg_query/include/postgres/c.h +1374 -0
  63. data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
  64. data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
  65. data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
  66. data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
  67. data/ext/pg_query/include/postgres/catalog/index.h +218 -0
  68. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  69. data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
  70. data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
  71. data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
  72. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
  74. data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
  75. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
  76. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
  78. data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
  79. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
  80. data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
  83. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
  84. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
  86. data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
  87. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
  89. data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
  90. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
  91. data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
  92. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
  93. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
  95. data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
  96. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
  97. data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
  98. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
  99. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
  101. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
  103. data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
  104. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
  105. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
  107. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
  109. data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
  110. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
  111. data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
  112. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
  113. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
  115. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
  119. data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
  120. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
  121. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
  131. data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
  132. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
  133. data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
  134. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  135. data/ext/pg_query/include/postgres/commands/async.h +49 -0
  136. data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
  137. data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
  138. data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
  139. data/ext/pg_query/include/postgres/commands/explain.h +145 -0
  140. data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
  141. data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
  142. data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
  143. data/ext/pg_query/include/postgres/commands/user.h +43 -0
  144. data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
  145. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  146. data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
  147. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  148. data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
  149. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  150. data/ext/pg_query/include/postgres/common/int.h +512 -0
  151. data/ext/pg_query/include/postgres/common/keywords.h +29 -0
  152. data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
  153. data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
  154. data/ext/pg_query/include/postgres/common/relpath.h +97 -0
  155. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  156. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  157. data/ext/pg_query/include/postgres/common/string.h +44 -0
  158. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
  159. data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
  160. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
  161. data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
  162. data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
  163. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
  164. data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
  165. data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
  166. data/ext/pg_query/include/postgres/executor/executor.h +681 -0
  167. data/ext/pg_query/include/postgres/executor/functions.h +56 -0
  168. data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
  169. data/ext/pg_query/include/postgres/executor/spi.h +207 -0
  170. data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
  171. data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
  172. data/ext/pg_query/include/postgres/fmgr.h +800 -0
  173. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  174. data/ext/pg_query/include/postgres/funcapi.h +360 -0
  175. data/ext/pg_query/include/postgres/gram.h +1168 -0
  176. data/ext/pg_query/include/postgres/gramparse.h +75 -0
  177. data/ext/pg_query/include/postgres/jit/jit.h +106 -0
  178. data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
  179. data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
  180. data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
  181. data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
  182. data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
  183. data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
  184. data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
  185. data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
  186. data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
  187. data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
  188. data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
  189. data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
  190. data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
  191. data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
  192. data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
  193. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  194. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  195. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  196. data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
  197. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
  198. data/ext/pg_query/include/postgres/miscadmin.h +527 -0
  199. data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
  200. data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
  201. data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
  202. data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
  203. data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
  204. data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
  205. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  206. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
  207. data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
  208. data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
  209. data/ext/pg_query/include/postgres/nodes/params.h +170 -0
  210. data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
  211. data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
  212. data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
  213. data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
  214. data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
  215. data/ext/pg_query/include/postgres/nodes/print.h +34 -0
  216. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  217. data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
  218. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  219. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
  220. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  221. data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
  222. data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
  223. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
  224. data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
  225. data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
  226. data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
  227. data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
  228. data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
  229. data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
  230. data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
  231. data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
  232. data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
  233. data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
  234. data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
  235. data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
  236. data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
  237. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  238. data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
  239. data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
  240. data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
  241. data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
  242. data/ext/pg_query/include/postgres/pg_config.h +985 -0
  243. data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
  244. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  245. data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
  246. data/ext/pg_query/include/postgres/pg_trace.h +17 -0
  247. data/ext/pg_query/include/postgres/pgstat.h +780 -0
  248. data/ext/pg_query/include/postgres/pgtime.h +94 -0
  249. data/ext/pg_query/include/postgres/pl_gram.h +385 -0
  250. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
  251. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
  252. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
  253. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
  254. data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
  255. data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
  256. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
  257. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  258. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
  259. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
  260. data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
  261. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
  262. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
  263. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
  264. data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
  265. data/ext/pg_query/include/postgres/port/atomics.h +606 -0
  266. data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
  267. data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
  268. data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
  269. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  270. data/ext/pg_query/include/postgres/port/simd.h +422 -0
  271. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  272. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  275. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  276. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  277. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  278. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  279. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  280. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
  281. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  282. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  283. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  284. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  285. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  286. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  287. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  288. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  289. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  290. data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
  291. data/ext/pg_query/include/postgres/port.h +555 -0
  292. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  293. data/ext/pg_query/include/postgres/postgres.h +579 -0
  294. data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
  295. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
  296. data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
  297. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
  298. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
  299. data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
  300. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  301. data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
  302. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  303. data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
  304. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  305. data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
  306. data/ext/pg_query/include/postgres/regex/regex.h +272 -0
  307. data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
  308. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  309. data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
  310. data/ext/pg_query/include/postgres/replication/origin.h +73 -0
  311. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
  312. data/ext/pg_query/include/postgres/replication/slot.h +289 -0
  313. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  314. data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
  315. data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
  316. data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
  317. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
  318. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
  319. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
  320. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
  321. data/ext/pg_query/include/postgres/storage/block.h +108 -0
  322. data/ext/pg_query/include/postgres/storage/buf.h +46 -0
  323. data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
  324. data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
  325. data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
  326. data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
  327. data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
  328. data/ext/pg_query/include/postgres/storage/fd.h +219 -0
  329. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  330. data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
  331. data/ext/pg_query/include/postgres/storage/item.h +19 -0
  332. data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
  333. data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
  334. data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
  335. data/ext/pg_query/include/postgres/storage/latch.h +196 -0
  336. data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
  337. data/ext/pg_query/include/postgres/storage/lock.h +624 -0
  338. data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
  339. data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
  340. data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
  341. data/ext/pg_query/include/postgres/storage/off.h +57 -0
  342. data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
  343. data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
  344. data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
  345. data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
  346. data/ext/pg_query/include/postgres/storage/proc.h +488 -0
  347. data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
  348. data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
  349. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  350. data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
  351. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  352. data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
  353. data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
  354. data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
  355. data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
  356. data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
  357. data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
  358. data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
  359. data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
  360. data/ext/pg_query/include/postgres/storage/spin.h +77 -0
  361. data/ext/pg_query/include/postgres/storage/standby.h +109 -0
  362. data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
  363. data/ext/pg_query/include/postgres/storage/sync.h +66 -0
  364. data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
  365. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
  366. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
  367. data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
  368. data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
  369. data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
  370. data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
  371. data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
  372. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
  373. data/ext/pg_query/include/postgres/utils/acl.h +290 -0
  374. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
  375. data/ext/pg_query/include/postgres/utils/array.h +481 -0
  376. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  377. data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
  378. data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
  379. data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
  380. data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
  381. data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
  382. data/ext/pg_query/include/postgres/utils/date.h +118 -0
  383. data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
  384. data/ext/pg_query/include/postgres/utils/datum.h +76 -0
  385. data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
  386. data/ext/pg_query/include/postgres/utils/elog.h +540 -0
  387. data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
  388. data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
  389. data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
  390. data/ext/pg_query/include/postgres/utils/float.h +357 -0
  391. data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
  392. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
  393. data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
  394. data/ext/pg_query/include/postgres/utils/guc.h +456 -0
  395. data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
  396. data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
  397. data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
  398. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  399. data/ext/pg_query/include/postgres/utils/inval.h +68 -0
  400. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  401. data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
  402. data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
  403. data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
  404. data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
  405. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
  406. data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
  407. data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
  408. data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
  409. data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
  410. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
  411. data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
  412. data/ext/pg_query/include/postgres/utils/portal.h +252 -0
  413. data/ext/pg_query/include/postgres/utils/probes.h +114 -0
  414. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  415. data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
  416. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  417. data/ext/pg_query/include/postgres/utils/rel.h +711 -0
  418. data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
  419. data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
  420. data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
  421. data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
  422. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
  423. data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
  424. data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
  425. data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
  426. data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
  427. data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
  428. data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
  429. data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
  430. data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
  431. data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
  432. data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
  433. data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
  434. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  435. data/ext/pg_query/include/postgres/utils/xml.h +94 -0
  436. data/ext/pg_query/include/postgres/varatt.h +358 -0
  437. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7723 -6368
  438. data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
  439. data/ext/pg_query/pg_query.c +10 -1
  440. data/ext/pg_query/pg_query.pb-c.c +22595 -17738
  441. data/ext/pg_query/pg_query_deparse.c +1 -10635
  442. data/ext/pg_query/pg_query_fingerprint.c +12 -8
  443. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  444. data/ext/pg_query/pg_query_internal.h +1 -1
  445. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  446. data/ext/pg_query/pg_query_normalize.c +43 -2
  447. data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
  448. data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
  449. data/ext/pg_query/pg_query_parse.c +47 -5
  450. data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
  451. data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
  452. data/ext/pg_query/pg_query_ruby.c +5 -0
  453. data/ext/pg_query/pg_query_scan.c +2 -2
  454. data/ext/pg_query/pg_query_split.c +3 -3
  455. data/ext/pg_query/postgres_deparse.c +11496 -0
  456. data/ext/pg_query/postgres_deparse.h +9 -0
  457. data/ext/pg_query/src_backend_catalog_namespace.c +243 -63
  458. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  459. data/ext/pg_query/src_backend_commands_define.c +2 -3
  460. data/ext/pg_query/src_backend_nodes_bitmapset.c +140 -156
  461. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  462. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  463. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  464. data/ext/pg_query/src_backend_nodes_list.c +16 -8
  465. data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
  466. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
  467. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  468. data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
  469. data/ext/pg_query/src_backend_parser_parser.c +34 -8
  470. data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
  471. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  472. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  473. data/ext/pg_query/src_backend_tcop_postgres.c +99 -96
  474. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  475. data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
  476. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  477. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  478. data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
  479. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
  480. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  481. data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
  482. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
  483. data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
  484. data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
  485. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
  486. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
  487. data/ext/pg_query/src_backend_utils_mmgr_aset.c +704 -497
  488. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  489. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
  490. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +637 -233
  491. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
  492. data/ext/pg_query/src_common_encnames.c +46 -44
  493. data/ext/pg_query/src_common_hashfn.c +1 -1
  494. data/ext/pg_query/src_common_keywords.c +1 -1
  495. data/ext/pg_query/src_common_kwlist_d.h +586 -517
  496. data/ext/pg_query/src_common_kwlookup.c +1 -1
  497. data/ext/pg_query/src_common_psprintf.c +3 -3
  498. data/ext/pg_query/src_common_stringinfo.c +21 -4
  499. data/ext/pg_query/src_common_wchar.c +100 -116
  500. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  501. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  502. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
  503. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  504. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  505. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  506. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  507. data/ext/pg_query/src_port_pg_bitutils.c +251 -32
  508. data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
  509. data/ext/pg_query/src_port_snprintf.c +20 -27
  510. data/ext/pg_query/src_port_strerror.c +1 -3
  511. data/ext/pg_query/src_port_strlcpy.c +79 -0
  512. data/lib/pg_query/fingerprint.rb +5 -8
  513. data/lib/pg_query/node.rb +16 -11
  514. data/lib/pg_query/param_refs.rb +2 -2
  515. data/lib/pg_query/parse.rb +6 -8
  516. data/lib/pg_query/parse_error.rb +1 -0
  517. data/lib/pg_query/pg_query_pb.rb +173 -3196
  518. data/lib/pg_query/scan.rb +1 -0
  519. data/lib/pg_query/treewalker.rb +52 -11
  520. data/lib/pg_query/truncate.rb +18 -20
  521. data/lib/pg_query/version.rb +1 -1
  522. metadata +443 -442
  523. data/ext/pg_query/guc-file.c +0 -0
  524. data/ext/pg_query/include/access/amapi.h +0 -290
  525. data/ext/pg_query/include/access/attmap.h +0 -52
  526. data/ext/pg_query/include/access/attnum.h +0 -64
  527. data/ext/pg_query/include/access/clog.h +0 -63
  528. data/ext/pg_query/include/access/commit_ts.h +0 -74
  529. data/ext/pg_query/include/access/detoast.h +0 -82
  530. data/ext/pg_query/include/access/genam.h +0 -231
  531. data/ext/pg_query/include/access/gin.h +0 -78
  532. data/ext/pg_query/include/access/htup.h +0 -89
  533. data/ext/pg_query/include/access/htup_details.h +0 -807
  534. data/ext/pg_query/include/access/itup.h +0 -167
  535. data/ext/pg_query/include/access/parallel.h +0 -82
  536. data/ext/pg_query/include/access/printtup.h +0 -35
  537. data/ext/pg_query/include/access/relation.h +0 -28
  538. data/ext/pg_query/include/access/relscan.h +0 -191
  539. data/ext/pg_query/include/access/rmgrlist.h +0 -49
  540. data/ext/pg_query/include/access/sdir.h +0 -58
  541. data/ext/pg_query/include/access/skey.h +0 -151
  542. data/ext/pg_query/include/access/stratnum.h +0 -85
  543. data/ext/pg_query/include/access/sysattr.h +0 -29
  544. data/ext/pg_query/include/access/table.h +0 -28
  545. data/ext/pg_query/include/access/tableam.h +0 -2077
  546. data/ext/pg_query/include/access/toast_compression.h +0 -73
  547. data/ext/pg_query/include/access/transam.h +0 -375
  548. data/ext/pg_query/include/access/tupconvert.h +0 -51
  549. data/ext/pg_query/include/access/tupdesc.h +0 -154
  550. data/ext/pg_query/include/access/tupmacs.h +0 -247
  551. data/ext/pg_query/include/access/twophase.h +0 -65
  552. data/ext/pg_query/include/access/xact.h +0 -523
  553. data/ext/pg_query/include/access/xlog.h +0 -303
  554. data/ext/pg_query/include/access/xlog_internal.h +0 -366
  555. data/ext/pg_query/include/access/xlogdefs.h +0 -101
  556. data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
  557. data/ext/pg_query/include/access/xlogreader.h +0 -443
  558. data/ext/pg_query/include/access/xlogrecord.h +0 -236
  559. data/ext/pg_query/include/access/xlogrecovery.h +0 -157
  560. data/ext/pg_query/include/c.h +0 -1391
  561. data/ext/pg_query/include/catalog/catalog.h +0 -44
  562. data/ext/pg_query/include/catalog/catversion.h +0 -58
  563. data/ext/pg_query/include/catalog/dependency.h +0 -269
  564. data/ext/pg_query/include/catalog/genbki.h +0 -142
  565. data/ext/pg_query/include/catalog/index.h +0 -214
  566. data/ext/pg_query/include/catalog/indexing.h +0 -54
  567. data/ext/pg_query/include/catalog/namespace.h +0 -190
  568. data/ext/pg_query/include/catalog/objectaccess.h +0 -265
  569. data/ext/pg_query/include/catalog/objectaddress.h +0 -89
  570. data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
  571. data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
  572. data/ext/pg_query/include/catalog/pg_am.h +0 -63
  573. data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
  574. data/ext/pg_query/include/catalog/pg_attribute.h +0 -221
  575. data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
  576. data/ext/pg_query/include/catalog/pg_authid.h +0 -63
  577. data/ext/pg_query/include/catalog/pg_authid_d.h +0 -57
  578. data/ext/pg_query/include/catalog/pg_class.h +0 -230
  579. data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
  580. data/ext/pg_query/include/catalog/pg_collation.h +0 -98
  581. data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
  582. data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
  583. data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
  584. data/ext/pg_query/include/catalog/pg_control.h +0 -250
  585. data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
  586. data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
  587. data/ext/pg_query/include/catalog/pg_depend.h +0 -77
  588. data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
  589. data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
  590. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
  591. data/ext/pg_query/include/catalog/pg_index.h +0 -90
  592. data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
  593. data/ext/pg_query/include/catalog/pg_language.h +0 -72
  594. data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
  595. data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
  596. data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
  597. data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
  598. data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
  599. data/ext/pg_query/include/catalog/pg_operator.h +0 -107
  600. data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
  601. data/ext/pg_query/include/catalog/pg_opfamily.h +0 -63
  602. data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
  603. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  604. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  605. data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
  606. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
  607. data/ext/pg_query/include/catalog/pg_proc.h +0 -220
  608. data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
  609. data/ext/pg_query/include/catalog/pg_publication.h +0 -161
  610. data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
  611. data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
  612. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
  613. data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
  614. data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
  615. data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
  616. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
  617. data/ext/pg_query/include/catalog/pg_transform.h +0 -48
  618. data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
  619. data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
  620. data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
  621. data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
  622. data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
  623. data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
  624. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
  625. data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
  626. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
  627. data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
  628. data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
  629. data/ext/pg_query/include/catalog/pg_type.h +0 -404
  630. data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
  631. data/ext/pg_query/include/catalog/storage.h +0 -50
  632. data/ext/pg_query/include/commands/async.h +0 -53
  633. data/ext/pg_query/include/commands/dbcommands.h +0 -36
  634. data/ext/pg_query/include/commands/defrem.h +0 -160
  635. data/ext/pg_query/include/commands/event_trigger.h +0 -88
  636. data/ext/pg_query/include/commands/explain.h +0 -127
  637. data/ext/pg_query/include/commands/prepare.h +0 -61
  638. data/ext/pg_query/include/commands/tablespace.h +0 -69
  639. data/ext/pg_query/include/commands/trigger.h +0 -287
  640. data/ext/pg_query/include/commands/user.h +0 -37
  641. data/ext/pg_query/include/commands/vacuum.h +0 -340
  642. data/ext/pg_query/include/commands/variable.h +0 -38
  643. data/ext/pg_query/include/common/file_perm.h +0 -56
  644. data/ext/pg_query/include/common/hashfn.h +0 -104
  645. data/ext/pg_query/include/common/ip.h +0 -31
  646. data/ext/pg_query/include/common/keywords.h +0 -29
  647. data/ext/pg_query/include/common/kwlookup.h +0 -44
  648. data/ext/pg_query/include/common/pg_prng.h +0 -60
  649. data/ext/pg_query/include/common/relpath.h +0 -90
  650. data/ext/pg_query/include/common/string.h +0 -42
  651. data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
  652. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
  653. data/ext/pg_query/include/datatype/timestamp.h +0 -236
  654. data/ext/pg_query/include/executor/execdesc.h +0 -70
  655. data/ext/pg_query/include/executor/executor.h +0 -663
  656. data/ext/pg_query/include/executor/functions.h +0 -55
  657. data/ext/pg_query/include/executor/instrument.h +0 -118
  658. data/ext/pg_query/include/executor/spi.h +0 -213
  659. data/ext/pg_query/include/executor/tablefunc.h +0 -67
  660. data/ext/pg_query/include/executor/tuptable.h +0 -487
  661. data/ext/pg_query/include/fmgr.h +0 -781
  662. data/ext/pg_query/include/funcapi.h +0 -360
  663. data/ext/pg_query/include/getaddrinfo.h +0 -162
  664. data/ext/pg_query/include/jit/jit.h +0 -105
  665. data/ext/pg_query/include/kwlist_d.h +0 -1095
  666. data/ext/pg_query/include/lib/dshash.h +0 -112
  667. data/ext/pg_query/include/lib/ilist.h +0 -746
  668. data/ext/pg_query/include/lib/pairingheap.h +0 -102
  669. data/ext/pg_query/include/lib/simplehash.h +0 -1184
  670. data/ext/pg_query/include/lib/sort_template.h +0 -432
  671. data/ext/pg_query/include/lib/stringinfo.h +0 -161
  672. data/ext/pg_query/include/libpq/auth.h +0 -31
  673. data/ext/pg_query/include/libpq/crypt.h +0 -47
  674. data/ext/pg_query/include/libpq/hba.h +0 -179
  675. data/ext/pg_query/include/libpq/libpq-be.h +0 -343
  676. data/ext/pg_query/include/libpq/libpq.h +0 -144
  677. data/ext/pg_query/include/libpq/pqcomm.h +0 -194
  678. data/ext/pg_query/include/libpq/pqformat.h +0 -210
  679. data/ext/pg_query/include/libpq/pqsignal.h +0 -42
  680. data/ext/pg_query/include/mb/pg_wchar.h +0 -755
  681. data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
  682. data/ext/pg_query/include/miscadmin.h +0 -495
  683. data/ext/pg_query/include/nodes/bitmapset.h +0 -122
  684. data/ext/pg_query/include/nodes/execnodes.h +0 -2715
  685. data/ext/pg_query/include/nodes/extensible.h +0 -162
  686. data/ext/pg_query/include/nodes/lockoptions.h +0 -61
  687. data/ext/pg_query/include/nodes/makefuncs.h +0 -109
  688. data/ext/pg_query/include/nodes/memnodes.h +0 -110
  689. data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
  690. data/ext/pg_query/include/nodes/nodes.h +0 -861
  691. data/ext/pg_query/include/nodes/params.h +0 -170
  692. data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
  693. data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
  694. data/ext/pg_query/include/nodes/pg_list.h +0 -612
  695. data/ext/pg_query/include/nodes/plannodes.h +0 -1349
  696. data/ext/pg_query/include/nodes/primnodes.h +0 -1593
  697. data/ext/pg_query/include/nodes/print.h +0 -34
  698. data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
  699. data/ext/pg_query/include/nodes/value.h +0 -80
  700. data/ext/pg_query/include/optimizer/cost.h +0 -213
  701. data/ext/pg_query/include/optimizer/geqo.h +0 -90
  702. data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
  703. data/ext/pg_query/include/optimizer/optimizer.h +0 -202
  704. data/ext/pg_query/include/optimizer/paths.h +0 -257
  705. data/ext/pg_query/include/optimizer/planmain.h +0 -120
  706. data/ext/pg_query/include/parser/analyze.h +0 -63
  707. data/ext/pg_query/include/parser/gram.h +0 -1101
  708. data/ext/pg_query/include/parser/gramparse.h +0 -75
  709. data/ext/pg_query/include/parser/kwlist.h +0 -487
  710. data/ext/pg_query/include/parser/parse_agg.h +0 -63
  711. data/ext/pg_query/include/parser/parse_coerce.h +0 -100
  712. data/ext/pg_query/include/parser/parse_expr.h +0 -25
  713. data/ext/pg_query/include/parser/parse_func.h +0 -74
  714. data/ext/pg_query/include/parser/parse_node.h +0 -339
  715. data/ext/pg_query/include/parser/parse_oper.h +0 -65
  716. data/ext/pg_query/include/parser/parse_relation.h +0 -124
  717. data/ext/pg_query/include/parser/parse_type.h +0 -60
  718. data/ext/pg_query/include/parser/parser.h +0 -68
  719. data/ext/pg_query/include/parser/parsetree.h +0 -61
  720. data/ext/pg_query/include/parser/scanner.h +0 -152
  721. data/ext/pg_query/include/parser/scansup.h +0 -27
  722. data/ext/pg_query/include/partitioning/partdefs.h +0 -26
  723. data/ext/pg_query/include/pg_config.h +0 -1037
  724. data/ext/pg_query/include/pg_config_manual.h +0 -410
  725. data/ext/pg_query/include/pg_config_os.h +0 -8
  726. data/ext/pg_query/include/pg_getopt.h +0 -56
  727. data/ext/pg_query/include/pg_trace.h +0 -17
  728. data/ext/pg_query/include/pgstat.h +0 -699
  729. data/ext/pg_query/include/pgtime.h +0 -94
  730. data/ext/pg_query/include/pl_gram.h +0 -383
  731. data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
  732. data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
  733. data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -111
  734. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
  735. data/ext/pg_query/include/plerrcodes.h +0 -998
  736. data/ext/pg_query/include/plpgsql.h +0 -1345
  737. data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
  738. data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
  739. data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
  740. data/ext/pg_query/include/port/atomics/fallback.h +0 -170
  741. data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
  742. data/ext/pg_query/include/port/atomics/generic.h +0 -401
  743. data/ext/pg_query/include/port/atomics.h +0 -524
  744. data/ext/pg_query/include/port/pg_bitutils.h +0 -302
  745. data/ext/pg_query/include/port/pg_bswap.h +0 -161
  746. data/ext/pg_query/include/port/pg_crc32c.h +0 -101
  747. data/ext/pg_query/include/port.h +0 -553
  748. data/ext/pg_query/include/portability/instr_time.h +0 -256
  749. data/ext/pg_query/include/postgres.h +0 -808
  750. data/ext/pg_query/include/postgres_ext.h +0 -74
  751. data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
  752. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  753. data/ext/pg_query/include/postmaster/bgworker.h +0 -162
  754. data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
  755. data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
  756. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  757. data/ext/pg_query/include/postmaster/interrupt.h +0 -32
  758. data/ext/pg_query/include/postmaster/pgarch.h +0 -73
  759. data/ext/pg_query/include/postmaster/postmaster.h +0 -78
  760. data/ext/pg_query/include/postmaster/startup.h +0 -39
  761. data/ext/pg_query/include/postmaster/syslogger.h +0 -103
  762. data/ext/pg_query/include/postmaster/walwriter.h +0 -21
  763. data/ext/pg_query/include/regex/regex.h +0 -186
  764. data/ext/pg_query/include/replication/logicallauncher.h +0 -29
  765. data/ext/pg_query/include/replication/logicalproto.h +0 -254
  766. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  767. data/ext/pg_query/include/replication/origin.h +0 -73
  768. data/ext/pg_query/include/replication/reorderbuffer.h +0 -685
  769. data/ext/pg_query/include/replication/slot.h +0 -230
  770. data/ext/pg_query/include/replication/syncrep.h +0 -115
  771. data/ext/pg_query/include/replication/walreceiver.h +0 -472
  772. data/ext/pg_query/include/replication/walsender.h +0 -74
  773. data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
  774. data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -38
  775. data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
  776. data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
  777. data/ext/pg_query/include/storage/backendid.h +0 -37
  778. data/ext/pg_query/include/storage/block.h +0 -115
  779. data/ext/pg_query/include/storage/buf.h +0 -46
  780. data/ext/pg_query/include/storage/bufmgr.h +0 -297
  781. data/ext/pg_query/include/storage/bufpage.h +0 -457
  782. data/ext/pg_query/include/storage/condition_variable.h +0 -73
  783. data/ext/pg_query/include/storage/dsm.h +0 -64
  784. data/ext/pg_query/include/storage/dsm_impl.h +0 -76
  785. data/ext/pg_query/include/storage/fd.h +0 -198
  786. data/ext/pg_query/include/storage/fileset.h +0 -40
  787. data/ext/pg_query/include/storage/ipc.h +0 -84
  788. data/ext/pg_query/include/storage/item.h +0 -19
  789. data/ext/pg_query/include/storage/itemid.h +0 -184
  790. data/ext/pg_query/include/storage/itemptr.h +0 -208
  791. data/ext/pg_query/include/storage/large_object.h +0 -100
  792. data/ext/pg_query/include/storage/latch.h +0 -186
  793. data/ext/pg_query/include/storage/lmgr.h +0 -115
  794. data/ext/pg_query/include/storage/lock.h +0 -616
  795. data/ext/pg_query/include/storage/lockdefs.h +0 -59
  796. data/ext/pg_query/include/storage/lwlock.h +0 -206
  797. data/ext/pg_query/include/storage/lwlocknames.h +0 -50
  798. data/ext/pg_query/include/storage/off.h +0 -57
  799. data/ext/pg_query/include/storage/pg_sema.h +0 -61
  800. data/ext/pg_query/include/storage/pg_shmem.h +0 -92
  801. data/ext/pg_query/include/storage/pmsignal.h +0 -105
  802. data/ext/pg_query/include/storage/predicate.h +0 -87
  803. data/ext/pg_query/include/storage/proc.h +0 -461
  804. data/ext/pg_query/include/storage/procarray.h +0 -98
  805. data/ext/pg_query/include/storage/proclist_types.h +0 -51
  806. data/ext/pg_query/include/storage/procsignal.h +0 -71
  807. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  808. data/ext/pg_query/include/storage/s_lock.h +0 -1110
  809. data/ext/pg_query/include/storage/sharedfileset.h +0 -37
  810. data/ext/pg_query/include/storage/shm_mq.h +0 -86
  811. data/ext/pg_query/include/storage/shm_toc.h +0 -58
  812. data/ext/pg_query/include/storage/shmem.h +0 -81
  813. data/ext/pg_query/include/storage/sinval.h +0 -153
  814. data/ext/pg_query/include/storage/sinvaladt.h +0 -43
  815. data/ext/pg_query/include/storage/smgr.h +0 -111
  816. data/ext/pg_query/include/storage/spin.h +0 -77
  817. data/ext/pg_query/include/storage/standby.h +0 -98
  818. data/ext/pg_query/include/storage/standbydefs.h +0 -74
  819. data/ext/pg_query/include/storage/sync.h +0 -66
  820. data/ext/pg_query/include/tcop/cmdtag.h +0 -58
  821. data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
  822. data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
  823. data/ext/pg_query/include/tcop/dest.h +0 -149
  824. data/ext/pg_query/include/tcop/fastpath.h +0 -20
  825. data/ext/pg_query/include/tcop/pquery.h +0 -51
  826. data/ext/pg_query/include/tcop/tcopprot.h +0 -97
  827. data/ext/pg_query/include/tcop/utility.h +0 -112
  828. data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
  829. data/ext/pg_query/include/utils/acl.h +0 -333
  830. data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
  831. data/ext/pg_query/include/utils/array.h +0 -464
  832. data/ext/pg_query/include/utils/backend_progress.h +0 -44
  833. data/ext/pg_query/include/utils/backend_status.h +0 -321
  834. data/ext/pg_query/include/utils/builtins.h +0 -127
  835. data/ext/pg_query/include/utils/bytea.h +0 -28
  836. data/ext/pg_query/include/utils/catcache.h +0 -231
  837. data/ext/pg_query/include/utils/date.h +0 -90
  838. data/ext/pg_query/include/utils/datetime.h +0 -344
  839. data/ext/pg_query/include/utils/datum.h +0 -76
  840. data/ext/pg_query/include/utils/dsa.h +0 -123
  841. data/ext/pg_query/include/utils/dynahash.h +0 -20
  842. data/ext/pg_query/include/utils/elog.h +0 -470
  843. data/ext/pg_query/include/utils/errcodes.h +0 -354
  844. data/ext/pg_query/include/utils/expandeddatum.h +0 -159
  845. data/ext/pg_query/include/utils/expandedrecord.h +0 -231
  846. data/ext/pg_query/include/utils/float.h +0 -356
  847. data/ext/pg_query/include/utils/fmgroids.h +0 -3261
  848. data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
  849. data/ext/pg_query/include/utils/fmgrtab.h +0 -49
  850. data/ext/pg_query/include/utils/guc.h +0 -469
  851. data/ext/pg_query/include/utils/guc_tables.h +0 -276
  852. data/ext/pg_query/include/utils/hsearch.h +0 -153
  853. data/ext/pg_query/include/utils/inval.h +0 -68
  854. data/ext/pg_query/include/utils/lsyscache.h +0 -208
  855. data/ext/pg_query/include/utils/memdebug.h +0 -82
  856. data/ext/pg_query/include/utils/memutils.h +0 -230
  857. data/ext/pg_query/include/utils/numeric.h +0 -90
  858. data/ext/pg_query/include/utils/palloc.h +0 -158
  859. data/ext/pg_query/include/utils/partcache.h +0 -102
  860. data/ext/pg_query/include/utils/pg_locale.h +0 -127
  861. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  862. data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
  863. data/ext/pg_query/include/utils/pidfile.h +0 -56
  864. data/ext/pg_query/include/utils/plancache.h +0 -236
  865. data/ext/pg_query/include/utils/portal.h +0 -252
  866. data/ext/pg_query/include/utils/probes.h +0 -114
  867. data/ext/pg_query/include/utils/ps_status.h +0 -25
  868. data/ext/pg_query/include/utils/queryenvironment.h +0 -74
  869. data/ext/pg_query/include/utils/queryjumble.h +0 -88
  870. data/ext/pg_query/include/utils/regproc.h +0 -39
  871. data/ext/pg_query/include/utils/rel.h +0 -695
  872. data/ext/pg_query/include/utils/relcache.h +0 -153
  873. data/ext/pg_query/include/utils/reltrigger.h +0 -81
  874. data/ext/pg_query/include/utils/resowner.h +0 -86
  875. data/ext/pg_query/include/utils/rls.h +0 -50
  876. data/ext/pg_query/include/utils/ruleutils.h +0 -47
  877. data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
  878. data/ext/pg_query/include/utils/snapmgr.h +0 -179
  879. data/ext/pg_query/include/utils/snapshot.h +0 -219
  880. data/ext/pg_query/include/utils/sortsupport.h +0 -391
  881. data/ext/pg_query/include/utils/syscache.h +0 -224
  882. data/ext/pg_query/include/utils/timeout.h +0 -95
  883. data/ext/pg_query/include/utils/timestamp.h +0 -117
  884. data/ext/pg_query/include/utils/tuplesort.h +0 -291
  885. data/ext/pg_query/include/utils/tuplestore.h +0 -91
  886. data/ext/pg_query/include/utils/typcache.h +0 -209
  887. data/ext/pg_query/include/utils/tzparser.h +0 -39
  888. data/ext/pg_query/include/utils/varlena.h +0 -41
  889. data/ext/pg_query/include/utils/wait_event.h +0 -289
  890. data/ext/pg_query/include/utils/xml.h +0 -84
  891. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
  892. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  893. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  894. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  895. data/ext/pg_query/src_common_pg_prng.c +0 -152
  896. data/ext/pg_query/src_common_string.c +0 -92
  897. data/ext/pg_query/src_port_pgsleep.c +0 -69
  898. data/ext/pg_query/src_port_strnlen.c +0 -39
  899. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
  900. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  901. /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-2022, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
15
15
  * Portions Copyright (c) 1994, Regents of the University of California
16
16
  *
17
17
  *
@@ -26,7 +26,6 @@
26
26
  #include "catalog/pg_type.h"
27
27
  #include "miscadmin.h"
28
28
  #include "nodes/execnodes.h"
29
- #include "nodes/makefuncs.h"
30
29
  #include "nodes/nodeFuncs.h"
31
30
  #include "nodes/pathnodes.h"
32
31
  #include "utils/builtins.h"
@@ -35,10 +34,12 @@
35
34
  static bool expression_returns_set_walker(Node *node, void *context);
36
35
  static int leftmostLoc(int loc1, int loc2);
37
36
  static bool fix_opfuncids_walker(Node *node, void *context);
38
- static bool planstate_walk_subplans(List *plans, bool (*walker) (),
37
+ static bool planstate_walk_subplans(List *plans,
38
+ planstate_tree_walker_callback walker,
39
39
  void *context);
40
40
  static bool planstate_walk_members(PlanState **planstates, int nplans,
41
- bool (*walker) (), void *context);
41
+ planstate_tree_walker_callback walker,
42
+ void *context);
42
43
 
43
44
 
44
45
  /*
@@ -219,6 +220,9 @@ exprLocation(const Node *expr)
219
220
  /* function name should always be the first thing */
220
221
  loc = ((const WindowFunc *) expr)->location;
221
222
  break;
223
+ case T_MergeSupportFunc:
224
+ loc = ((const MergeSupportFunc *) expr)->location;
225
+ break;
222
226
  case T_SubscriptingRef:
223
227
  /* just use container argument's location */
224
228
  loc = exprLocation((Node *) ((const SubscriptingRef *) expr)->refexpr);
@@ -372,6 +376,30 @@ exprLocation(const Node *expr)
372
376
  exprLocation((Node *) xexpr->args));
373
377
  }
374
378
  break;
379
+ case T_JsonFormat:
380
+ loc = ((const JsonFormat *) expr)->location;
381
+ break;
382
+ case T_JsonValueExpr:
383
+ loc = exprLocation((Node *) ((const JsonValueExpr *) expr)->raw_expr);
384
+ break;
385
+ case T_JsonConstructorExpr:
386
+ loc = ((const JsonConstructorExpr *) expr)->location;
387
+ break;
388
+ case T_JsonIsPredicate:
389
+ loc = ((const JsonIsPredicate *) expr)->location;
390
+ break;
391
+ case T_JsonExpr:
392
+ {
393
+ const JsonExpr *jsexpr = (const JsonExpr *) expr;
394
+
395
+ /* consider both function name and leftmost arg */
396
+ loc = leftmostLoc(jsexpr->location,
397
+ exprLocation(jsexpr->formatted_expr));
398
+ }
399
+ break;
400
+ case T_JsonBehavior:
401
+ loc = exprLocation(((JsonBehavior *) expr)->expr);
402
+ break;
375
403
  case T_NullTest:
376
404
  {
377
405
  const NullTest *nexpr = (const NullTest *) expr;
@@ -532,6 +560,28 @@ exprLocation(const Node *expr)
532
560
  case T_CommonTableExpr:
533
561
  loc = ((const CommonTableExpr *) expr)->location;
534
562
  break;
563
+ case T_JsonKeyValue:
564
+ /* just use the key's location */
565
+ loc = exprLocation((Node *) ((const JsonKeyValue *) expr)->key);
566
+ break;
567
+ case T_JsonObjectConstructor:
568
+ loc = ((const JsonObjectConstructor *) expr)->location;
569
+ break;
570
+ case T_JsonArrayConstructor:
571
+ loc = ((const JsonArrayConstructor *) expr)->location;
572
+ break;
573
+ case T_JsonArrayQueryConstructor:
574
+ loc = ((const JsonArrayQueryConstructor *) expr)->location;
575
+ break;
576
+ case T_JsonAggConstructor:
577
+ loc = ((const JsonAggConstructor *) expr)->location;
578
+ break;
579
+ case T_JsonObjectAgg:
580
+ loc = exprLocation((Node *) ((const JsonObjectAgg *) expr)->constructor);
581
+ break;
582
+ case T_JsonArrayAgg:
583
+ loc = exprLocation((Node *) ((const JsonArrayAgg *) expr)->constructor);
584
+ break;
535
585
  case T_PlaceHolderVar:
536
586
  /* just use argument's location */
537
587
  loc = exprLocation((Node *) ((const PlaceHolderVar *) expr)->phexpr);
@@ -721,7 +771,9 @@ leftmostLoc(int loc1, int loc2)
721
771
  * uses, but may need to be revisited in future.
722
772
  */
723
773
 
724
-
774
+ #define WALK(n) walker((Node *) (n), context)
775
+ #define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
776
+ #undef LIST_WALK
725
777
 
726
778
  /*
727
779
  * query_tree_walker --- initiate a walk of a Query's expressions
@@ -887,9 +939,9 @@ leftmostLoc(int loc1, int loc2)
887
939
  * statements can appear in CTEs.
888
940
  */
889
941
  bool
890
- raw_expression_tree_walker(Node *node,
891
- bool (*walker) (),
892
- void *context)
942
+ raw_expression_tree_walker_impl(Node *node,
943
+ tree_walker_callback walker,
944
+ void *context)
893
945
  {
894
946
  ListCell *temp;
895
947
 
@@ -905,6 +957,7 @@ raw_expression_tree_walker(Node *node,
905
957
 
906
958
  switch (nodeTag(node))
907
959
  {
960
+ case T_JsonFormat:
908
961
  case T_SetToDefault:
909
962
  case T_CurrentOfExpr:
910
963
  case T_SQLValueFunction:
@@ -916,23 +969,24 @@ raw_expression_tree_walker(Node *node,
916
969
  case T_ParamRef:
917
970
  case T_A_Const:
918
971
  case T_A_Star:
972
+ case T_MergeSupportFunc:
919
973
  /* primitive node types with no subnodes */
920
974
  break;
921
975
  case T_Alias:
922
976
  /* we assume the colnames list isn't interesting */
923
977
  break;
924
978
  case T_RangeVar:
925
- return walker(((RangeVar *) node)->alias, context);
979
+ return WALK(((RangeVar *) node)->alias);
926
980
  case T_GroupingFunc:
927
- return walker(((GroupingFunc *) node)->args, context);
981
+ return WALK(((GroupingFunc *) node)->args);
928
982
  case T_SubLink:
929
983
  {
930
984
  SubLink *sublink = (SubLink *) node;
931
985
 
932
- if (walker(sublink->testexpr, context))
986
+ if (WALK(sublink->testexpr))
933
987
  return true;
934
988
  /* we assume the operName is not interesting */
935
- if (walker(sublink->subselect, context))
989
+ if (WALK(sublink->subselect))
936
990
  return true;
937
991
  }
938
992
  break;
@@ -940,55 +994,175 @@ raw_expression_tree_walker(Node *node,
940
994
  {
941
995
  CaseExpr *caseexpr = (CaseExpr *) node;
942
996
 
943
- if (walker(caseexpr->arg, context))
997
+ if (WALK(caseexpr->arg))
944
998
  return true;
945
999
  /* we assume walker doesn't care about CaseWhens, either */
946
1000
  foreach(temp, caseexpr->args)
947
1001
  {
948
1002
  CaseWhen *when = lfirst_node(CaseWhen, temp);
949
1003
 
950
- if (walker(when->expr, context))
1004
+ if (WALK(when->expr))
951
1005
  return true;
952
- if (walker(when->result, context))
1006
+ if (WALK(when->result))
953
1007
  return true;
954
1008
  }
955
- if (walker(caseexpr->defresult, context))
1009
+ if (WALK(caseexpr->defresult))
956
1010
  return true;
957
1011
  }
958
1012
  break;
959
1013
  case T_RowExpr:
960
1014
  /* Assume colnames isn't interesting */
961
- return walker(((RowExpr *) node)->args, context);
1015
+ return WALK(((RowExpr *) node)->args);
962
1016
  case T_CoalesceExpr:
963
- return walker(((CoalesceExpr *) node)->args, context);
1017
+ return WALK(((CoalesceExpr *) node)->args);
964
1018
  case T_MinMaxExpr:
965
- return walker(((MinMaxExpr *) node)->args, context);
1019
+ return WALK(((MinMaxExpr *) node)->args);
966
1020
  case T_XmlExpr:
967
1021
  {
968
1022
  XmlExpr *xexpr = (XmlExpr *) node;
969
1023
 
970
- if (walker(xexpr->named_args, context))
1024
+ if (WALK(xexpr->named_args))
971
1025
  return true;
972
1026
  /* we assume walker doesn't care about arg_names */
973
- if (walker(xexpr->args, context))
1027
+ if (WALK(xexpr->args))
974
1028
  return true;
975
1029
  }
976
1030
  break;
1031
+ case T_JsonReturning:
1032
+ return WALK(((JsonReturning *) node)->format);
1033
+ case T_JsonValueExpr:
1034
+ {
1035
+ JsonValueExpr *jve = (JsonValueExpr *) node;
1036
+
1037
+ if (WALK(jve->raw_expr))
1038
+ return true;
1039
+ if (WALK(jve->formatted_expr))
1040
+ return true;
1041
+ if (WALK(jve->format))
1042
+ return true;
1043
+ }
1044
+ break;
1045
+ case T_JsonParseExpr:
1046
+ {
1047
+ JsonParseExpr *jpe = (JsonParseExpr *) node;
1048
+
1049
+ if (WALK(jpe->expr))
1050
+ return true;
1051
+ if (WALK(jpe->output))
1052
+ return true;
1053
+ }
1054
+ break;
1055
+ case T_JsonScalarExpr:
1056
+ {
1057
+ JsonScalarExpr *jse = (JsonScalarExpr *) node;
1058
+
1059
+ if (WALK(jse->expr))
1060
+ return true;
1061
+ if (WALK(jse->output))
1062
+ return true;
1063
+ }
1064
+ break;
1065
+ case T_JsonSerializeExpr:
1066
+ {
1067
+ JsonSerializeExpr *jse = (JsonSerializeExpr *) node;
1068
+
1069
+ if (WALK(jse->expr))
1070
+ return true;
1071
+ if (WALK(jse->output))
1072
+ return true;
1073
+ }
1074
+ break;
1075
+ case T_JsonConstructorExpr:
1076
+ {
1077
+ JsonConstructorExpr *ctor = (JsonConstructorExpr *) node;
1078
+
1079
+ if (WALK(ctor->args))
1080
+ return true;
1081
+ if (WALK(ctor->func))
1082
+ return true;
1083
+ if (WALK(ctor->coercion))
1084
+ return true;
1085
+ if (WALK(ctor->returning))
1086
+ return true;
1087
+ }
1088
+ break;
1089
+ case T_JsonIsPredicate:
1090
+ return WALK(((JsonIsPredicate *) node)->expr);
1091
+ case T_JsonArgument:
1092
+ return WALK(((JsonArgument *) node)->val);
1093
+ case T_JsonFuncExpr:
1094
+ {
1095
+ JsonFuncExpr *jfe = (JsonFuncExpr *) node;
1096
+
1097
+ if (WALK(jfe->context_item))
1098
+ return true;
1099
+ if (WALK(jfe->pathspec))
1100
+ return true;
1101
+ if (WALK(jfe->passing))
1102
+ return true;
1103
+ if (WALK(jfe->output))
1104
+ return true;
1105
+ if (WALK(jfe->on_empty))
1106
+ return true;
1107
+ if (WALK(jfe->on_error))
1108
+ return true;
1109
+ }
1110
+ break;
1111
+ case T_JsonBehavior:
1112
+ {
1113
+ JsonBehavior *jb = (JsonBehavior *) node;
1114
+
1115
+ if (WALK(jb->expr))
1116
+ return true;
1117
+ }
1118
+ break;
1119
+ case T_JsonTable:
1120
+ {
1121
+ JsonTable *jt = (JsonTable *) node;
1122
+
1123
+ if (WALK(jt->context_item))
1124
+ return true;
1125
+ if (WALK(jt->pathspec))
1126
+ return true;
1127
+ if (WALK(jt->passing))
1128
+ return true;
1129
+ if (WALK(jt->columns))
1130
+ return true;
1131
+ if (WALK(jt->on_error))
1132
+ return true;
1133
+ }
1134
+ break;
1135
+ case T_JsonTableColumn:
1136
+ {
1137
+ JsonTableColumn *jtc = (JsonTableColumn *) node;
1138
+
1139
+ if (WALK(jtc->typeName))
1140
+ return true;
1141
+ if (WALK(jtc->on_empty))
1142
+ return true;
1143
+ if (WALK(jtc->on_error))
1144
+ return true;
1145
+ if (WALK(jtc->columns))
1146
+ return true;
1147
+ }
1148
+ break;
1149
+ case T_JsonTablePathSpec:
1150
+ return WALK(((JsonTablePathSpec *) node)->string);
977
1151
  case T_NullTest:
978
- return walker(((NullTest *) node)->arg, context);
1152
+ return WALK(((NullTest *) node)->arg);
979
1153
  case T_BooleanTest:
980
- return walker(((BooleanTest *) node)->arg, context);
1154
+ return WALK(((BooleanTest *) node)->arg);
981
1155
  case T_JoinExpr:
982
1156
  {
983
1157
  JoinExpr *join = (JoinExpr *) node;
984
1158
 
985
- if (walker(join->larg, context))
1159
+ if (WALK(join->larg))
986
1160
  return true;
987
- if (walker(join->rarg, context))
1161
+ if (WALK(join->rarg))
988
1162
  return true;
989
- if (walker(join->quals, context))
1163
+ if (WALK(join->quals))
990
1164
  return true;
991
- if (walker(join->alias, context))
1165
+ if (WALK(join->alias))
992
1166
  return true;
993
1167
  /* using list is deemed uninteresting */
994
1168
  }
@@ -997,18 +1171,18 @@ raw_expression_tree_walker(Node *node,
997
1171
  {
998
1172
  IntoClause *into = (IntoClause *) node;
999
1173
 
1000
- if (walker(into->rel, context))
1174
+ if (WALK(into->rel))
1001
1175
  return true;
1002
1176
  /* colNames, options are deemed uninteresting */
1003
1177
  /* viewQuery should be null in raw parsetree, but check it */
1004
- if (walker(into->viewQuery, context))
1178
+ if (WALK(into->viewQuery))
1005
1179
  return true;
1006
1180
  }
1007
1181
  break;
1008
1182
  case T_List:
1009
1183
  foreach(temp, (List *) node)
1010
1184
  {
1011
- if (walker((Node *) lfirst(temp), context))
1185
+ if (WALK((Node *) lfirst(temp)))
1012
1186
  return true;
1013
1187
  }
1014
1188
  break;
@@ -1016,17 +1190,17 @@ raw_expression_tree_walker(Node *node,
1016
1190
  {
1017
1191
  InsertStmt *stmt = (InsertStmt *) node;
1018
1192
 
1019
- if (walker(stmt->relation, context))
1193
+ if (WALK(stmt->relation))
1020
1194
  return true;
1021
- if (walker(stmt->cols, context))
1195
+ if (WALK(stmt->cols))
1022
1196
  return true;
1023
- if (walker(stmt->selectStmt, context))
1197
+ if (WALK(stmt->selectStmt))
1024
1198
  return true;
1025
- if (walker(stmt->onConflictClause, context))
1199
+ if (WALK(stmt->onConflictClause))
1026
1200
  return true;
1027
- if (walker(stmt->returningList, context))
1201
+ if (WALK(stmt->returningList))
1028
1202
  return true;
1029
- if (walker(stmt->withClause, context))
1203
+ if (WALK(stmt->withClause))
1030
1204
  return true;
1031
1205
  }
1032
1206
  break;
@@ -1034,15 +1208,15 @@ raw_expression_tree_walker(Node *node,
1034
1208
  {
1035
1209
  DeleteStmt *stmt = (DeleteStmt *) node;
1036
1210
 
1037
- if (walker(stmt->relation, context))
1211
+ if (WALK(stmt->relation))
1038
1212
  return true;
1039
- if (walker(stmt->usingClause, context))
1213
+ if (WALK(stmt->usingClause))
1040
1214
  return true;
1041
- if (walker(stmt->whereClause, context))
1215
+ if (WALK(stmt->whereClause))
1042
1216
  return true;
1043
- if (walker(stmt->returningList, context))
1217
+ if (WALK(stmt->returningList))
1044
1218
  return true;
1045
- if (walker(stmt->withClause, context))
1219
+ if (WALK(stmt->withClause))
1046
1220
  return true;
1047
1221
  }
1048
1222
  break;
@@ -1050,17 +1224,17 @@ raw_expression_tree_walker(Node *node,
1050
1224
  {
1051
1225
  UpdateStmt *stmt = (UpdateStmt *) node;
1052
1226
 
1053
- if (walker(stmt->relation, context))
1227
+ if (WALK(stmt->relation))
1054
1228
  return true;
1055
- if (walker(stmt->targetList, context))
1229
+ if (WALK(stmt->targetList))
1056
1230
  return true;
1057
- if (walker(stmt->whereClause, context))
1231
+ if (WALK(stmt->whereClause))
1058
1232
  return true;
1059
- if (walker(stmt->fromClause, context))
1233
+ if (WALK(stmt->fromClause))
1060
1234
  return true;
1061
- if (walker(stmt->returningList, context))
1235
+ if (WALK(stmt->returningList))
1062
1236
  return true;
1063
- if (walker(stmt->withClause, context))
1237
+ if (WALK(stmt->withClause))
1064
1238
  return true;
1065
1239
  }
1066
1240
  break;
@@ -1068,15 +1242,17 @@ raw_expression_tree_walker(Node *node,
1068
1242
  {
1069
1243
  MergeStmt *stmt = (MergeStmt *) node;
1070
1244
 
1071
- if (walker(stmt->relation, context))
1245
+ if (WALK(stmt->relation))
1072
1246
  return true;
1073
- if (walker(stmt->sourceRelation, context))
1247
+ if (WALK(stmt->sourceRelation))
1074
1248
  return true;
1075
- if (walker(stmt->joinCondition, context))
1249
+ if (WALK(stmt->joinCondition))
1076
1250
  return true;
1077
- if (walker(stmt->mergeWhenClauses, context))
1251
+ if (WALK(stmt->mergeWhenClauses))
1078
1252
  return true;
1079
- if (walker(stmt->withClause, context))
1253
+ if (WALK(stmt->returningList))
1254
+ return true;
1255
+ if (WALK(stmt->withClause))
1080
1256
  return true;
1081
1257
  }
1082
1258
  break;
@@ -1084,11 +1260,11 @@ raw_expression_tree_walker(Node *node,
1084
1260
  {
1085
1261
  MergeWhenClause *mergeWhenClause = (MergeWhenClause *) node;
1086
1262
 
1087
- if (walker(mergeWhenClause->condition, context))
1263
+ if (WALK(mergeWhenClause->condition))
1088
1264
  return true;
1089
- if (walker(mergeWhenClause->targetList, context))
1265
+ if (WALK(mergeWhenClause->targetList))
1090
1266
  return true;
1091
- if (walker(mergeWhenClause->values, context))
1267
+ if (WALK(mergeWhenClause->values))
1092
1268
  return true;
1093
1269
  }
1094
1270
  break;
@@ -1096,37 +1272,37 @@ raw_expression_tree_walker(Node *node,
1096
1272
  {
1097
1273
  SelectStmt *stmt = (SelectStmt *) node;
1098
1274
 
1099
- if (walker(stmt->distinctClause, context))
1275
+ if (WALK(stmt->distinctClause))
1100
1276
  return true;
1101
- if (walker(stmt->intoClause, context))
1277
+ if (WALK(stmt->intoClause))
1102
1278
  return true;
1103
- if (walker(stmt->targetList, context))
1279
+ if (WALK(stmt->targetList))
1104
1280
  return true;
1105
- if (walker(stmt->fromClause, context))
1281
+ if (WALK(stmt->fromClause))
1106
1282
  return true;
1107
- if (walker(stmt->whereClause, context))
1283
+ if (WALK(stmt->whereClause))
1108
1284
  return true;
1109
- if (walker(stmt->groupClause, context))
1285
+ if (WALK(stmt->groupClause))
1110
1286
  return true;
1111
- if (walker(stmt->havingClause, context))
1287
+ if (WALK(stmt->havingClause))
1112
1288
  return true;
1113
- if (walker(stmt->windowClause, context))
1289
+ if (WALK(stmt->windowClause))
1114
1290
  return true;
1115
- if (walker(stmt->valuesLists, context))
1291
+ if (WALK(stmt->valuesLists))
1116
1292
  return true;
1117
- if (walker(stmt->sortClause, context))
1293
+ if (WALK(stmt->sortClause))
1118
1294
  return true;
1119
- if (walker(stmt->limitOffset, context))
1295
+ if (WALK(stmt->limitOffset))
1120
1296
  return true;
1121
- if (walker(stmt->limitCount, context))
1297
+ if (WALK(stmt->limitCount))
1122
1298
  return true;
1123
- if (walker(stmt->lockingClause, context))
1299
+ if (WALK(stmt->lockingClause))
1124
1300
  return true;
1125
- if (walker(stmt->withClause, context))
1301
+ if (WALK(stmt->withClause))
1126
1302
  return true;
1127
- if (walker(stmt->larg, context))
1303
+ if (WALK(stmt->larg))
1128
1304
  return true;
1129
- if (walker(stmt->rarg, context))
1305
+ if (WALK(stmt->rarg))
1130
1306
  return true;
1131
1307
  }
1132
1308
  break;
@@ -1134,9 +1310,9 @@ raw_expression_tree_walker(Node *node,
1134
1310
  {
1135
1311
  PLAssignStmt *stmt = (PLAssignStmt *) node;
1136
1312
 
1137
- if (walker(stmt->indirection, context))
1313
+ if (WALK(stmt->indirection))
1138
1314
  return true;
1139
- if (walker(stmt->val, context))
1315
+ if (WALK(stmt->val))
1140
1316
  return true;
1141
1317
  }
1142
1318
  break;
@@ -1144,9 +1320,9 @@ raw_expression_tree_walker(Node *node,
1144
1320
  {
1145
1321
  A_Expr *expr = (A_Expr *) node;
1146
1322
 
1147
- if (walker(expr->lexpr, context))
1323
+ if (WALK(expr->lexpr))
1148
1324
  return true;
1149
- if (walker(expr->rexpr, context))
1325
+ if (WALK(expr->rexpr))
1150
1326
  return true;
1151
1327
  /* operator name is deemed uninteresting */
1152
1328
  }
@@ -1155,7 +1331,7 @@ raw_expression_tree_walker(Node *node,
1155
1331
  {
1156
1332
  BoolExpr *expr = (BoolExpr *) node;
1157
1333
 
1158
- if (walker(expr->args, context))
1334
+ if (WALK(expr->args))
1159
1335
  return true;
1160
1336
  }
1161
1337
  break;
@@ -1166,26 +1342,26 @@ raw_expression_tree_walker(Node *node,
1166
1342
  {
1167
1343
  FuncCall *fcall = (FuncCall *) node;
1168
1344
 
1169
- if (walker(fcall->args, context))
1345
+ if (WALK(fcall->args))
1170
1346
  return true;
1171
- if (walker(fcall->agg_order, context))
1347
+ if (WALK(fcall->agg_order))
1172
1348
  return true;
1173
- if (walker(fcall->agg_filter, context))
1349
+ if (WALK(fcall->agg_filter))
1174
1350
  return true;
1175
- if (walker(fcall->over, context))
1351
+ if (WALK(fcall->over))
1176
1352
  return true;
1177
1353
  /* function name is deemed uninteresting */
1178
1354
  }
1179
1355
  break;
1180
1356
  case T_NamedArgExpr:
1181
- return walker(((NamedArgExpr *) node)->arg, context);
1357
+ return WALK(((NamedArgExpr *) node)->arg);
1182
1358
  case T_A_Indices:
1183
1359
  {
1184
1360
  A_Indices *indices = (A_Indices *) node;
1185
1361
 
1186
- if (walker(indices->lidx, context))
1362
+ if (WALK(indices->lidx))
1187
1363
  return true;
1188
- if (walker(indices->uidx, context))
1364
+ if (WALK(indices->uidx))
1189
1365
  return true;
1190
1366
  }
1191
1367
  break;
@@ -1193,51 +1369,51 @@ raw_expression_tree_walker(Node *node,
1193
1369
  {
1194
1370
  A_Indirection *indir = (A_Indirection *) node;
1195
1371
 
1196
- if (walker(indir->arg, context))
1372
+ if (WALK(indir->arg))
1197
1373
  return true;
1198
- if (walker(indir->indirection, context))
1374
+ if (WALK(indir->indirection))
1199
1375
  return true;
1200
1376
  }
1201
1377
  break;
1202
1378
  case T_A_ArrayExpr:
1203
- return walker(((A_ArrayExpr *) node)->elements, context);
1379
+ return WALK(((A_ArrayExpr *) node)->elements);
1204
1380
  case T_ResTarget:
1205
1381
  {
1206
1382
  ResTarget *rt = (ResTarget *) node;
1207
1383
 
1208
- if (walker(rt->indirection, context))
1384
+ if (WALK(rt->indirection))
1209
1385
  return true;
1210
- if (walker(rt->val, context))
1386
+ if (WALK(rt->val))
1211
1387
  return true;
1212
1388
  }
1213
1389
  break;
1214
1390
  case T_MultiAssignRef:
1215
- return walker(((MultiAssignRef *) node)->source, context);
1391
+ return WALK(((MultiAssignRef *) node)->source);
1216
1392
  case T_TypeCast:
1217
1393
  {
1218
1394
  TypeCast *tc = (TypeCast *) node;
1219
1395
 
1220
- if (walker(tc->arg, context))
1396
+ if (WALK(tc->arg))
1221
1397
  return true;
1222
- if (walker(tc->typeName, context))
1398
+ if (WALK(tc->typeName))
1223
1399
  return true;
1224
1400
  }
1225
1401
  break;
1226
1402
  case T_CollateClause:
1227
- return walker(((CollateClause *) node)->arg, context);
1403
+ return WALK(((CollateClause *) node)->arg);
1228
1404
  case T_SortBy:
1229
- return walker(((SortBy *) node)->node, context);
1405
+ return WALK(((SortBy *) node)->node);
1230
1406
  case T_WindowDef:
1231
1407
  {
1232
1408
  WindowDef *wd = (WindowDef *) node;
1233
1409
 
1234
- if (walker(wd->partitionClause, context))
1410
+ if (WALK(wd->partitionClause))
1235
1411
  return true;
1236
- if (walker(wd->orderClause, context))
1412
+ if (WALK(wd->orderClause))
1237
1413
  return true;
1238
- if (walker(wd->startOffset, context))
1414
+ if (WALK(wd->startOffset))
1239
1415
  return true;
1240
- if (walker(wd->endOffset, context))
1416
+ if (WALK(wd->endOffset))
1241
1417
  return true;
1242
1418
  }
1243
1419
  break;
@@ -1245,9 +1421,9 @@ raw_expression_tree_walker(Node *node,
1245
1421
  {
1246
1422
  RangeSubselect *rs = (RangeSubselect *) node;
1247
1423
 
1248
- if (walker(rs->subquery, context))
1424
+ if (WALK(rs->subquery))
1249
1425
  return true;
1250
- if (walker(rs->alias, context))
1426
+ if (WALK(rs->alias))
1251
1427
  return true;
1252
1428
  }
1253
1429
  break;
@@ -1255,11 +1431,11 @@ raw_expression_tree_walker(Node *node,
1255
1431
  {
1256
1432
  RangeFunction *rf = (RangeFunction *) node;
1257
1433
 
1258
- if (walker(rf->functions, context))
1434
+ if (WALK(rf->functions))
1259
1435
  return true;
1260
- if (walker(rf->alias, context))
1436
+ if (WALK(rf->alias))
1261
1437
  return true;
1262
- if (walker(rf->coldeflist, context))
1438
+ if (WALK(rf->coldeflist))
1263
1439
  return true;
1264
1440
  }
1265
1441
  break;
@@ -1267,12 +1443,12 @@ raw_expression_tree_walker(Node *node,
1267
1443
  {
1268
1444
  RangeTableSample *rts = (RangeTableSample *) node;
1269
1445
 
1270
- if (walker(rts->relation, context))
1446
+ if (WALK(rts->relation))
1271
1447
  return true;
1272
1448
  /* method name is deemed uninteresting */
1273
- if (walker(rts->args, context))
1449
+ if (WALK(rts->args))
1274
1450
  return true;
1275
- if (walker(rts->repeatable, context))
1451
+ if (WALK(rts->repeatable))
1276
1452
  return true;
1277
1453
  }
1278
1454
  break;
@@ -1280,15 +1456,15 @@ raw_expression_tree_walker(Node *node,
1280
1456
  {
1281
1457
  RangeTableFunc *rtf = (RangeTableFunc *) node;
1282
1458
 
1283
- if (walker(rtf->docexpr, context))
1459
+ if (WALK(rtf->docexpr))
1284
1460
  return true;
1285
- if (walker(rtf->rowexpr, context))
1461
+ if (WALK(rtf->rowexpr))
1286
1462
  return true;
1287
- if (walker(rtf->namespaces, context))
1463
+ if (WALK(rtf->namespaces))
1288
1464
  return true;
1289
- if (walker(rtf->columns, context))
1465
+ if (WALK(rtf->columns))
1290
1466
  return true;
1291
- if (walker(rtf->alias, context))
1467
+ if (WALK(rtf->alias))
1292
1468
  return true;
1293
1469
  }
1294
1470
  break;
@@ -1296,9 +1472,9 @@ raw_expression_tree_walker(Node *node,
1296
1472
  {
1297
1473
  RangeTableFuncCol *rtfc = (RangeTableFuncCol *) node;
1298
1474
 
1299
- if (walker(rtfc->colexpr, context))
1475
+ if (WALK(rtfc->colexpr))
1300
1476
  return true;
1301
- if (walker(rtfc->coldefexpr, context))
1477
+ if (WALK(rtfc->coldefexpr))
1302
1478
  return true;
1303
1479
  }
1304
1480
  break;
@@ -1306,9 +1482,9 @@ raw_expression_tree_walker(Node *node,
1306
1482
  {
1307
1483
  TypeName *tn = (TypeName *) node;
1308
1484
 
1309
- if (walker(tn->typmods, context))
1485
+ if (WALK(tn->typmods))
1310
1486
  return true;
1311
- if (walker(tn->arrayBounds, context))
1487
+ if (WALK(tn->arrayBounds))
1312
1488
  return true;
1313
1489
  /* type name itself is deemed uninteresting */
1314
1490
  }
@@ -1317,13 +1493,11 @@ raw_expression_tree_walker(Node *node,
1317
1493
  {
1318
1494
  ColumnDef *coldef = (ColumnDef *) node;
1319
1495
 
1320
- if (walker(coldef->typeName, context))
1321
- return true;
1322
- if (walker(coldef->compression, context))
1496
+ if (WALK(coldef->typeName))
1323
1497
  return true;
1324
- if (walker(coldef->raw_default, context))
1498
+ if (WALK(coldef->raw_default))
1325
1499
  return true;
1326
- if (walker(coldef->collClause, context))
1500
+ if (WALK(coldef->collClause))
1327
1501
  return true;
1328
1502
  /* for now, constraints are ignored */
1329
1503
  }
@@ -1332,34 +1506,34 @@ raw_expression_tree_walker(Node *node,
1332
1506
  {
1333
1507
  IndexElem *indelem = (IndexElem *) node;
1334
1508
 
1335
- if (walker(indelem->expr, context))
1509
+ if (WALK(indelem->expr))
1336
1510
  return true;
1337
1511
  /* collation and opclass names are deemed uninteresting */
1338
1512
  }
1339
1513
  break;
1340
1514
  case T_GroupingSet:
1341
- return walker(((GroupingSet *) node)->content, context);
1515
+ return WALK(((GroupingSet *) node)->content);
1342
1516
  case T_LockingClause:
1343
- return walker(((LockingClause *) node)->lockedRels, context);
1517
+ return WALK(((LockingClause *) node)->lockedRels);
1344
1518
  case T_XmlSerialize:
1345
1519
  {
1346
1520
  XmlSerialize *xs = (XmlSerialize *) node;
1347
1521
 
1348
- if (walker(xs->expr, context))
1522
+ if (WALK(xs->expr))
1349
1523
  return true;
1350
- if (walker(xs->typeName, context))
1524
+ if (WALK(xs->typeName))
1351
1525
  return true;
1352
1526
  }
1353
1527
  break;
1354
1528
  case T_WithClause:
1355
- return walker(((WithClause *) node)->ctes, context);
1529
+ return WALK(((WithClause *) node)->ctes);
1356
1530
  case T_InferClause:
1357
1531
  {
1358
1532
  InferClause *stmt = (InferClause *) node;
1359
1533
 
1360
- if (walker(stmt->indexElems, context))
1534
+ if (WALK(stmt->indexElems))
1361
1535
  return true;
1362
- if (walker(stmt->whereClause, context))
1536
+ if (WALK(stmt->whereClause))
1363
1537
  return true;
1364
1538
  }
1365
1539
  break;
@@ -1367,17 +1541,101 @@ raw_expression_tree_walker(Node *node,
1367
1541
  {
1368
1542
  OnConflictClause *stmt = (OnConflictClause *) node;
1369
1543
 
1370
- if (walker(stmt->infer, context))
1544
+ if (WALK(stmt->infer))
1371
1545
  return true;
1372
- if (walker(stmt->targetList, context))
1546
+ if (WALK(stmt->targetList))
1373
1547
  return true;
1374
- if (walker(stmt->whereClause, context))
1548
+ if (WALK(stmt->whereClause))
1375
1549
  return true;
1376
1550
  }
1377
1551
  break;
1378
1552
  case T_CommonTableExpr:
1379
1553
  /* search_clause and cycle_clause are not interesting here */
1380
- return walker(((CommonTableExpr *) node)->ctequery, context);
1554
+ return WALK(((CommonTableExpr *) node)->ctequery);
1555
+ case T_JsonOutput:
1556
+ {
1557
+ JsonOutput *out = (JsonOutput *) node;
1558
+
1559
+ if (WALK(out->typeName))
1560
+ return true;
1561
+ if (WALK(out->returning))
1562
+ return true;
1563
+ }
1564
+ break;
1565
+ case T_JsonKeyValue:
1566
+ {
1567
+ JsonKeyValue *jkv = (JsonKeyValue *) node;
1568
+
1569
+ if (WALK(jkv->key))
1570
+ return true;
1571
+ if (WALK(jkv->value))
1572
+ return true;
1573
+ }
1574
+ break;
1575
+ case T_JsonObjectConstructor:
1576
+ {
1577
+ JsonObjectConstructor *joc = (JsonObjectConstructor *) node;
1578
+
1579
+ if (WALK(joc->output))
1580
+ return true;
1581
+ if (WALK(joc->exprs))
1582
+ return true;
1583
+ }
1584
+ break;
1585
+ case T_JsonArrayConstructor:
1586
+ {
1587
+ JsonArrayConstructor *jac = (JsonArrayConstructor *) node;
1588
+
1589
+ if (WALK(jac->output))
1590
+ return true;
1591
+ if (WALK(jac->exprs))
1592
+ return true;
1593
+ }
1594
+ break;
1595
+ case T_JsonAggConstructor:
1596
+ {
1597
+ JsonAggConstructor *ctor = (JsonAggConstructor *) node;
1598
+
1599
+ if (WALK(ctor->output))
1600
+ return true;
1601
+ if (WALK(ctor->agg_order))
1602
+ return true;
1603
+ if (WALK(ctor->agg_filter))
1604
+ return true;
1605
+ if (WALK(ctor->over))
1606
+ return true;
1607
+ }
1608
+ break;
1609
+ case T_JsonObjectAgg:
1610
+ {
1611
+ JsonObjectAgg *joa = (JsonObjectAgg *) node;
1612
+
1613
+ if (WALK(joa->constructor))
1614
+ return true;
1615
+ if (WALK(joa->arg))
1616
+ return true;
1617
+ }
1618
+ break;
1619
+ case T_JsonArrayAgg:
1620
+ {
1621
+ JsonArrayAgg *jaa = (JsonArrayAgg *) node;
1622
+
1623
+ if (WALK(jaa->constructor))
1624
+ return true;
1625
+ if (WALK(jaa->arg))
1626
+ return true;
1627
+ }
1628
+ break;
1629
+ case T_JsonArrayQueryConstructor:
1630
+ {
1631
+ JsonArrayQueryConstructor *jaqc = (JsonArrayQueryConstructor *) node;
1632
+
1633
+ if (WALK(jaqc->output))
1634
+ return true;
1635
+ if (WALK(jaqc->query))
1636
+ return true;
1637
+ }
1638
+ break;
1381
1639
  default:
1382
1640
  elog(ERROR, "unrecognized node type: %d",
1383
1641
  (int) nodeTag(node));
@@ -1392,7 +1650,7 @@ raw_expression_tree_walker(Node *node,
1392
1650
  * The walker has already visited the current node, and so we need only
1393
1651
  * recurse into any sub-nodes it has.
1394
1652
  */
1395
-
1653
+ #define PSWALK(n) walker(n, context)
1396
1654
 
1397
1655
  /*
1398
1656
  * Walk a list of SubPlans (or initPlans, which also use SubPlan nodes).