pg_query 5.1.0 → 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 (490) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/Rakefile +4 -4
  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 +20 -6
  11. data/ext/pg_query/include/pg_query.h +4 -3
  12. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  19. data/ext/pg_query/include/postgres/access/amapi.h +14 -3
  20. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  21. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  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 +2 -3
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  26. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  27. data/ext/pg_query/include/postgres/access/genam.h +17 -4
  28. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  29. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  30. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  31. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  32. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  33. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  34. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  35. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  36. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  37. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  38. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  39. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  40. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  41. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  42. data/ext/pg_query/include/postgres/access/table.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tableam.h +35 -25
  44. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  45. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  46. data/ext/pg_query/include/postgres/access/transam.h +50 -7
  47. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  48. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  49. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  50. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  51. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  53. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  54. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  55. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  56. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  57. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  58. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  59. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  60. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  61. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  62. data/ext/pg_query/include/postgres/c.h +32 -37
  63. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  64. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  66. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  67. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  68. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  69. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  70. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  71. data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
  72. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  75. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  76. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  78. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  79. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  81. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  82. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  83. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  84. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  86. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  87. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  90. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  91. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  110. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  111. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  112. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  113. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  119. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  131. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  132. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  133. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  134. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  135. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  136. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  138. data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
  139. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  140. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  141. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  142. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  143. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  144. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  145. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  146. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  147. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  148. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  149. data/ext/pg_query/include/postgres/common/int.h +79 -4
  150. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  151. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  152. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  153. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  154. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  155. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  156. data/ext/pg_query/include/postgres/common/string.h +1 -1
  157. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  158. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  159. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  160. data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
  161. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  162. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  163. data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
  164. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  165. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  166. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  167. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  168. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  169. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  170. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  171. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  172. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  173. data/ext/pg_query/include/postgres/gram.h +871 -830
  174. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  175. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  176. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  177. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  178. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  179. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  180. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  181. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  182. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  183. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  184. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  185. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  186. data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
  187. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  188. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  189. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  190. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  191. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  192. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  193. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  194. data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
  195. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  196. data/ext/pg_query/include/postgres/miscadmin.h +72 -52
  197. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  198. data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
  199. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  200. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  201. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  202. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  203. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  205. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  206. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  207. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  209. data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
  210. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  211. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  212. data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
  213. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  214. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  215. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  216. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  217. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  218. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  219. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  220. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  221. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  222. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  223. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  224. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  225. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  226. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  227. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
  229. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  230. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  231. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  232. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  233. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  234. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  235. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  236. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  237. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  238. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  239. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  240. data/ext/pg_query/include/postgres/pg_config.h +53 -45
  241. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  242. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  243. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  244. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  245. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  246. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  247. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  248. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  249. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  250. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  251. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  252. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  253. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  254. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  255. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  256. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  257. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  258. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  259. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  260. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  261. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  262. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  263. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  264. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  265. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  266. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  268. data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
  269. data/ext/pg_query/include/postgres/port.h +39 -4
  270. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  271. data/ext/pg_query/include/postgres/postgres.h +1 -1
  272. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  273. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  274. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  275. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  276. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  277. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  278. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  279. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  280. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  281. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  282. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  283. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  284. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  285. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  286. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  287. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  288. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
  289. data/ext/pg_query/include/postgres/replication/slot.h +45 -5
  290. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  291. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  292. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  293. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  294. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  295. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  296. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  297. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  299. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  300. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  301. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  302. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  305. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  306. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  307. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  308. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  309. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  311. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  312. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  313. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  314. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  315. data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
  316. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  317. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  318. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  319. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  320. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  321. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  322. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  323. data/ext/pg_query/include/postgres/storage/proc.h +48 -26
  324. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  325. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  326. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  327. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  328. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  329. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  330. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  331. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  333. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  334. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  335. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  336. data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
  337. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  338. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  339. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  340. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  341. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  342. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  343. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  344. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  345. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  346. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  347. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  348. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  349. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  350. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  351. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  352. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  353. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  354. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  355. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  356. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  357. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  358. data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
  359. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  361. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  363. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  364. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  365. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  366. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  367. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  368. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  369. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  370. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  372. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  373. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  374. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  375. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  376. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  377. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  378. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  379. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  381. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  382. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  383. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  384. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  385. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  387. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
  388. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  389. data/ext/pg_query/include/postgres/utils/portal.h +10 -10
  390. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  391. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  393. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  394. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  396. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  397. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  399. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  400. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  401. data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
  402. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  403. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  404. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  405. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  406. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  407. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  408. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  409. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  410. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  411. data/ext/pg_query/include/postgres/varatt.h +1 -1
  412. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  413. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  414. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  415. data/ext/pg_query/pg_query_normalize.c +42 -1
  416. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  417. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  418. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  419. data/ext/pg_query/pg_query_scan.c +1 -1
  420. data/ext/pg_query/postgres_deparse.c +601 -172
  421. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  422. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  423. data/ext/pg_query/src_backend_commands_define.c +2 -3
  424. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  425. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  426. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  427. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  428. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  429. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  430. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  431. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  432. data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
  433. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  434. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  435. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  436. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  437. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  438. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  439. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  440. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  441. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  442. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  443. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  444. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  445. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  446. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  447. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  448. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  449. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  450. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  451. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  452. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  453. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  454. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  455. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  456. data/ext/pg_query/src_common_encnames.c +43 -44
  457. data/ext/pg_query/src_common_hashfn.c +1 -1
  458. data/ext/pg_query/src_common_keywords.c +1 -1
  459. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  460. data/ext/pg_query/src_common_kwlookup.c +1 -1
  461. data/ext/pg_query/src_common_psprintf.c +3 -3
  462. data/ext/pg_query/src_common_stringinfo.c +18 -1
  463. data/ext/pg_query/src_common_wchar.c +92 -109
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  466. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  467. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  468. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  469. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  470. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  471. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  472. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  473. data/ext/pg_query/src_port_snprintf.c +15 -18
  474. data/ext/pg_query/src_port_strerror.c +1 -3
  475. data/ext/pg_query/src_port_strlcpy.c +1 -1
  476. data/lib/pg_query/fingerprint.rb +3 -5
  477. data/lib/pg_query/param_refs.rb +2 -2
  478. data/lib/pg_query/parse.rb +5 -7
  479. data/lib/pg_query/parse_error.rb +1 -0
  480. data/lib/pg_query/pg_query_pb.rb +27 -25
  481. data/lib/pg_query/scan.rb +1 -0
  482. data/lib/pg_query/treewalker.rb +38 -15
  483. data/lib/pg_query/truncate.rb +18 -20
  484. data/lib/pg_query/version.rb +1 -1
  485. metadata +31 -82
  486. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  487. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  488. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  489. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
  490. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -54,6 +54,12 @@ case T_GroupingFunc:
54
54
  case T_WindowFunc:
55
55
  OUT_NODE(WindowFunc, WindowFunc, window_func, WINDOW_FUNC, WindowFunc, window_func);
56
56
  break;
57
+ case T_WindowFuncRunCondition:
58
+ OUT_NODE(WindowFuncRunCondition, WindowFuncRunCondition, window_func_run_condition, WINDOW_FUNC_RUN_CONDITION, WindowFuncRunCondition, window_func_run_condition);
59
+ break;
60
+ case T_MergeSupportFunc:
61
+ OUT_NODE(MergeSupportFunc, MergeSupportFunc, merge_support_func, MERGE_SUPPORT_FUNC, MergeSupportFunc, merge_support_func);
62
+ break;
57
63
  case T_SubscriptingRef:
58
64
  OUT_NODE(SubscriptingRef, SubscriptingRef, subscripting_ref, SUBSCRIPTING_REF, SubscriptingRef, subscripting_ref);
59
65
  break;
@@ -153,12 +159,30 @@ case T_JsonConstructorExpr:
153
159
  case T_JsonIsPredicate:
154
160
  OUT_NODE(JsonIsPredicate, JsonIsPredicate, json_is_predicate, JSON_IS_PREDICATE, JsonIsPredicate, json_is_predicate);
155
161
  break;
162
+ case T_JsonBehavior:
163
+ OUT_NODE(JsonBehavior, JsonBehavior, json_behavior, JSON_BEHAVIOR, JsonBehavior, json_behavior);
164
+ break;
165
+ case T_JsonExpr:
166
+ OUT_NODE(JsonExpr, JsonExpr, json_expr, JSON_EXPR, JsonExpr, json_expr);
167
+ break;
168
+ case T_JsonTablePath:
169
+ OUT_NODE(JsonTablePath, JsonTablePath, json_table_path, JSON_TABLE_PATH, JsonTablePath, json_table_path);
170
+ break;
171
+ case T_JsonTablePathScan:
172
+ OUT_NODE(JsonTablePathScan, JsonTablePathScan, json_table_path_scan, JSON_TABLE_PATH_SCAN, JsonTablePathScan, json_table_path_scan);
173
+ break;
174
+ case T_JsonTableSiblingJoin:
175
+ OUT_NODE(JsonTableSiblingJoin, JsonTableSiblingJoin, json_table_sibling_join, JSON_TABLE_SIBLING_JOIN, JsonTableSiblingJoin, json_table_sibling_join);
176
+ break;
156
177
  case T_NullTest:
157
178
  OUT_NODE(NullTest, NullTest, null_test, NULL_TEST, NullTest, null_test);
158
179
  break;
159
180
  case T_BooleanTest:
160
181
  OUT_NODE(BooleanTest, BooleanTest, boolean_test, BOOLEAN_TEST, BooleanTest, boolean_test);
161
182
  break;
183
+ case T_MergeAction:
184
+ OUT_NODE(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
185
+ break;
162
186
  case T_CoerceToDomain:
163
187
  OUT_NODE(CoerceToDomain, CoerceToDomain, coerce_to_domain, COERCE_TO_DOMAIN, CoerceToDomain, coerce_to_domain);
164
188
  break;
@@ -288,6 +312,9 @@ case T_PartitionBoundSpec:
288
312
  case T_PartitionRangeDatum:
289
313
  OUT_NODE(PartitionRangeDatum, PartitionRangeDatum, partition_range_datum, PARTITION_RANGE_DATUM, PartitionRangeDatum, partition_range_datum);
290
314
  break;
315
+ case T_SinglePartitionSpec:
316
+ OUT_NODE(SinglePartitionSpec, SinglePartitionSpec, single_partition_spec, SINGLE_PARTITION_SPEC, SinglePartitionSpec, single_partition_spec);
317
+ break;
291
318
  case T_PartitionCmd:
292
319
  OUT_NODE(PartitionCmd, PartitionCmd, partition_cmd, PARTITION_CMD, PartitionCmd, partition_cmd);
293
320
  break;
@@ -339,18 +366,39 @@ case T_CommonTableExpr:
339
366
  case T_MergeWhenClause:
340
367
  OUT_NODE(MergeWhenClause, MergeWhenClause, merge_when_clause, MERGE_WHEN_CLAUSE, MergeWhenClause, merge_when_clause);
341
368
  break;
342
- case T_MergeAction:
343
- OUT_NODE(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
344
- break;
345
369
  case T_TriggerTransition:
346
370
  OUT_NODE(TriggerTransition, TriggerTransition, trigger_transition, TRIGGER_TRANSITION, TriggerTransition, trigger_transition);
347
371
  break;
348
372
  case T_JsonOutput:
349
373
  OUT_NODE(JsonOutput, JsonOutput, json_output, JSON_OUTPUT, JsonOutput, json_output);
350
374
  break;
375
+ case T_JsonArgument:
376
+ OUT_NODE(JsonArgument, JsonArgument, json_argument, JSON_ARGUMENT, JsonArgument, json_argument);
377
+ break;
378
+ case T_JsonFuncExpr:
379
+ OUT_NODE(JsonFuncExpr, JsonFuncExpr, json_func_expr, JSON_FUNC_EXPR, JsonFuncExpr, json_func_expr);
380
+ break;
381
+ case T_JsonTablePathSpec:
382
+ OUT_NODE(JsonTablePathSpec, JsonTablePathSpec, json_table_path_spec, JSON_TABLE_PATH_SPEC, JsonTablePathSpec, json_table_path_spec);
383
+ break;
384
+ case T_JsonTable:
385
+ OUT_NODE(JsonTable, JsonTable, json_table, JSON_TABLE, JsonTable, json_table);
386
+ break;
387
+ case T_JsonTableColumn:
388
+ OUT_NODE(JsonTableColumn, JsonTableColumn, json_table_column, JSON_TABLE_COLUMN, JsonTableColumn, json_table_column);
389
+ break;
351
390
  case T_JsonKeyValue:
352
391
  OUT_NODE(JsonKeyValue, JsonKeyValue, json_key_value, JSON_KEY_VALUE, JsonKeyValue, json_key_value);
353
392
  break;
393
+ case T_JsonParseExpr:
394
+ OUT_NODE(JsonParseExpr, JsonParseExpr, json_parse_expr, JSON_PARSE_EXPR, JsonParseExpr, json_parse_expr);
395
+ break;
396
+ case T_JsonScalarExpr:
397
+ OUT_NODE(JsonScalarExpr, JsonScalarExpr, json_scalar_expr, JSON_SCALAR_EXPR, JsonScalarExpr, json_scalar_expr);
398
+ break;
399
+ case T_JsonSerializeExpr:
400
+ OUT_NODE(JsonSerializeExpr, JsonSerializeExpr, json_serialize_expr, JSON_SERIALIZE_EXPR, JsonSerializeExpr, json_serialize_expr);
401
+ break;
354
402
  case T_JsonObjectConstructor:
355
403
  OUT_NODE(JsonObjectConstructor, JsonObjectConstructor, json_object_constructor, JSON_OBJECT_CONSTRUCTOR, JsonObjectConstructor, json_object_constructor);
356
404
  break;
@@ -9,6 +9,8 @@ static void _outParam(OUT_TYPE(Param, Param) out_node, const Param *node);
9
9
  static void _outAggref(OUT_TYPE(Aggref, Aggref) out_node, const Aggref *node);
10
10
  static void _outGroupingFunc(OUT_TYPE(GroupingFunc, GroupingFunc) out_node, const GroupingFunc *node);
11
11
  static void _outWindowFunc(OUT_TYPE(WindowFunc, WindowFunc) out_node, const WindowFunc *node);
12
+ static void _outWindowFuncRunCondition(OUT_TYPE(WindowFuncRunCondition, WindowFuncRunCondition) out_node, const WindowFuncRunCondition *node);
13
+ static void _outMergeSupportFunc(OUT_TYPE(MergeSupportFunc, MergeSupportFunc) out_node, const MergeSupportFunc *node);
12
14
  static void _outSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) out_node, const SubscriptingRef *node);
13
15
  static void _outFuncExpr(OUT_TYPE(FuncExpr, FuncExpr) out_node, const FuncExpr *node);
14
16
  static void _outNamedArgExpr(OUT_TYPE(NamedArgExpr, NamedArgExpr) out_node, const NamedArgExpr *node);
@@ -42,8 +44,14 @@ static void _outJsonReturning(OUT_TYPE(JsonReturning, JsonReturning) out_node, c
42
44
  static void _outJsonValueExpr(OUT_TYPE(JsonValueExpr, JsonValueExpr) out_node, const JsonValueExpr *node);
43
45
  static void _outJsonConstructorExpr(OUT_TYPE(JsonConstructorExpr, JsonConstructorExpr) out_node, const JsonConstructorExpr *node);
44
46
  static void _outJsonIsPredicate(OUT_TYPE(JsonIsPredicate, JsonIsPredicate) out_node, const JsonIsPredicate *node);
47
+ static void _outJsonBehavior(OUT_TYPE(JsonBehavior, JsonBehavior) out_node, const JsonBehavior *node);
48
+ static void _outJsonExpr(OUT_TYPE(JsonExpr, JsonExpr) out_node, const JsonExpr *node);
49
+ static void _outJsonTablePath(OUT_TYPE(JsonTablePath, JsonTablePath) out_node, const JsonTablePath *node);
50
+ static void _outJsonTablePathScan(OUT_TYPE(JsonTablePathScan, JsonTablePathScan) out_node, const JsonTablePathScan *node);
51
+ static void _outJsonTableSiblingJoin(OUT_TYPE(JsonTableSiblingJoin, JsonTableSiblingJoin) out_node, const JsonTableSiblingJoin *node);
45
52
  static void _outNullTest(OUT_TYPE(NullTest, NullTest) out_node, const NullTest *node);
46
53
  static void _outBooleanTest(OUT_TYPE(BooleanTest, BooleanTest) out_node, const BooleanTest *node);
54
+ static void _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out_node, const MergeAction *node);
47
55
  static void _outCoerceToDomain(OUT_TYPE(CoerceToDomain, CoerceToDomain) out_node, const CoerceToDomain *node);
48
56
  static void _outCoerceToDomainValue(OUT_TYPE(CoerceToDomainValue, CoerceToDomainValue) out_node, const CoerceToDomainValue *node);
49
57
  static void _outSetToDefault(OUT_TYPE(SetToDefault, SetToDefault) out_node, const SetToDefault *node);
@@ -87,6 +95,7 @@ static void _outPartitionElem(OUT_TYPE(PartitionElem, PartitionElem) out_node, c
87
95
  static void _outPartitionSpec(OUT_TYPE(PartitionSpec, PartitionSpec) out_node, const PartitionSpec *node);
88
96
  static void _outPartitionBoundSpec(OUT_TYPE(PartitionBoundSpec, PartitionBoundSpec) out_node, const PartitionBoundSpec *node);
89
97
  static void _outPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) out_node, const PartitionRangeDatum *node);
98
+ static void _outSinglePartitionSpec(OUT_TYPE(SinglePartitionSpec, SinglePartitionSpec) out_node, const SinglePartitionSpec *node);
90
99
  static void _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out_node, const PartitionCmd *node);
91
100
  static void _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out_node, const RangeTblEntry *node);
92
101
  static void _outRTEPermissionInfo(OUT_TYPE(RTEPermissionInfo, RTEPermissionInfo) out_node, const RTEPermissionInfo *node);
@@ -104,10 +113,17 @@ static void _outCTESearchClause(OUT_TYPE(CTESearchClause, CTESearchClause) out_n
104
113
  static void _outCTECycleClause(OUT_TYPE(CTECycleClause, CTECycleClause) out_node, const CTECycleClause *node);
105
114
  static void _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out_node, const CommonTableExpr *node);
106
115
  static void _outMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) out_node, const MergeWhenClause *node);
107
- static void _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out_node, const MergeAction *node);
108
116
  static void _outTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) out_node, const TriggerTransition *node);
109
117
  static void _outJsonOutput(OUT_TYPE(JsonOutput, JsonOutput) out_node, const JsonOutput *node);
118
+ static void _outJsonArgument(OUT_TYPE(JsonArgument, JsonArgument) out_node, const JsonArgument *node);
119
+ static void _outJsonFuncExpr(OUT_TYPE(JsonFuncExpr, JsonFuncExpr) out_node, const JsonFuncExpr *node);
120
+ static void _outJsonTablePathSpec(OUT_TYPE(JsonTablePathSpec, JsonTablePathSpec) out_node, const JsonTablePathSpec *node);
121
+ static void _outJsonTable(OUT_TYPE(JsonTable, JsonTable) out_node, const JsonTable *node);
122
+ static void _outJsonTableColumn(OUT_TYPE(JsonTableColumn, JsonTableColumn) out_node, const JsonTableColumn *node);
110
123
  static void _outJsonKeyValue(OUT_TYPE(JsonKeyValue, JsonKeyValue) out_node, const JsonKeyValue *node);
124
+ static void _outJsonParseExpr(OUT_TYPE(JsonParseExpr, JsonParseExpr) out_node, const JsonParseExpr *node);
125
+ static void _outJsonScalarExpr(OUT_TYPE(JsonScalarExpr, JsonScalarExpr) out_node, const JsonScalarExpr *node);
126
+ static void _outJsonSerializeExpr(OUT_TYPE(JsonSerializeExpr, JsonSerializeExpr) out_node, const JsonSerializeExpr *node);
111
127
  static void _outJsonObjectConstructor(OUT_TYPE(JsonObjectConstructor, JsonObjectConstructor) out_node, const JsonObjectConstructor *node);
112
128
  static void _outJsonArrayConstructor(OUT_TYPE(JsonArrayConstructor, JsonArrayConstructor) out_node, const JsonArrayConstructor *node);
113
129
  static void _outJsonArrayQueryConstructor(OUT_TYPE(JsonArrayQueryConstructor, JsonArrayQueryConstructor) out_node, const JsonArrayQueryConstructor *node);
@@ -267,6 +283,7 @@ _outRangeVar(OUT_TYPE(RangeVar, RangeVar) out, const RangeVar *node)
267
283
  static void
268
284
  _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out, const TableFunc *node)
269
285
  {
286
+ WRITE_ENUM_FIELD(TableFuncType, functype, functype, functype);
270
287
  WRITE_LIST_FIELD(ns_uris, ns_uris, ns_uris);
271
288
  WRITE_LIST_FIELD(ns_names, ns_names, ns_names);
272
289
  WRITE_NODE_PTR_FIELD(docexpr, docexpr, docexpr);
@@ -277,7 +294,10 @@ _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out, const TableFunc *node)
277
294
  WRITE_LIST_FIELD(colcollations, colcollations, colcollations);
278
295
  WRITE_LIST_FIELD(colexprs, colexprs, colexprs);
279
296
  WRITE_LIST_FIELD(coldefexprs, coldefexprs, coldefexprs);
297
+ WRITE_LIST_FIELD(colvalexprs, colvalexprs, colvalexprs);
298
+ WRITE_LIST_FIELD(passingvalexprs, passingvalexprs, passingvalexprs);
280
299
  WRITE_BITMAPSET_FIELD(notnulls, notnulls, notnulls);
300
+ WRITE_NODE_PTR_FIELD(plan, plan, plan);
281
301
  WRITE_INT_FIELD(ordinalitycol, ordinalitycol, ordinalitycol);
282
302
  WRITE_INT_FIELD(location, location, location);
283
303
  }
@@ -360,12 +380,30 @@ _outWindowFunc(OUT_TYPE(WindowFunc, WindowFunc) out, const WindowFunc *node)
360
380
  WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
361
381
  WRITE_LIST_FIELD(args, args, args);
362
382
  WRITE_NODE_PTR_FIELD(aggfilter, aggfilter, aggfilter);
383
+ WRITE_LIST_FIELD(run_condition, runCondition, runCondition);
363
384
  WRITE_UINT_FIELD(winref, winref, winref);
364
385
  WRITE_BOOL_FIELD(winstar, winstar, winstar);
365
386
  WRITE_BOOL_FIELD(winagg, winagg, winagg);
366
387
  WRITE_INT_FIELD(location, location, location);
367
388
  }
368
389
 
390
+ static void
391
+ _outWindowFuncRunCondition(OUT_TYPE(WindowFuncRunCondition, WindowFuncRunCondition) out, const WindowFuncRunCondition *node)
392
+ {
393
+ WRITE_UINT_FIELD(opno, opno, opno);
394
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
395
+ WRITE_BOOL_FIELD(wfunc_left, wfunc_left, wfunc_left);
396
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
397
+ }
398
+
399
+ static void
400
+ _outMergeSupportFunc(OUT_TYPE(MergeSupportFunc, MergeSupportFunc) out, const MergeSupportFunc *node)
401
+ {
402
+ WRITE_UINT_FIELD(msftype, msftype, msftype);
403
+ WRITE_UINT_FIELD(msfcollid, msfcollid, msfcollid);
404
+ WRITE_INT_FIELD(location, location, location);
405
+ }
406
+
369
407
  static void
370
408
  _outSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) out, const SubscriptingRef *node)
371
409
  {
@@ -714,6 +752,59 @@ _outJsonIsPredicate(OUT_TYPE(JsonIsPredicate, JsonIsPredicate) out, const JsonIs
714
752
  WRITE_INT_FIELD(location, location, location);
715
753
  }
716
754
 
755
+ static void
756
+ _outJsonBehavior(OUT_TYPE(JsonBehavior, JsonBehavior) out, const JsonBehavior *node)
757
+ {
758
+ WRITE_ENUM_FIELD(JsonBehaviorType, btype, btype, btype);
759
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
760
+ WRITE_BOOL_FIELD(coerce, coerce, coerce);
761
+ WRITE_INT_FIELD(location, location, location);
762
+ }
763
+
764
+ static void
765
+ _outJsonExpr(OUT_TYPE(JsonExpr, JsonExpr) out, const JsonExpr *node)
766
+ {
767
+ WRITE_ENUM_FIELD(JsonExprOp, op, op, op);
768
+ WRITE_STRING_FIELD(column_name, column_name, column_name);
769
+ WRITE_NODE_PTR_FIELD(formatted_expr, formatted_expr, formatted_expr);
770
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonFormat, json_format, format, format, format);
771
+ WRITE_NODE_PTR_FIELD(path_spec, path_spec, path_spec);
772
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonReturning, json_returning, returning, returning, returning);
773
+ WRITE_LIST_FIELD(passing_names, passing_names, passing_names);
774
+ WRITE_LIST_FIELD(passing_values, passing_values, passing_values);
775
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_empty, on_empty, on_empty);
776
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_error, on_error, on_error);
777
+ WRITE_BOOL_FIELD(use_io_coercion, use_io_coercion, use_io_coercion);
778
+ WRITE_BOOL_FIELD(use_json_coercion, use_json_coercion, use_json_coercion);
779
+ WRITE_ENUM_FIELD(JsonWrapper, wrapper, wrapper, wrapper);
780
+ WRITE_BOOL_FIELD(omit_quotes, omit_quotes, omit_quotes);
781
+ WRITE_UINT_FIELD(collation, collation, collation);
782
+ WRITE_INT_FIELD(location, location, location);
783
+ }
784
+
785
+ static void
786
+ _outJsonTablePath(OUT_TYPE(JsonTablePath, JsonTablePath) out, const JsonTablePath *node)
787
+ {
788
+ WRITE_STRING_FIELD(name, name, name);
789
+ }
790
+
791
+ static void
792
+ _outJsonTablePathScan(OUT_TYPE(JsonTablePathScan, JsonTablePathScan) out, const JsonTablePathScan *node)
793
+ {
794
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonTablePath, json_table_path, path, path, path);
795
+ WRITE_BOOL_FIELD(error_on_error, errorOnError, errorOnError);
796
+ WRITE_NODE_PTR_FIELD(child, child, child);
797
+ WRITE_INT_FIELD(col_min, colMin, colMin);
798
+ WRITE_INT_FIELD(col_max, colMax, colMax);
799
+ }
800
+
801
+ static void
802
+ _outJsonTableSiblingJoin(OUT_TYPE(JsonTableSiblingJoin, JsonTableSiblingJoin) out, const JsonTableSiblingJoin *node)
803
+ {
804
+ WRITE_NODE_PTR_FIELD(lplan, lplan, lplan);
805
+ WRITE_NODE_PTR_FIELD(rplan, rplan, rplan);
806
+ }
807
+
717
808
  static void
718
809
  _outNullTest(OUT_TYPE(NullTest, NullTest) out, const NullTest *node)
719
810
  {
@@ -731,6 +822,17 @@ _outBooleanTest(OUT_TYPE(BooleanTest, BooleanTest) out, const BooleanTest *node)
731
822
  WRITE_INT_FIELD(location, location, location);
732
823
  }
733
824
 
825
+ static void
826
+ _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out, const MergeAction *node)
827
+ {
828
+ WRITE_ENUM_FIELD(MergeMatchKind, match_kind, matchKind, matchKind);
829
+ WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
830
+ WRITE_ENUM_FIELD(OverridingKind, override, override, override);
831
+ WRITE_NODE_PTR_FIELD(qual, qual, qual);
832
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
833
+ WRITE_LIST_FIELD(update_colnos, updateColnos, updateColnos);
834
+ }
835
+
734
836
  static void
735
837
  _outCoerceToDomain(OUT_TYPE(CoerceToDomain, CoerceToDomain) out, const CoerceToDomain *node)
736
838
  {
@@ -858,7 +960,8 @@ _outQuery(OUT_TYPE(Query, Query) out, const Query *node)
858
960
  WRITE_LIST_FIELD(rteperminfos, rteperminfos, rteperminfos);
859
961
  WRITE_SPECIFIC_NODE_PTR_FIELD(FromExpr, from_expr, jointree, jointree, jointree);
860
962
  WRITE_LIST_FIELD(merge_action_list, mergeActionList, mergeActionList);
861
- WRITE_BOOL_FIELD(merge_use_outer_join, mergeUseOuterJoin, mergeUseOuterJoin);
963
+ WRITE_INT_FIELD(merge_target_relation, mergeTargetRelation, mergeTargetRelation);
964
+ WRITE_NODE_PTR_FIELD(merge_join_condition, mergeJoinCondition, mergeJoinCondition);
862
965
  WRITE_LIST_FIELD(target_list, targetList, targetList);
863
966
  WRITE_ENUM_FIELD(OverridingKind, override, override, override);
864
967
  WRITE_SPECIFIC_NODE_PTR_FIELD(OnConflictExpr, on_conflict_expr, on_conflict, onConflict, onConflict);
@@ -1190,6 +1293,11 @@ _outPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) out,
1190
1293
  WRITE_INT_FIELD(location, location, location);
1191
1294
  }
1192
1295
 
1296
+ static void
1297
+ _outSinglePartitionSpec(OUT_TYPE(SinglePartitionSpec, SinglePartitionSpec) out, const SinglePartitionSpec *node)
1298
+ {
1299
+ }
1300
+
1193
1301
  static void
1194
1302
  _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out, const PartitionCmd *node)
1195
1303
  {
@@ -1201,12 +1309,15 @@ _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out, const PartitionCmd *n
1201
1309
  static void
1202
1310
  _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out, const RangeTblEntry *node)
1203
1311
  {
1312
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
1313
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, eref, eref, eref);
1204
1314
  WRITE_ENUM_FIELD(RTEKind, rtekind, rtekind, rtekind);
1205
1315
  WRITE_UINT_FIELD(relid, relid, relid);
1316
+ WRITE_BOOL_FIELD(inh, inh, inh);
1206
1317
  WRITE_CHAR_FIELD(relkind, relkind, relkind);
1207
1318
  WRITE_INT_FIELD(rellockmode, rellockmode, rellockmode);
1208
- WRITE_SPECIFIC_NODE_PTR_FIELD(TableSampleClause, table_sample_clause, tablesample, tablesample, tablesample);
1209
1319
  WRITE_UINT_FIELD(perminfoindex, perminfoindex, perminfoindex);
1320
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TableSampleClause, table_sample_clause, tablesample, tablesample, tablesample);
1210
1321
  WRITE_SPECIFIC_NODE_PTR_FIELD(Query, query, subquery, subquery, subquery);
1211
1322
  WRITE_BOOL_FIELD(security_barrier, security_barrier, security_barrier);
1212
1323
  WRITE_ENUM_FIELD(JoinType, jointype, jointype, jointype);
@@ -1227,10 +1338,7 @@ _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out, const RangeTblEntr
1227
1338
  WRITE_LIST_FIELD(colcollations, colcollations, colcollations);
1228
1339
  WRITE_STRING_FIELD(enrname, enrname, enrname);
1229
1340
  WRITE_FLOAT_FIELD(enrtuples, enrtuples, enrtuples);
1230
- WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
1231
- WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, eref, eref, eref);
1232
1341
  WRITE_BOOL_FIELD(lateral, lateral, lateral);
1233
- WRITE_BOOL_FIELD(inh, inh, inh);
1234
1342
  WRITE_BOOL_FIELD(in_from_cl, inFromCl, inFromCl);
1235
1343
  WRITE_LIST_FIELD(security_quals, securityQuals, securityQuals);
1236
1344
  }
@@ -1305,7 +1413,6 @@ _outWindowClause(OUT_TYPE(WindowClause, WindowClause) out, const WindowClause *n
1305
1413
  WRITE_INT_FIELD(frame_options, frameOptions, frameOptions);
1306
1414
  WRITE_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
1307
1415
  WRITE_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
1308
- WRITE_LIST_FIELD(run_condition, runCondition, runCondition);
1309
1416
  WRITE_UINT_FIELD(start_in_range_func, startInRangeFunc, startInRangeFunc);
1310
1417
  WRITE_UINT_FIELD(end_in_range_func, endInRangeFunc, endInRangeFunc);
1311
1418
  WRITE_UINT_FIELD(in_range_coll, inRangeColl, inRangeColl);
@@ -1396,7 +1503,7 @@ _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out, const Common
1396
1503
  static void
1397
1504
  _outMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) out, const MergeWhenClause *node)
1398
1505
  {
1399
- WRITE_BOOL_FIELD(matched, matched, matched);
1506
+ WRITE_ENUM_FIELD(MergeMatchKind, match_kind, matchKind, matchKind);
1400
1507
  WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
1401
1508
  WRITE_ENUM_FIELD(OverridingKind, override, override, override);
1402
1509
  WRITE_NODE_PTR_FIELD(condition, condition, condition);
@@ -1404,17 +1511,6 @@ _outMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) out, const MergeW
1404
1511
  WRITE_LIST_FIELD(values, values, values);
1405
1512
  }
1406
1513
 
1407
- static void
1408
- _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out, const MergeAction *node)
1409
- {
1410
- WRITE_BOOL_FIELD(matched, matched, matched);
1411
- WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
1412
- WRITE_ENUM_FIELD(OverridingKind, override, override, override);
1413
- WRITE_NODE_PTR_FIELD(qual, qual, qual);
1414
- WRITE_LIST_FIELD(target_list, targetList, targetList);
1415
- WRITE_LIST_FIELD(update_colnos, updateColnos, updateColnos);
1416
- }
1417
-
1418
1514
  static void
1419
1515
  _outTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) out, const TriggerTransition *node)
1420
1516
  {
@@ -1430,6 +1526,67 @@ _outJsonOutput(OUT_TYPE(JsonOutput, JsonOutput) out, const JsonOutput *node)
1430
1526
  WRITE_SPECIFIC_NODE_PTR_FIELD(JsonReturning, json_returning, returning, returning, returning);
1431
1527
  }
1432
1528
 
1529
+ static void
1530
+ _outJsonArgument(OUT_TYPE(JsonArgument, JsonArgument) out, const JsonArgument *node)
1531
+ {
1532
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, val, val, val);
1533
+ WRITE_STRING_FIELD(name, name, name);
1534
+ }
1535
+
1536
+ static void
1537
+ _outJsonFuncExpr(OUT_TYPE(JsonFuncExpr, JsonFuncExpr) out, const JsonFuncExpr *node)
1538
+ {
1539
+ WRITE_ENUM_FIELD(JsonExprOp, op, op, op);
1540
+ WRITE_STRING_FIELD(column_name, column_name, column_name);
1541
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, context_item, context_item, context_item);
1542
+ WRITE_NODE_PTR_FIELD(pathspec, pathspec, pathspec);
1543
+ WRITE_LIST_FIELD(passing, passing, passing);
1544
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonOutput, json_output, output, output, output);
1545
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_empty, on_empty, on_empty);
1546
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_error, on_error, on_error);
1547
+ WRITE_ENUM_FIELD(JsonWrapper, wrapper, wrapper, wrapper);
1548
+ WRITE_ENUM_FIELD(JsonQuotes, quotes, quotes, quotes);
1549
+ WRITE_INT_FIELD(location, location, location);
1550
+ }
1551
+
1552
+ static void
1553
+ _outJsonTablePathSpec(OUT_TYPE(JsonTablePathSpec, JsonTablePathSpec) out, const JsonTablePathSpec *node)
1554
+ {
1555
+ WRITE_NODE_PTR_FIELD(string, string, string);
1556
+ WRITE_STRING_FIELD(name, name, name);
1557
+ WRITE_INT_FIELD(name_location, name_location, name_location);
1558
+ WRITE_INT_FIELD(location, location, location);
1559
+ }
1560
+
1561
+ static void
1562
+ _outJsonTable(OUT_TYPE(JsonTable, JsonTable) out, const JsonTable *node)
1563
+ {
1564
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, context_item, context_item, context_item);
1565
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonTablePathSpec, json_table_path_spec, pathspec, pathspec, pathspec);
1566
+ WRITE_LIST_FIELD(passing, passing, passing);
1567
+ WRITE_LIST_FIELD(columns, columns, columns);
1568
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_error, on_error, on_error);
1569
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
1570
+ WRITE_BOOL_FIELD(lateral, lateral, lateral);
1571
+ WRITE_INT_FIELD(location, location, location);
1572
+ }
1573
+
1574
+ static void
1575
+ _outJsonTableColumn(OUT_TYPE(JsonTableColumn, JsonTableColumn) out, const JsonTableColumn *node)
1576
+ {
1577
+ WRITE_ENUM_FIELD(JsonTableColumnType, coltype, coltype, coltype);
1578
+ WRITE_STRING_FIELD(name, name, name);
1579
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
1580
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonTablePathSpec, json_table_path_spec, pathspec, pathspec, pathspec);
1581
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonFormat, json_format, format, format, format);
1582
+ WRITE_ENUM_FIELD(JsonWrapper, wrapper, wrapper, wrapper);
1583
+ WRITE_ENUM_FIELD(JsonQuotes, quotes, quotes, quotes);
1584
+ WRITE_LIST_FIELD(columns, columns, columns);
1585
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_empty, on_empty, on_empty);
1586
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonBehavior, json_behavior, on_error, on_error, on_error);
1587
+ WRITE_INT_FIELD(location, location, location);
1588
+ }
1589
+
1433
1590
  static void
1434
1591
  _outJsonKeyValue(OUT_TYPE(JsonKeyValue, JsonKeyValue) out, const JsonKeyValue *node)
1435
1592
  {
@@ -1437,6 +1594,31 @@ _outJsonKeyValue(OUT_TYPE(JsonKeyValue, JsonKeyValue) out, const JsonKeyValue *n
1437
1594
  WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, value, value, value);
1438
1595
  }
1439
1596
 
1597
+ static void
1598
+ _outJsonParseExpr(OUT_TYPE(JsonParseExpr, JsonParseExpr) out, const JsonParseExpr *node)
1599
+ {
1600
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, expr, expr, expr);
1601
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonOutput, json_output, output, output, output);
1602
+ WRITE_BOOL_FIELD(unique_keys, unique_keys, unique_keys);
1603
+ WRITE_INT_FIELD(location, location, location);
1604
+ }
1605
+
1606
+ static void
1607
+ _outJsonScalarExpr(OUT_TYPE(JsonScalarExpr, JsonScalarExpr) out, const JsonScalarExpr *node)
1608
+ {
1609
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
1610
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonOutput, json_output, output, output, output);
1611
+ WRITE_INT_FIELD(location, location, location);
1612
+ }
1613
+
1614
+ static void
1615
+ _outJsonSerializeExpr(OUT_TYPE(JsonSerializeExpr, JsonSerializeExpr) out, const JsonSerializeExpr *node)
1616
+ {
1617
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, json_value_expr, expr, expr, expr);
1618
+ WRITE_SPECIFIC_NODE_PTR_FIELD(JsonOutput, json_output, output, output, output);
1619
+ WRITE_INT_FIELD(location, location, location);
1620
+ }
1621
+
1440
1622
  static void
1441
1623
  _outJsonObjectConstructor(OUT_TYPE(JsonObjectConstructor, JsonObjectConstructor) out, const JsonObjectConstructor *node)
1442
1624
  {
@@ -1541,6 +1723,7 @@ _outMergeStmt(OUT_TYPE(MergeStmt, MergeStmt) out, const MergeStmt *node)
1541
1723
  WRITE_NODE_PTR_FIELD(source_relation, sourceRelation, sourceRelation);
1542
1724
  WRITE_NODE_PTR_FIELD(join_condition, joinCondition, joinCondition);
1543
1725
  WRITE_LIST_FIELD(merge_when_clauses, mergeWhenClauses, mergeWhenClauses);
1726
+ WRITE_LIST_FIELD(returning_list, returningList, returningList);
1544
1727
  WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
1545
1728
  }
1546
1729
 
@@ -1753,11 +1936,13 @@ _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
1753
1936
  WRITE_STRING_FIELD(conname, conname, conname);
1754
1937
  WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
1755
1938
  WRITE_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
1756
- WRITE_INT_FIELD(location, location, location);
1939
+ WRITE_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
1940
+ WRITE_BOOL_FIELD(initially_valid, initially_valid, initially_valid);
1757
1941
  WRITE_BOOL_FIELD(is_no_inherit, is_no_inherit, is_no_inherit);
1758
1942
  WRITE_NODE_PTR_FIELD(raw_expr, raw_expr, raw_expr);
1759
1943
  WRITE_STRING_FIELD(cooked_expr, cooked_expr, cooked_expr);
1760
1944
  WRITE_CHAR_FIELD(generated_when, generated_when, generated_when);
1945
+ WRITE_INT_FIELD(inhcount, inhcount, inhcount);
1761
1946
  WRITE_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
1762
1947
  WRITE_LIST_FIELD(keys, keys, keys);
1763
1948
  WRITE_LIST_FIELD(including, including, including);
@@ -1777,8 +1962,7 @@ _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
1777
1962
  WRITE_LIST_FIELD(fk_del_set_cols, fk_del_set_cols, fk_del_set_cols);
1778
1963
  WRITE_LIST_FIELD(old_conpfeqop, old_conpfeqop, old_conpfeqop);
1779
1964
  WRITE_UINT_FIELD(old_pktable_oid, old_pktable_oid, old_pktable_oid);
1780
- WRITE_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
1781
- WRITE_BOOL_FIELD(initially_valid, initially_valid, initially_valid);
1965
+ WRITE_INT_FIELD(location, location, location);
1782
1966
  }
1783
1967
 
1784
1968
  static void
@@ -2215,7 +2399,7 @@ static void
2215
2399
  _outAlterStatsStmt(OUT_TYPE(AlterStatsStmt, AlterStatsStmt) out, const AlterStatsStmt *node)
2216
2400
  {
2217
2401
  WRITE_LIST_FIELD(defnames, defnames, defnames);
2218
- WRITE_INT_FIELD(stxstattarget, stxstattarget, stxstattarget);
2402
+ WRITE_NODE_PTR_FIELD(stxstattarget, stxstattarget, stxstattarget);
2219
2403
  WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
2220
2404
  }
2221
2405
 
@@ -2372,6 +2556,7 @@ _outTransactionStmt(OUT_TYPE(TransactionStmt, TransactionStmt) out, const Transa
2372
2556
  WRITE_STRING_FIELD(savepoint_name, savepoint_name, savepoint_name);
2373
2557
  WRITE_STRING_FIELD(gid, gid, gid);
2374
2558
  WRITE_BOOL_FIELD(chain, chain, chain);
2559
+ WRITE_INT_FIELD(location, location, location);
2375
2560
  }
2376
2561
 
2377
2562
  static void
@@ -2597,6 +2782,8 @@ static void
2597
2782
  _outDeallocateStmt(OUT_TYPE(DeallocateStmt, DeallocateStmt) out, const DeallocateStmt *node)
2598
2783
  {
2599
2784
  WRITE_STRING_FIELD(name, name, name);
2785
+ WRITE_BOOL_FIELD(isall, isall, isall);
2786
+ WRITE_INT_FIELD(location, location, location);
2600
2787
  }
2601
2788
 
2602
2789
  static void
@@ -9,6 +9,8 @@
9
9
  READ_COND(Aggref, Aggref, aggref, AGGREF, Aggref, aggref);
10
10
  READ_COND(GroupingFunc, GroupingFunc, grouping_func, GROUPING_FUNC, GroupingFunc, grouping_func);
11
11
  READ_COND(WindowFunc, WindowFunc, window_func, WINDOW_FUNC, WindowFunc, window_func);
12
+ READ_COND(WindowFuncRunCondition, WindowFuncRunCondition, window_func_run_condition, WINDOW_FUNC_RUN_CONDITION, WindowFuncRunCondition, window_func_run_condition);
13
+ READ_COND(MergeSupportFunc, MergeSupportFunc, merge_support_func, MERGE_SUPPORT_FUNC, MergeSupportFunc, merge_support_func);
12
14
  READ_COND(SubscriptingRef, SubscriptingRef, subscripting_ref, SUBSCRIPTING_REF, SubscriptingRef, subscripting_ref);
13
15
  READ_COND(FuncExpr, FuncExpr, func_expr, FUNC_EXPR, FuncExpr, func_expr);
14
16
  READ_COND(NamedArgExpr, NamedArgExpr, named_arg_expr, NAMED_ARG_EXPR, NamedArgExpr, named_arg_expr);
@@ -42,8 +44,14 @@
42
44
  READ_COND(JsonValueExpr, JsonValueExpr, json_value_expr, JSON_VALUE_EXPR, JsonValueExpr, json_value_expr);
43
45
  READ_COND(JsonConstructorExpr, JsonConstructorExpr, json_constructor_expr, JSON_CONSTRUCTOR_EXPR, JsonConstructorExpr, json_constructor_expr);
44
46
  READ_COND(JsonIsPredicate, JsonIsPredicate, json_is_predicate, JSON_IS_PREDICATE, JsonIsPredicate, json_is_predicate);
47
+ READ_COND(JsonBehavior, JsonBehavior, json_behavior, JSON_BEHAVIOR, JsonBehavior, json_behavior);
48
+ READ_COND(JsonExpr, JsonExpr, json_expr, JSON_EXPR, JsonExpr, json_expr);
49
+ READ_COND(JsonTablePath, JsonTablePath, json_table_path, JSON_TABLE_PATH, JsonTablePath, json_table_path);
50
+ READ_COND(JsonTablePathScan, JsonTablePathScan, json_table_path_scan, JSON_TABLE_PATH_SCAN, JsonTablePathScan, json_table_path_scan);
51
+ READ_COND(JsonTableSiblingJoin, JsonTableSiblingJoin, json_table_sibling_join, JSON_TABLE_SIBLING_JOIN, JsonTableSiblingJoin, json_table_sibling_join);
45
52
  READ_COND(NullTest, NullTest, null_test, NULL_TEST, NullTest, null_test);
46
53
  READ_COND(BooleanTest, BooleanTest, boolean_test, BOOLEAN_TEST, BooleanTest, boolean_test);
54
+ READ_COND(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
47
55
  READ_COND(CoerceToDomain, CoerceToDomain, coerce_to_domain, COERCE_TO_DOMAIN, CoerceToDomain, coerce_to_domain);
48
56
  READ_COND(CoerceToDomainValue, CoerceToDomainValue, coerce_to_domain_value, COERCE_TO_DOMAIN_VALUE, CoerceToDomainValue, coerce_to_domain_value);
49
57
  READ_COND(SetToDefault, SetToDefault, set_to_default, SET_TO_DEFAULT, SetToDefault, set_to_default);
@@ -87,6 +95,7 @@
87
95
  READ_COND(PartitionSpec, PartitionSpec, partition_spec, PARTITION_SPEC, PartitionSpec, partition_spec);
88
96
  READ_COND(PartitionBoundSpec, PartitionBoundSpec, partition_bound_spec, PARTITION_BOUND_SPEC, PartitionBoundSpec, partition_bound_spec);
89
97
  READ_COND(PartitionRangeDatum, PartitionRangeDatum, partition_range_datum, PARTITION_RANGE_DATUM, PartitionRangeDatum, partition_range_datum);
98
+ READ_COND(SinglePartitionSpec, SinglePartitionSpec, single_partition_spec, SINGLE_PARTITION_SPEC, SinglePartitionSpec, single_partition_spec);
90
99
  READ_COND(PartitionCmd, PartitionCmd, partition_cmd, PARTITION_CMD, PartitionCmd, partition_cmd);
91
100
  READ_COND(RangeTblEntry, RangeTblEntry, range_tbl_entry, RANGE_TBL_ENTRY, RangeTblEntry, range_tbl_entry);
92
101
  READ_COND(RTEPermissionInfo, RTEPermissionInfo, rtepermission_info, RTEPERMISSION_INFO, RTEPermissionInfo, rtepermission_info);
@@ -104,10 +113,17 @@
104
113
  READ_COND(CTECycleClause, CTECycleClause, ctecycle_clause, CTECYCLE_CLAUSE, CTECycleClause, ctecycle_clause);
105
114
  READ_COND(CommonTableExpr, CommonTableExpr, common_table_expr, COMMON_TABLE_EXPR, CommonTableExpr, common_table_expr);
106
115
  READ_COND(MergeWhenClause, MergeWhenClause, merge_when_clause, MERGE_WHEN_CLAUSE, MergeWhenClause, merge_when_clause);
107
- READ_COND(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
108
116
  READ_COND(TriggerTransition, TriggerTransition, trigger_transition, TRIGGER_TRANSITION, TriggerTransition, trigger_transition);
109
117
  READ_COND(JsonOutput, JsonOutput, json_output, JSON_OUTPUT, JsonOutput, json_output);
118
+ READ_COND(JsonArgument, JsonArgument, json_argument, JSON_ARGUMENT, JsonArgument, json_argument);
119
+ READ_COND(JsonFuncExpr, JsonFuncExpr, json_func_expr, JSON_FUNC_EXPR, JsonFuncExpr, json_func_expr);
120
+ READ_COND(JsonTablePathSpec, JsonTablePathSpec, json_table_path_spec, JSON_TABLE_PATH_SPEC, JsonTablePathSpec, json_table_path_spec);
121
+ READ_COND(JsonTable, JsonTable, json_table, JSON_TABLE, JsonTable, json_table);
122
+ READ_COND(JsonTableColumn, JsonTableColumn, json_table_column, JSON_TABLE_COLUMN, JsonTableColumn, json_table_column);
110
123
  READ_COND(JsonKeyValue, JsonKeyValue, json_key_value, JSON_KEY_VALUE, JsonKeyValue, json_key_value);
124
+ READ_COND(JsonParseExpr, JsonParseExpr, json_parse_expr, JSON_PARSE_EXPR, JsonParseExpr, json_parse_expr);
125
+ READ_COND(JsonScalarExpr, JsonScalarExpr, json_scalar_expr, JSON_SCALAR_EXPR, JsonScalarExpr, json_scalar_expr);
126
+ READ_COND(JsonSerializeExpr, JsonSerializeExpr, json_serialize_expr, JSON_SERIALIZE_EXPR, JsonSerializeExpr, json_serialize_expr);
111
127
  READ_COND(JsonObjectConstructor, JsonObjectConstructor, json_object_constructor, JSON_OBJECT_CONSTRUCTOR, JsonObjectConstructor, json_object_constructor);
112
128
  READ_COND(JsonArrayConstructor, JsonArrayConstructor, json_array_constructor, JSON_ARRAY_CONSTRUCTOR, JsonArrayConstructor, json_array_constructor);
113
129
  READ_COND(JsonArrayQueryConstructor, JsonArrayQueryConstructor, json_array_query_constructor, JSON_ARRAY_QUERY_CONSTRUCTOR, JsonArrayQueryConstructor, json_array_query_constructor);