pg_query 2.1.0 → 4.2.1

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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +104 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/extconf.rb +8 -2
  6. data/ext/pg_query/include/access/amapi.h +45 -1
  7. data/ext/pg_query/include/access/attmap.h +1 -1
  8. data/ext/pg_query/include/access/attnum.h +2 -2
  9. data/ext/pg_query/include/access/clog.h +4 -2
  10. data/ext/pg_query/include/access/commit_ts.h +6 -9
  11. data/ext/pg_query/include/access/detoast.h +1 -11
  12. data/ext/pg_query/include/access/genam.h +15 -12
  13. data/ext/pg_query/include/access/gin.h +2 -2
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +75 -87
  16. data/ext/pg_query/include/access/itup.h +7 -1
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +17 -2
  21. data/ext/pg_query/include/access/rmgr.h +30 -3
  22. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  23. data/ext/pg_query/include/access/sdir.h +1 -1
  24. data/ext/pg_query/include/access/skey.h +1 -1
  25. data/ext/pg_query/include/access/stratnum.h +4 -2
  26. data/ext/pg_query/include/access/sysattr.h +1 -1
  27. data/ext/pg_query/include/access/table.h +2 -1
  28. data/ext/pg_query/include/access/tableam.h +272 -20
  29. data/ext/pg_query/include/access/toast_compression.h +73 -0
  30. data/ext/pg_query/include/access/transam.h +123 -13
  31. data/ext/pg_query/include/access/tupconvert.h +1 -1
  32. data/ext/pg_query/include/access/tupdesc.h +1 -1
  33. data/ext/pg_query/include/access/tupmacs.h +3 -3
  34. data/ext/pg_query/include/access/twophase.h +5 -1
  35. data/ext/pg_query/include/access/xact.h +79 -19
  36. data/ext/pg_query/include/access/xlog.h +60 -155
  37. data/ext/pg_query/include/access/xlog_internal.h +50 -14
  38. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  39. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  40. data/ext/pg_query/include/access/xlogreader.h +148 -32
  41. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  42. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  43. data/ext/pg_query/include/c.h +101 -44
  44. data/ext/pg_query/include/catalog/catalog.h +3 -1
  45. data/ext/pg_query/include/catalog/catversion.h +2 -2
  46. data/ext/pg_query/include/catalog/dependency.h +10 -16
  47. data/ext/pg_query/include/catalog/genbki.h +83 -5
  48. data/ext/pg_query/include/catalog/index.h +18 -3
  49. data/ext/pg_query/include/catalog/indexing.h +12 -324
  50. data/ext/pg_query/include/catalog/namespace.h +4 -2
  51. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  52. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  55. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  56. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  57. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  59. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  61. data/ext/pg_query/include/catalog/pg_class.h +45 -15
  62. data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
  63. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  65. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  67. data/ext/pg_query/include/catalog/pg_control.h +5 -5
  68. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  70. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  74. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  75. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  76. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  77. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  78. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  80. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  82. data/ext/pg_query/include/catalog/pg_operator.h +21 -16
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  86. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  87. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  88. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  89. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  90. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  91. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  92. data/ext/pg_query/include/catalog/pg_publication.h +50 -4
  93. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  95. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  96. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  97. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  98. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  99. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  100. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  101. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  102. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  103. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  104. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  105. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  106. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  107. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  108. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  109. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  110. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  111. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  112. data/ext/pg_query/include/catalog/pg_type.h +56 -24
  113. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  114. data/ext/pg_query/include/catalog/storage.h +5 -3
  115. data/ext/pg_query/include/commands/async.h +4 -5
  116. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  117. data/ext/pg_query/include/commands/defrem.h +11 -24
  118. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  119. data/ext/pg_query/include/commands/explain.h +1 -1
  120. data/ext/pg_query/include/commands/prepare.h +1 -1
  121. data/ext/pg_query/include/commands/tablespace.h +3 -1
  122. data/ext/pg_query/include/commands/trigger.h +27 -17
  123. data/ext/pg_query/include/commands/user.h +2 -2
  124. data/ext/pg_query/include/commands/vacuum.h +88 -41
  125. data/ext/pg_query/include/commands/variable.h +1 -1
  126. data/ext/pg_query/include/common/file_perm.h +4 -4
  127. data/ext/pg_query/include/common/hashfn.h +1 -1
  128. data/ext/pg_query/include/common/ip.h +1 -7
  129. data/ext/pg_query/include/common/keywords.h +2 -6
  130. data/ext/pg_query/include/common/kwlookup.h +1 -1
  131. data/ext/pg_query/include/common/pg_prng.h +60 -0
  132. data/ext/pg_query/include/common/relpath.h +2 -2
  133. data/ext/pg_query/include/common/string.h +24 -1
  134. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  135. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  136. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  137. data/ext/pg_query/include/executor/execdesc.h +1 -1
  138. data/ext/pg_query/include/executor/executor.h +65 -22
  139. data/ext/pg_query/include/executor/functions.h +17 -3
  140. data/ext/pg_query/include/executor/instrument.h +33 -16
  141. data/ext/pg_query/include/executor/spi.h +41 -3
  142. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  143. data/ext/pg_query/include/executor/tuptable.h +1 -1
  144. data/ext/pg_query/include/fmgr.h +13 -7
  145. data/ext/pg_query/include/funcapi.h +16 -4
  146. data/ext/pg_query/include/getaddrinfo.h +1 -1
  147. data/ext/pg_query/include/jit/jit.h +11 -11
  148. data/ext/pg_query/include/kwlist_d.h +517 -494
  149. data/ext/pg_query/include/lib/dshash.h +112 -0
  150. data/ext/pg_query/include/lib/ilist.h +20 -1
  151. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  152. data/ext/pg_query/include/lib/simplehash.h +150 -25
  153. data/ext/pg_query/include/lib/sort_template.h +432 -0
  154. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  155. data/ext/pg_query/include/libpq/auth.h +6 -4
  156. data/ext/pg_query/include/libpq/crypt.h +5 -4
  157. data/ext/pg_query/include/libpq/hba.h +43 -4
  158. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  159. data/ext/pg_query/include/libpq/libpq.h +31 -20
  160. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  161. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  162. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  163. data/ext/pg_query/include/mb/pg_wchar.h +106 -23
  164. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  165. data/ext/pg_query/include/miscadmin.h +71 -52
  166. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  167. data/ext/pg_query/include/nodes/execnodes.h +272 -80
  168. data/ext/pg_query/include/nodes/extensible.h +4 -2
  169. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  170. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  171. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  172. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  173. data/ext/pg_query/include/nodes/nodes.h +30 -11
  174. data/ext/pg_query/include/nodes/params.h +1 -1
  175. data/ext/pg_query/include/nodes/parsenodes.h +327 -94
  176. data/ext/pg_query/include/nodes/pathnodes.h +245 -67
  177. data/ext/pg_query/include/nodes/pg_list.h +75 -68
  178. data/ext/pg_query/include/nodes/plannodes.h +128 -30
  179. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  180. data/ext/pg_query/include/nodes/print.h +1 -1
  181. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  182. data/ext/pg_query/include/nodes/value.h +58 -39
  183. data/ext/pg_query/include/optimizer/cost.h +9 -2
  184. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  185. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  186. data/ext/pg_query/include/optimizer/optimizer.h +25 -22
  187. data/ext/pg_query/include/optimizer/paths.h +6 -6
  188. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  189. data/ext/pg_query/include/parser/analyze.h +19 -5
  190. data/ext/pg_query/include/parser/gram.h +947 -913
  191. data/ext/pg_query/include/parser/gramparse.h +1 -1
  192. data/ext/pg_query/include/parser/kwlist.h +463 -453
  193. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  194. data/ext/pg_query/include/parser/parse_coerce.h +4 -1
  195. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  196. data/ext/pg_query/include/parser/parse_func.h +2 -1
  197. data/ext/pg_query/include/parser/parse_node.h +21 -9
  198. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  199. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  200. data/ext/pg_query/include/parser/parse_type.h +1 -1
  201. data/ext/pg_query/include/parser/parser.h +31 -4
  202. data/ext/pg_query/include/parser/parsetree.h +1 -1
  203. data/ext/pg_query/include/parser/scanner.h +1 -1
  204. data/ext/pg_query/include/parser/scansup.h +2 -5
  205. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  206. data/ext/pg_query/include/pg_config.h +94 -46
  207. data/ext/pg_query/include/pg_config_manual.h +74 -21
  208. data/ext/pg_query/include/pg_getopt.h +6 -6
  209. data/ext/pg_query/include/pg_query.h +5 -4
  210. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  211. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  212. data/ext/pg_query/include/pg_query_fingerprint_defs.c +1220 -422
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
  217. data/ext/pg_query/include/pg_trace.h +1 -1
  218. data/ext/pg_query/include/pgstat.h +449 -1237
  219. data/ext/pg_query/include/pgtime.h +14 -4
  220. data/ext/pg_query/include/pl_gram.h +126 -128
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  225. data/ext/pg_query/include/plerrcodes.h +9 -1
  226. data/ext/pg_query/include/plpgsql.h +52 -54
  227. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  228. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  229. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  230. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  231. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  232. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  233. data/ext/pg_query/include/port/atomics.h +1 -1
  234. data/ext/pg_query/include/port/pg_bitutils.h +88 -12
  235. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  236. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  237. data/ext/pg_query/include/port.h +72 -43
  238. data/ext/pg_query/include/portability/instr_time.h +1 -1
  239. data/ext/pg_query/include/postgres.h +60 -16
  240. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  241. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  244. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  245. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  246. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  247. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  248. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  249. data/ext/pg_query/include/postmaster/startup.h +39 -0
  250. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  251. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  252. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1422 -916
  253. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  254. data/ext/pg_query/include/regex/regex.h +18 -16
  255. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  256. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  257. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  258. data/ext/pg_query/include/replication/origin.h +7 -7
  259. data/ext/pg_query/include/replication/reorderbuffer.h +262 -44
  260. data/ext/pg_query/include/replication/slot.h +23 -12
  261. data/ext/pg_query/include/replication/syncrep.h +5 -5
  262. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  263. data/ext/pg_query/include/replication/walsender.h +8 -8
  264. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  265. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  266. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  267. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  268. data/ext/pg_query/include/storage/backendid.h +3 -3
  269. data/ext/pg_query/include/storage/block.h +4 -10
  270. data/ext/pg_query/include/storage/buf.h +1 -1
  271. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  272. data/ext/pg_query/include/storage/bufpage.h +6 -8
  273. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  274. data/ext/pg_query/include/storage/dsm.h +4 -1
  275. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  276. data/ext/pg_query/include/storage/fd.h +33 -3
  277. data/ext/pg_query/include/storage/fileset.h +40 -0
  278. data/ext/pg_query/include/storage/ipc.h +4 -1
  279. data/ext/pg_query/include/storage/item.h +1 -1
  280. data/ext/pg_query/include/storage/itemid.h +1 -1
  281. data/ext/pg_query/include/storage/itemptr.h +3 -1
  282. data/ext/pg_query/include/storage/large_object.h +2 -2
  283. data/ext/pg_query/include/storage/latch.h +9 -13
  284. data/ext/pg_query/include/storage/lmgr.h +2 -1
  285. data/ext/pg_query/include/storage/lock.h +17 -13
  286. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  287. data/ext/pg_query/include/storage/lwlock.h +6 -32
  288. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  289. data/ext/pg_query/include/storage/off.h +1 -1
  290. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  291. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  292. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  293. data/ext/pg_query/include/storage/predicate.h +4 -4
  294. data/ext/pg_query/include/storage/proc.h +183 -55
  295. data/ext/pg_query/include/storage/procarray.h +98 -0
  296. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  297. data/ext/pg_query/include/storage/procsignal.h +3 -7
  298. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  299. data/ext/pg_query/include/storage/s_lock.h +67 -4
  300. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  301. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  302. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  303. data/ext/pg_query/include/storage/shmem.h +1 -1
  304. data/ext/pg_query/include/storage/sinval.h +3 -3
  305. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  306. data/ext/pg_query/include/storage/smgr.h +10 -8
  307. data/ext/pg_query/include/storage/spin.h +2 -2
  308. data/ext/pg_query/include/storage/standby.h +13 -6
  309. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  310. data/ext/pg_query/include/storage/sync.h +7 -3
  311. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  312. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  313. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  314. data/ext/pg_query/include/tcop/dest.h +1 -1
  315. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  316. data/ext/pg_query/include/tcop/pquery.h +7 -1
  317. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  318. data/ext/pg_query/include/tcop/utility.h +7 -3
  319. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  320. data/ext/pg_query/include/utils/acl.h +24 -3
  321. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  322. data/ext/pg_query/include/utils/array.h +7 -2
  323. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  324. data/ext/pg_query/include/utils/backend_status.h +321 -0
  325. data/ext/pg_query/include/utils/builtins.h +11 -11
  326. data/ext/pg_query/include/utils/bytea.h +3 -2
  327. data/ext/pg_query/include/utils/catcache.h +1 -1
  328. data/ext/pg_query/include/utils/date.h +1 -1
  329. data/ext/pg_query/include/utils/datetime.h +8 -7
  330. data/ext/pg_query/include/utils/datum.h +9 -1
  331. data/ext/pg_query/include/utils/dsa.h +1 -1
  332. data/ext/pg_query/include/utils/dynahash.h +4 -3
  333. data/ext/pg_query/include/utils/elog.h +52 -21
  334. data/ext/pg_query/include/utils/errcodes.h +2 -0
  335. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  336. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  337. data/ext/pg_query/include/utils/float.h +7 -7
  338. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  339. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  340. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  341. data/ext/pg_query/include/utils/guc.h +69 -43
  342. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  343. data/ext/pg_query/include/utils/hsearch.h +15 -11
  344. data/ext/pg_query/include/utils/inval.h +5 -1
  345. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  346. data/ext/pg_query/include/utils/memdebug.h +1 -1
  347. data/ext/pg_query/include/utils/memutils.h +8 -3
  348. data/ext/pg_query/include/utils/numeric.h +19 -5
  349. data/ext/pg_query/include/utils/palloc.h +25 -3
  350. data/ext/pg_query/include/utils/partcache.h +1 -1
  351. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  352. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  353. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  354. data/ext/pg_query/include/utils/pidfile.h +1 -1
  355. data/ext/pg_query/include/utils/plancache.h +6 -5
  356. data/ext/pg_query/include/utils/portal.h +12 -1
  357. data/ext/pg_query/include/utils/ps_status.h +1 -1
  358. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  359. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  360. data/ext/pg_query/include/utils/regproc.h +14 -3
  361. data/ext/pg_query/include/utils/rel.h +71 -20
  362. data/ext/pg_query/include/utils/relcache.h +9 -7
  363. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  364. data/ext/pg_query/include/utils/resowner.h +1 -1
  365. data/ext/pg_query/include/utils/rls.h +2 -2
  366. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  367. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  368. data/ext/pg_query/include/utils/snapmgr.h +35 -14
  369. data/ext/pg_query/include/utils/snapshot.h +14 -1
  370. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  371. data/ext/pg_query/include/utils/syscache.h +6 -1
  372. data/ext/pg_query/include/utils/timeout.h +11 -4
  373. data/ext/pg_query/include/utils/timestamp.h +6 -5
  374. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  375. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  376. data/ext/pg_query/include/utils/typcache.h +24 -17
  377. data/ext/pg_query/include/utils/tzparser.h +1 -1
  378. data/ext/pg_query/include/utils/varlena.h +5 -3
  379. data/ext/pg_query/include/utils/wait_event.h +289 -0
  380. data/ext/pg_query/include/utils/xml.h +4 -4
  381. data/ext/pg_query/pg_query.pb-c.c +4318 -2307
  382. data/ext/pg_query/pg_query_deparse.c +1114 -381
  383. data/ext/pg_query/pg_query_fingerprint.c +46 -10
  384. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  385. data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
  386. data/ext/pg_query/pg_query_normalize.c +163 -20
  387. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +65 -16
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  390. data/ext/pg_query/pg_query_parse.c +1 -1
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +79 -16
  392. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  393. data/ext/pg_query/pg_query_ruby.c +1 -1
  394. data/ext/pg_query/pg_query_scan.c +2 -1
  395. data/ext/pg_query/pg_query_split.c +3 -2
  396. data/ext/pg_query/src_backend_catalog_namespace.c +21 -9
  397. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  398. data/ext/pg_query/src_backend_commands_define.c +11 -1
  399. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  400. data/ext/pg_query/src_backend_nodes_copyfuncs.c +424 -109
  401. data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
  402. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  403. data/ext/pg_query/src_backend_nodes_list.c +86 -11
  404. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  405. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  406. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  407. data/ext/pg_query/src_backend_parser_gram.c +33890 -31262
  408. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  409. data/ext/pg_query/src_backend_parser_scan.c +644 -441
  410. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  411. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  412. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  413. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  414. data/ext/pg_query/src_backend_tcop_postgres.c +73 -24
  415. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  416. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  417. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  418. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  419. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +109 -15
  420. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  421. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  422. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  423. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  424. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  425. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  426. data/ext/pg_query/src_backend_utils_misc_guc.c +207 -45
  427. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  428. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  429. data/ext/pg_query/src_common_encnames.c +1 -1
  430. data/ext/pg_query/src_common_hashfn.c +3 -3
  431. data/ext/pg_query/src_common_keywords.c +15 -2
  432. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  433. data/ext/pg_query/src_common_kwlookup.c +1 -1
  434. data/ext/pg_query/src_common_pg_prng.c +152 -0
  435. data/ext/pg_query/src_common_psprintf.c +1 -1
  436. data/ext/pg_query/src_common_string.c +7 -1
  437. data/ext/pg_query/src_common_stringinfo.c +1 -1
  438. data/ext/pg_query/src_common_wchar.c +712 -109
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  446. data/ext/pg_query/src_port_pg_bitutils.c +41 -52
  447. data/ext/pg_query/src_port_pgsleep.c +1 -1
  448. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  449. data/ext/pg_query/src_port_qsort.c +12 -224
  450. data/ext/pg_query/src_port_snprintf.c +46 -20
  451. data/ext/pg_query/src_port_strerror.c +9 -19
  452. data/ext/pg_query/src_port_strnlen.c +1 -1
  453. data/lib/pg_query/deparse.rb +7 -1
  454. data/lib/pg_query/filter_columns.rb +6 -4
  455. data/lib/pg_query/fingerprint.rb +18 -3
  456. data/lib/pg_query/node.rb +2 -2
  457. data/lib/pg_query/param_refs.rb +1 -1
  458. data/lib/pg_query/parse.rb +87 -51
  459. data/lib/pg_query/pg_query_pb.rb +1109 -942
  460. data/lib/pg_query/treewalker.rb +6 -0
  461. data/lib/pg_query/truncate.rb +54 -8
  462. data/lib/pg_query/version.rb +1 -1
  463. metadata +29 -18
  464. data/ext/pg_query/include/access/xloginsert.h +0 -64
  465. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  466. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  467. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  468. data/ext/pg_query/include/parser/parse_target.h +0 -46
  469. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  470. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  471. data/ext/pg_query/src_port_erand48.c +0 -127
  472. data/ext/pg_query/src_port_random.c +0 -31
@@ -1,19 +1,19 @@
1
1
  // This file is autogenerated by ./scripts/generate_protobuf_and_funcs.rb
2
2
 
3
3
  case T_Integer:
4
- OUT_NODE(Integer, Integer, integer, INTEGER, Value, integer);
4
+ OUT_NODE(Integer, Integer, integer, INTEGER, Integer, integer);
5
+ break;
6
+ case T_Boolean:
7
+ OUT_NODE(Boolean, Boolean, boolean, BOOLEAN, Boolean, boolean);
5
8
  break;
6
9
  case T_Float:
7
- OUT_NODE(Float, Float, float, FLOAT, Value, float_);
10
+ OUT_NODE(Float, Float, float, FLOAT, Float, float_);
8
11
  break;
9
12
  case T_String:
10
- OUT_NODE(String, String, string, STRING, Value, string);
13
+ OUT_NODE(String, String, string, STRING, String, string);
11
14
  break;
12
15
  case T_BitString:
13
- OUT_NODE(BitString, BitString, bit_string, BIT_STRING, Value, bit_string);
14
- break;
15
- case T_Null:
16
- OUT_NODE(Null, Null, null, NULL, Value, null);
16
+ OUT_NODE(BitString, BitString, bit_string, BIT_STRING, BitString, bit_string);
17
17
  break;
18
18
  case T_List:
19
19
  OUT_NODE(List, List, list, LIST, List, list);
@@ -24,6 +24,9 @@ case T_IntList:
24
24
  case T_OidList:
25
25
  OUT_NODE(OidList, OidList, oid_list, OID_LIST, List, oid_list);
26
26
  break;
27
+ case T_A_Const:
28
+ OUT_NODE(A_Const, AConst, a__const, A_CONST, A_Const, a_const);
29
+ break;
27
30
  case T_Alias:
28
31
  OUT_NODE(Alias, Alias, alias, ALIAS, Alias, alias);
29
32
  break;
@@ -33,9 +36,6 @@ case T_RangeVar:
33
36
  case T_TableFunc:
34
37
  OUT_NODE(TableFunc, TableFunc, table_func, TABLE_FUNC, TableFunc, table_func);
35
38
  break;
36
- case T_Expr:
37
- OUT_NODE(Expr, Expr, expr, EXPR, Expr, expr);
38
- break;
39
39
  case T_Var:
40
40
  OUT_NODE(Var, Var, var, VAR, Var, var);
41
41
  break;
@@ -177,6 +177,9 @@ case T_OnConflictExpr:
177
177
  case T_IntoClause:
178
178
  OUT_NODE(IntoClause, IntoClause, into_clause, INTO_CLAUSE, IntoClause, into_clause);
179
179
  break;
180
+ case T_MergeAction:
181
+ OUT_NODE(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
182
+ break;
180
183
  case T_RawStmt:
181
184
  OUT_NODE(RawStmt, RawStmt, raw_stmt, RAW_STMT, RawStmt, raw_stmt);
182
185
  break;
@@ -192,9 +195,18 @@ case T_DeleteStmt:
192
195
  case T_UpdateStmt:
193
196
  OUT_NODE(UpdateStmt, UpdateStmt, update_stmt, UPDATE_STMT, UpdateStmt, update_stmt);
194
197
  break;
198
+ case T_MergeStmt:
199
+ OUT_NODE(MergeStmt, MergeStmt, merge_stmt, MERGE_STMT, MergeStmt, merge_stmt);
200
+ break;
195
201
  case T_SelectStmt:
196
202
  OUT_NODE(SelectStmt, SelectStmt, select_stmt, SELECT_STMT, SelectStmt, select_stmt);
197
203
  break;
204
+ case T_ReturnStmt:
205
+ OUT_NODE(ReturnStmt, ReturnStmt, return_stmt, RETURN_STMT, ReturnStmt, return_stmt);
206
+ break;
207
+ case T_PLAssignStmt:
208
+ OUT_NODE(PLAssignStmt, PLAssignStmt, plassign_stmt, PLASSIGN_STMT, PLAssignStmt, plassign_stmt);
209
+ break;
198
210
  case T_AlterTableStmt:
199
211
  OUT_NODE(AlterTableStmt, AlterTableStmt, alter_table_stmt, ALTER_TABLE_STMT, AlterTableStmt, alter_table_stmt);
200
212
  break;
@@ -345,6 +357,9 @@ case T_CreateSchemaStmt:
345
357
  case T_AlterDatabaseStmt:
346
358
  OUT_NODE(AlterDatabaseStmt, AlterDatabaseStmt, alter_database_stmt, ALTER_DATABASE_STMT, AlterDatabaseStmt, alter_database_stmt);
347
359
  break;
360
+ case T_AlterDatabaseRefreshCollStmt:
361
+ OUT_NODE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt, ALTER_DATABASE_REFRESH_COLL_STMT, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt);
362
+ break;
348
363
  case T_AlterDatabaseSetStmt:
349
364
  OUT_NODE(AlterDatabaseSetStmt, AlterDatabaseSetStmt, alter_database_set_stmt, ALTER_DATABASE_SET_STMT, AlterDatabaseSetStmt, alter_database_set_stmt);
350
365
  break;
@@ -531,9 +546,6 @@ case T_ColumnRef:
531
546
  case T_ParamRef:
532
547
  OUT_NODE(ParamRef, ParamRef, param_ref, PARAM_REF, ParamRef, param_ref);
533
548
  break;
534
- case T_A_Const:
535
- OUT_NODE(A_Const, AConst, a__const, A_CONST, A_Const, a_const);
536
- break;
537
549
  case T_FuncCall:
538
550
  OUT_NODE(FuncCall, FuncCall, func_call, FUNC_CALL, FuncCall, func_call);
539
551
  break;
@@ -591,6 +603,9 @@ case T_ColumnDef:
591
603
  case T_IndexElem:
592
604
  OUT_NODE(IndexElem, IndexElem, index_elem, INDEX_ELEM, IndexElem, index_elem);
593
605
  break;
606
+ case T_StatsElem:
607
+ OUT_NODE(StatsElem, StatsElem, stats_elem, STATS_ELEM, StatsElem, stats_elem);
608
+ break;
594
609
  case T_Constraint:
595
610
  OUT_NODE(Constraint, Constraint, constraint, CONSTRAINT, Constraint, constraint);
596
611
  break;
@@ -651,9 +666,18 @@ case T_InferClause:
651
666
  case T_OnConflictClause:
652
667
  OUT_NODE(OnConflictClause, OnConflictClause, on_conflict_clause, ON_CONFLICT_CLAUSE, OnConflictClause, on_conflict_clause);
653
668
  break;
669
+ case T_CTESearchClause:
670
+ OUT_NODE(CTESearchClause, CTESearchClause, ctesearch_clause, CTESEARCH_CLAUSE, CTESearchClause, ctesearch_clause);
671
+ break;
672
+ case T_CTECycleClause:
673
+ OUT_NODE(CTECycleClause, CTECycleClause, ctecycle_clause, CTECYCLE_CLAUSE, CTECycleClause, ctecycle_clause);
674
+ break;
654
675
  case T_CommonTableExpr:
655
676
  OUT_NODE(CommonTableExpr, CommonTableExpr, common_table_expr, COMMON_TABLE_EXPR, CommonTableExpr, common_table_expr);
656
677
  break;
678
+ case T_MergeWhenClause:
679
+ OUT_NODE(MergeWhenClause, MergeWhenClause, merge_when_clause, MERGE_WHEN_CLAUSE, MergeWhenClause, merge_when_clause);
680
+ break;
657
681
  case T_RoleSpec:
658
682
  OUT_NODE(RoleSpec, RoleSpec, role_spec, ROLE_SPEC, RoleSpec, role_spec);
659
683
  break;
@@ -678,6 +702,12 @@ case T_PartitionCmd:
678
702
  case T_VacuumRelation:
679
703
  OUT_NODE(VacuumRelation, VacuumRelation, vacuum_relation, VACUUM_RELATION, VacuumRelation, vacuum_relation);
680
704
  break;
705
+ case T_PublicationObjSpec:
706
+ OUT_NODE(PublicationObjSpec, PublicationObjSpec, publication_obj_spec, PUBLICATION_OBJ_SPEC, PublicationObjSpec, publication_obj_spec);
707
+ break;
708
+ case T_PublicationTable:
709
+ OUT_NODE(PublicationTable, PublicationTable, publication_table, PUBLICATION_TABLE, PublicationTable, publication_table);
710
+ break;
681
711
  case T_InlineCodeBlock:
682
712
  OUT_NODE(InlineCodeBlock, InlineCodeBlock, inline_code_block, INLINE_CODE_BLOCK, InlineCodeBlock, inline_code_block);
683
713
  break;
@@ -3,7 +3,6 @@
3
3
  static void _outAlias(OUT_TYPE(Alias, Alias) out_node, const Alias *node);
4
4
  static void _outRangeVar(OUT_TYPE(RangeVar, RangeVar) out_node, const RangeVar *node);
5
5
  static void _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out_node, const TableFunc *node);
6
- static void _outExpr(OUT_TYPE(Expr, Expr) out_node, const Expr *node);
7
6
  static void _outVar(OUT_TYPE(Var, Var) out_node, const Var *node);
8
7
  static void _outParam(OUT_TYPE(Param, Param) out_node, const Param *node);
9
8
  static void _outAggref(OUT_TYPE(Aggref, Aggref) out_node, const Aggref *node);
@@ -51,12 +50,16 @@ static void _outJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) out_node, const JoinExpr *
51
50
  static void _outFromExpr(OUT_TYPE(FromExpr, FromExpr) out_node, const FromExpr *node);
52
51
  static void _outOnConflictExpr(OUT_TYPE(OnConflictExpr, OnConflictExpr) out_node, const OnConflictExpr *node);
53
52
  static void _outIntoClause(OUT_TYPE(IntoClause, IntoClause) out_node, const IntoClause *node);
53
+ static void _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out_node, const MergeAction *node);
54
54
  static void _outRawStmt(OUT_TYPE(RawStmt, RawStmt) out_node, const RawStmt *node);
55
55
  static void _outQuery(OUT_TYPE(Query, Query) out_node, const Query *node);
56
56
  static void _outInsertStmt(OUT_TYPE(InsertStmt, InsertStmt) out_node, const InsertStmt *node);
57
57
  static void _outDeleteStmt(OUT_TYPE(DeleteStmt, DeleteStmt) out_node, const DeleteStmt *node);
58
58
  static void _outUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) out_node, const UpdateStmt *node);
59
+ static void _outMergeStmt(OUT_TYPE(MergeStmt, MergeStmt) out_node, const MergeStmt *node);
59
60
  static void _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out_node, const SelectStmt *node);
61
+ static void _outReturnStmt(OUT_TYPE(ReturnStmt, ReturnStmt) out_node, const ReturnStmt *node);
62
+ static void _outPLAssignStmt(OUT_TYPE(PLAssignStmt, PLAssignStmt) out_node, const PLAssignStmt *node);
60
63
  static void _outAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) out_node, const AlterTableStmt *node);
61
64
  static void _outAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) out_node, const AlterTableCmd *node);
62
65
  static void _outAlterDomainStmt(OUT_TYPE(AlterDomainStmt, AlterDomainStmt) out_node, const AlterDomainStmt *node);
@@ -107,6 +110,7 @@ static void _outReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) out_node, const R
107
110
  static void _outCheckPointStmt(OUT_TYPE(CheckPointStmt, CheckPointStmt) out_node, const CheckPointStmt *node);
108
111
  static void _outCreateSchemaStmt(OUT_TYPE(CreateSchemaStmt, CreateSchemaStmt) out_node, const CreateSchemaStmt *node);
109
112
  static void _outAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) out_node, const AlterDatabaseStmt *node);
113
+ static void _outAlterDatabaseRefreshCollStmt(OUT_TYPE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt) out_node, const AlterDatabaseRefreshCollStmt *node);
110
114
  static void _outAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) out_node, const AlterDatabaseSetStmt *node);
111
115
  static void _outAlterRoleSetStmt(OUT_TYPE(AlterRoleSetStmt, AlterRoleSetStmt) out_node, const AlterRoleSetStmt *node);
112
116
  static void _outCreateConversionStmt(OUT_TYPE(CreateConversionStmt, CreateConversionStmt) out_node, const CreateConversionStmt *node);
@@ -169,7 +173,6 @@ static void _outAlterStatsStmt(OUT_TYPE(AlterStatsStmt, AlterStatsStmt) out_node
169
173
  static void _outAExpr(OUT_TYPE(A_Expr, AExpr) out_node, const A_Expr *node);
170
174
  static void _outColumnRef(OUT_TYPE(ColumnRef, ColumnRef) out_node, const ColumnRef *node);
171
175
  static void _outParamRef(OUT_TYPE(ParamRef, ParamRef) out_node, const ParamRef *node);
172
- static void _outAConst(OUT_TYPE(A_Const, AConst) out_node, const A_Const *node);
173
176
  static void _outFuncCall(OUT_TYPE(FuncCall, FuncCall) out_node, const FuncCall *node);
174
177
  static void _outAStar(OUT_TYPE(A_Star, AStar) out_node, const A_Star *node);
175
178
  static void _outAIndices(OUT_TYPE(A_Indices, AIndices) out_node, const A_Indices *node);
@@ -189,6 +192,7 @@ static void _outRangeTableFuncCol(OUT_TYPE(RangeTableFuncCol, RangeTableFuncCol)
189
192
  static void _outTypeName(OUT_TYPE(TypeName, TypeName) out_node, const TypeName *node);
190
193
  static void _outColumnDef(OUT_TYPE(ColumnDef, ColumnDef) out_node, const ColumnDef *node);
191
194
  static void _outIndexElem(OUT_TYPE(IndexElem, IndexElem) out_node, const IndexElem *node);
195
+ static void _outStatsElem(OUT_TYPE(StatsElem, StatsElem) out_node, const StatsElem *node);
192
196
  static void _outConstraint(OUT_TYPE(Constraint, Constraint) out_node, const Constraint *node);
193
197
  static void _outDefElem(OUT_TYPE(DefElem, DefElem) out_node, const DefElem *node);
194
198
  static void _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out_node, const RangeTblEntry *node);
@@ -209,7 +213,10 @@ static void _outXmlSerialize(OUT_TYPE(XmlSerialize, XmlSerialize) out_node, cons
209
213
  static void _outWithClause(OUT_TYPE(WithClause, WithClause) out_node, const WithClause *node);
210
214
  static void _outInferClause(OUT_TYPE(InferClause, InferClause) out_node, const InferClause *node);
211
215
  static void _outOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) out_node, const OnConflictClause *node);
216
+ static void _outCTESearchClause(OUT_TYPE(CTESearchClause, CTESearchClause) out_node, const CTESearchClause *node);
217
+ static void _outCTECycleClause(OUT_TYPE(CTECycleClause, CTECycleClause) out_node, const CTECycleClause *node);
212
218
  static void _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out_node, const CommonTableExpr *node);
219
+ static void _outMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) out_node, const MergeWhenClause *node);
213
220
  static void _outRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) out_node, const RoleSpec *node);
214
221
  static void _outTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) out_node, const TriggerTransition *node);
215
222
  static void _outPartitionElem(OUT_TYPE(PartitionElem, PartitionElem) out_node, const PartitionElem *node);
@@ -218,6 +225,8 @@ static void _outPartitionBoundSpec(OUT_TYPE(PartitionBoundSpec, PartitionBoundSp
218
225
  static void _outPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) out_node, const PartitionRangeDatum *node);
219
226
  static void _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out_node, const PartitionCmd *node);
220
227
  static void _outVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) out_node, const VacuumRelation *node);
228
+ static void _outPublicationObjSpec(OUT_TYPE(PublicationObjSpec, PublicationObjSpec) out_node, const PublicationObjSpec *node);
229
+ static void _outPublicationTable(OUT_TYPE(PublicationTable, PublicationTable) out_node, const PublicationTable *node);
221
230
  static void _outInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) out_node, const InlineCodeBlock *node);
222
231
  static void _outCallContext(OUT_TYPE(CallContext, CallContext) out_node, const CallContext *node);
223
232
 
@@ -259,15 +268,10 @@ _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out, const TableFunc *node)
259
268
  WRITE_INT_FIELD(location, location, location);
260
269
  }
261
270
 
262
- static void
263
- _outExpr(OUT_TYPE(Expr, Expr) out, const Expr *node)
264
- {
265
- }
266
-
267
271
  static void
268
272
  _outVar(OUT_TYPE(Var, Var) out, const Var *node)
269
273
  {
270
- WRITE_UINT_FIELD(varno, varno, varno);
274
+ WRITE_INT_FIELD(varno, varno, varno);
271
275
  WRITE_INT_FIELD(varattno, varattno, varattno);
272
276
  WRITE_UINT_FIELD(vartype, vartype, vartype);
273
277
  WRITE_INT_FIELD(vartypmod, vartypmod, vartypmod);
@@ -308,6 +312,8 @@ _outAggref(OUT_TYPE(Aggref, Aggref) out, const Aggref *node)
308
312
  WRITE_CHAR_FIELD(aggkind, aggkind, aggkind);
309
313
  WRITE_UINT_FIELD(agglevelsup, agglevelsup, agglevelsup);
310
314
  WRITE_ENUM_FIELD(AggSplit, aggsplit, aggsplit, aggsplit);
315
+ WRITE_INT_FIELD(aggno, aggno, aggno);
316
+ WRITE_INT_FIELD(aggtransno, aggtransno, aggtransno);
311
317
  WRITE_INT_FIELD(location, location, location);
312
318
  }
313
319
 
@@ -341,6 +347,7 @@ _outSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) out, const Subscr
341
347
  {
342
348
  WRITE_UINT_FIELD(refcontainertype, refcontainertype, refcontainertype);
343
349
  WRITE_UINT_FIELD(refelemtype, refelemtype, refelemtype);
350
+ WRITE_UINT_FIELD(refrestype, refrestype, refrestype);
344
351
  WRITE_INT_FIELD(reftypmod, reftypmod, reftypmod);
345
352
  WRITE_UINT_FIELD(refcollid, refcollid, refcollid);
346
353
  WRITE_LIST_FIELD(refupperindexpr, refupperindexpr, refupperindexpr);
@@ -416,6 +423,8 @@ _outScalarArrayOpExpr(OUT_TYPE(ScalarArrayOpExpr, ScalarArrayOpExpr) out, const
416
423
  {
417
424
  WRITE_UINT_FIELD(opno, opno, opno);
418
425
  WRITE_UINT_FIELD(opfuncid, opfuncid, opfuncid);
426
+ WRITE_UINT_FIELD(hashfuncid, hashfuncid, hashfuncid);
427
+ WRITE_UINT_FIELD(negfuncid, negfuncid, negfuncid);
419
428
  WRITE_BOOL_FIELD(use_or, useOr, useOr);
420
429
  WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
421
430
  WRITE_LIST_FIELD(args, args, args);
@@ -734,6 +743,7 @@ _outJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) out, const JoinExpr *node)
734
743
  WRITE_NODE_PTR_FIELD(larg, larg, larg);
735
744
  WRITE_NODE_PTR_FIELD(rarg, rarg, rarg);
736
745
  WRITE_LIST_FIELD(using_clause, usingClause, usingClause);
746
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, join_using_alias, join_using_alias, join_using_alias);
737
747
  WRITE_NODE_PTR_FIELD(quals, quals, quals);
738
748
  WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
739
749
  WRITE_INT_FIELD(rtindex, rtindex, rtindex);
@@ -772,6 +782,17 @@ _outIntoClause(OUT_TYPE(IntoClause, IntoClause) out, const IntoClause *node)
772
782
  WRITE_BOOL_FIELD(skip_data, skipData, skipData);
773
783
  }
774
784
 
785
+ static void
786
+ _outMergeAction(OUT_TYPE(MergeAction, MergeAction) out, const MergeAction *node)
787
+ {
788
+ WRITE_BOOL_FIELD(matched, matched, matched);
789
+ WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
790
+ WRITE_ENUM_FIELD(OverridingKind, override, override, override);
791
+ WRITE_NODE_PTR_FIELD(qual, qual, qual);
792
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
793
+ WRITE_LIST_FIELD(update_colnos, updateColnos, updateColnos);
794
+ }
795
+
775
796
  static void
776
797
  _outRawStmt(OUT_TYPE(RawStmt, RawStmt) out, const RawStmt *node)
777
798
  {
@@ -797,14 +818,18 @@ _outQuery(OUT_TYPE(Query, Query) out, const Query *node)
797
818
  WRITE_BOOL_FIELD(has_modifying_cte, hasModifyingCTE, hasModifyingCTE);
798
819
  WRITE_BOOL_FIELD(has_for_update, hasForUpdate, hasForUpdate);
799
820
  WRITE_BOOL_FIELD(has_row_security, hasRowSecurity, hasRowSecurity);
821
+ WRITE_BOOL_FIELD(is_return, isReturn, isReturn);
800
822
  WRITE_LIST_FIELD(cte_list, cteList, cteList);
801
823
  WRITE_LIST_FIELD(rtable, rtable, rtable);
802
824
  WRITE_SPECIFIC_NODE_PTR_FIELD(FromExpr, from_expr, jointree, jointree, jointree);
825
+ WRITE_LIST_FIELD(merge_action_list, mergeActionList, mergeActionList);
826
+ WRITE_BOOL_FIELD(merge_use_outer_join, mergeUseOuterJoin, mergeUseOuterJoin);
803
827
  WRITE_LIST_FIELD(target_list, targetList, targetList);
804
828
  WRITE_ENUM_FIELD(OverridingKind, override, override, override);
805
829
  WRITE_SPECIFIC_NODE_PTR_FIELD(OnConflictExpr, on_conflict_expr, on_conflict, onConflict, onConflict);
806
830
  WRITE_LIST_FIELD(returning_list, returningList, returningList);
807
831
  WRITE_LIST_FIELD(group_clause, groupClause, groupClause);
832
+ WRITE_BOOL_FIELD(group_distinct, groupDistinct, groupDistinct);
808
833
  WRITE_LIST_FIELD(grouping_sets, groupingSets, groupingSets);
809
834
  WRITE_NODE_PTR_FIELD(having_qual, havingQual, havingQual);
810
835
  WRITE_LIST_FIELD(window_clause, windowClause, windowClause);
@@ -854,6 +879,16 @@ _outUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) out, const UpdateStmt *node)
854
879
  WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
855
880
  }
856
881
 
882
+ static void
883
+ _outMergeStmt(OUT_TYPE(MergeStmt, MergeStmt) out, const MergeStmt *node)
884
+ {
885
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
886
+ WRITE_NODE_PTR_FIELD(source_relation, sourceRelation, sourceRelation);
887
+ WRITE_NODE_PTR_FIELD(join_condition, joinCondition, joinCondition);
888
+ WRITE_LIST_FIELD(merge_when_clauses, mergeWhenClauses, mergeWhenClauses);
889
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
890
+ }
891
+
857
892
  static void
858
893
  _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out, const SelectStmt *node)
859
894
  {
@@ -863,6 +898,7 @@ _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out, const SelectStmt *node)
863
898
  WRITE_LIST_FIELD(from_clause, fromClause, fromClause);
864
899
  WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
865
900
  WRITE_LIST_FIELD(group_clause, groupClause, groupClause);
901
+ WRITE_BOOL_FIELD(group_distinct, groupDistinct, groupDistinct);
866
902
  WRITE_NODE_PTR_FIELD(having_clause, havingClause, havingClause);
867
903
  WRITE_LIST_FIELD(window_clause, windowClause, windowClause);
868
904
  WRITE_LIST_FIELD(values_lists, valuesLists, valuesLists);
@@ -878,12 +914,28 @@ _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out, const SelectStmt *node)
878
914
  WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, select_stmt, rarg, rarg, rarg);
879
915
  }
880
916
 
917
+ static void
918
+ _outReturnStmt(OUT_TYPE(ReturnStmt, ReturnStmt) out, const ReturnStmt *node)
919
+ {
920
+ WRITE_NODE_PTR_FIELD(returnval, returnval, returnval);
921
+ }
922
+
923
+ static void
924
+ _outPLAssignStmt(OUT_TYPE(PLAssignStmt, PLAssignStmt) out, const PLAssignStmt *node)
925
+ {
926
+ WRITE_STRING_FIELD(name, name, name);
927
+ WRITE_LIST_FIELD(indirection, indirection, indirection);
928
+ WRITE_INT_FIELD(nnames, nnames, nnames);
929
+ WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, select_stmt, val, val, val);
930
+ WRITE_INT_FIELD(location, location, location);
931
+ }
932
+
881
933
  static void
882
934
  _outAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) out, const AlterTableStmt *node)
883
935
  {
884
936
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
885
937
  WRITE_LIST_FIELD(cmds, cmds, cmds);
886
- WRITE_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
938
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
887
939
  WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
888
940
  }
889
941
 
@@ -897,6 +949,7 @@ _outAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) out, const AlterTableCm
897
949
  WRITE_NODE_PTR_FIELD(def, def, def);
898
950
  WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
899
951
  WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
952
+ WRITE_BOOL_FIELD(recurse, recurse, recurse);
900
953
  }
901
954
 
902
955
  static void
@@ -933,6 +986,7 @@ _outGrantStmt(OUT_TYPE(GrantStmt, GrantStmt) out, const GrantStmt *node)
933
986
  WRITE_LIST_FIELD(privileges, privileges, privileges);
934
987
  WRITE_LIST_FIELD(grantees, grantees, grantees);
935
988
  WRITE_BOOL_FIELD(grant_option, grant_option, grant_option);
989
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, grantor, grantor, grantor);
936
990
  WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
937
991
  }
938
992
 
@@ -965,7 +1019,7 @@ _outClusterStmt(OUT_TYPE(ClusterStmt, ClusterStmt) out, const ClusterStmt *node)
965
1019
  {
966
1020
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
967
1021
  WRITE_STRING_FIELD(indexname, indexname, indexname);
968
- WRITE_INT_FIELD(options, options, options);
1022
+ WRITE_LIST_FIELD(params, params, params);
969
1023
  }
970
1024
 
971
1025
  static void
@@ -1063,6 +1117,7 @@ _outIndexStmt(OUT_TYPE(IndexStmt, IndexStmt) out, const IndexStmt *node)
1063
1117
  WRITE_UINT_FIELD(old_create_subid, oldCreateSubid, oldCreateSubid);
1064
1118
  WRITE_UINT_FIELD(old_first_relfilenode_subid, oldFirstRelfilenodeSubid, oldFirstRelfilenodeSubid);
1065
1119
  WRITE_BOOL_FIELD(unique, unique, unique);
1120
+ WRITE_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
1066
1121
  WRITE_BOOL_FIELD(primary, primary, primary);
1067
1122
  WRITE_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1068
1123
  WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
@@ -1082,6 +1137,7 @@ _outCreateFunctionStmt(OUT_TYPE(CreateFunctionStmt, CreateFunctionStmt) out, con
1082
1137
  WRITE_LIST_FIELD(parameters, parameters, parameters);
1083
1138
  WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, return_type, returnType, returnType);
1084
1139
  WRITE_LIST_FIELD(options, options, options);
1140
+ WRITE_NODE_PTR_FIELD(sql_body, sql_body, sql_body);
1085
1141
  }
1086
1142
 
1087
1143
  static void
@@ -1213,7 +1269,7 @@ _outCreateTableAsStmt(OUT_TYPE(CreateTableAsStmt, CreateTableAsStmt) out, const
1213
1269
  {
1214
1270
  WRITE_NODE_PTR_FIELD(query, query, query);
1215
1271
  WRITE_SPECIFIC_NODE_PTR_FIELD(IntoClause, into_clause, into, into, into);
1216
- WRITE_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
1272
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1217
1273
  WRITE_BOOL_FIELD(is_select_into, is_select_into, is_select_into);
1218
1274
  WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1219
1275
  }
@@ -1261,6 +1317,8 @@ _outDiscardStmt(OUT_TYPE(DiscardStmt, DiscardStmt) out, const DiscardStmt *node)
1261
1317
  static void
1262
1318
  _outCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) out, const CreateTrigStmt *node)
1263
1319
  {
1320
+ WRITE_BOOL_FIELD(replace, replace, replace);
1321
+ WRITE_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1264
1322
  WRITE_STRING_FIELD(trigname, trigname, trigname);
1265
1323
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1266
1324
  WRITE_LIST_FIELD(funcname, funcname, funcname);
@@ -1270,7 +1328,6 @@ _outCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) out, const CreateTri
1270
1328
  WRITE_INT_FIELD(events, events, events);
1271
1329
  WRITE_LIST_FIELD(columns, columns, columns);
1272
1330
  WRITE_NODE_PTR_FIELD(when_clause, whenClause, whenClause);
1273
- WRITE_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1274
1331
  WRITE_LIST_FIELD(transition_rels, transitionRels, transitionRels);
1275
1332
  WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
1276
1333
  WRITE_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
@@ -1332,8 +1389,7 @@ _outReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) out, const ReindexStmt *node)
1332
1389
  WRITE_ENUM_FIELD(ReindexObjectType, kind, kind, kind);
1333
1390
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1334
1391
  WRITE_STRING_FIELD(name, name, name);
1335
- WRITE_INT_FIELD(options, options, options);
1336
- WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
1392
+ WRITE_LIST_FIELD(params, params, params);
1337
1393
  }
1338
1394
 
1339
1395
  static void
@@ -1357,6 +1413,12 @@ _outAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) out, const
1357
1413
  WRITE_LIST_FIELD(options, options, options);
1358
1414
  }
1359
1415
 
1416
+ static void
1417
+ _outAlterDatabaseRefreshCollStmt(OUT_TYPE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt) out, const AlterDatabaseRefreshCollStmt *node)
1418
+ {
1419
+ WRITE_STRING_FIELD(dbname, dbname, dbname);
1420
+ }
1421
+
1360
1422
  static void
1361
1423
  _outAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) out, const AlterDatabaseSetStmt *node)
1362
1424
  {
@@ -1470,7 +1532,7 @@ _outAlterObjectDependsStmt(OUT_TYPE(AlterObjectDependsStmt, AlterObjectDependsSt
1470
1532
  WRITE_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1471
1533
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1472
1534
  WRITE_NODE_PTR_FIELD(object, object, object);
1473
- WRITE_NODE_PTR_FIELD(extname, extname, extname);
1535
+ WRITE_SPECIFIC_NODE_PTR_FIELD(String, string, extname, extname, extname);
1474
1536
  WRITE_BOOL_FIELD(remove, remove, remove);
1475
1537
  }
1476
1538
 
@@ -1785,7 +1847,7 @@ _outCreatePublicationStmt(OUT_TYPE(CreatePublicationStmt, CreatePublicationStmt)
1785
1847
  {
1786
1848
  WRITE_STRING_FIELD(pubname, pubname, pubname);
1787
1849
  WRITE_LIST_FIELD(options, options, options);
1788
- WRITE_LIST_FIELD(tables, tables, tables);
1850
+ WRITE_LIST_FIELD(pubobjects, pubobjects, pubobjects);
1789
1851
  WRITE_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
1790
1852
  }
1791
1853
 
@@ -1794,9 +1856,9 @@ _outAlterPublicationStmt(OUT_TYPE(AlterPublicationStmt, AlterPublicationStmt) ou
1794
1856
  {
1795
1857
  WRITE_STRING_FIELD(pubname, pubname, pubname);
1796
1858
  WRITE_LIST_FIELD(options, options, options);
1797
- WRITE_LIST_FIELD(tables, tables, tables);
1859
+ WRITE_LIST_FIELD(pubobjects, pubobjects, pubobjects);
1798
1860
  WRITE_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
1799
- WRITE_ENUM_FIELD(DefElemAction, table_action, tableAction, tableAction);
1861
+ WRITE_ENUM_FIELD(AlterPublicationAction, action, action, action);
1800
1862
  }
1801
1863
 
1802
1864
  static void
@@ -1834,6 +1896,7 @@ _outCreateStatsStmt(OUT_TYPE(CreateStatsStmt, CreateStatsStmt) out, const Create
1834
1896
  WRITE_LIST_FIELD(exprs, exprs, exprs);
1835
1897
  WRITE_LIST_FIELD(relations, relations, relations);
1836
1898
  WRITE_STRING_FIELD(stxcomment, stxcomment, stxcomment);
1899
+ WRITE_BOOL_FIELD(transformed, transformed, transformed);
1837
1900
  WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1838
1901
  }
1839
1902
 
@@ -1848,6 +1911,7 @@ _outCallStmt(OUT_TYPE(CallStmt, CallStmt) out, const CallStmt *node)
1848
1911
  {
1849
1912
  WRITE_SPECIFIC_NODE_PTR_FIELD(FuncCall, func_call, funccall, funccall, funccall);
1850
1913
  WRITE_SPECIFIC_NODE_PTR_FIELD(FuncExpr, func_expr, funcexpr, funcexpr, funcexpr);
1914
+ WRITE_LIST_FIELD(outargs, outargs, outargs);
1851
1915
  }
1852
1916
 
1853
1917
  static void
@@ -1882,13 +1946,6 @@ _outParamRef(OUT_TYPE(ParamRef, ParamRef) out, const ParamRef *node)
1882
1946
  WRITE_INT_FIELD(location, location, location);
1883
1947
  }
1884
1948
 
1885
- static void
1886
- _outAConst(OUT_TYPE(A_Const, AConst) out, const A_Const *node)
1887
- {
1888
- WRITE_NODE_FIELD(val, val, val);
1889
- WRITE_INT_FIELD(location, location, location);
1890
- }
1891
-
1892
1949
  static void
1893
1950
  _outFuncCall(OUT_TYPE(FuncCall, FuncCall) out, const FuncCall *node)
1894
1951
  {
@@ -1896,11 +1953,12 @@ _outFuncCall(OUT_TYPE(FuncCall, FuncCall) out, const FuncCall *node)
1896
1953
  WRITE_LIST_FIELD(args, args, args);
1897
1954
  WRITE_LIST_FIELD(agg_order, agg_order, agg_order);
1898
1955
  WRITE_NODE_PTR_FIELD(agg_filter, agg_filter, agg_filter);
1956
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
1899
1957
  WRITE_BOOL_FIELD(agg_within_group, agg_within_group, agg_within_group);
1900
1958
  WRITE_BOOL_FIELD(agg_star, agg_star, agg_star);
1901
1959
  WRITE_BOOL_FIELD(agg_distinct, agg_distinct, agg_distinct);
1902
1960
  WRITE_BOOL_FIELD(func_variadic, func_variadic, func_variadic);
1903
- WRITE_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
1961
+ WRITE_ENUM_FIELD(CoercionForm, funcformat, funcformat, funcformat);
1904
1962
  WRITE_INT_FIELD(location, location, location);
1905
1963
  }
1906
1964
 
@@ -2058,6 +2116,7 @@ _outColumnDef(OUT_TYPE(ColumnDef, ColumnDef) out, const ColumnDef *node)
2058
2116
  {
2059
2117
  WRITE_STRING_FIELD(colname, colname, colname);
2060
2118
  WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2119
+ WRITE_STRING_FIELD(compression, compression, compression);
2061
2120
  WRITE_INT_FIELD(inhcount, inhcount, inhcount);
2062
2121
  WRITE_BOOL_FIELD(is_local, is_local, is_local);
2063
2122
  WRITE_BOOL_FIELD(is_not_null, is_not_null, is_not_null);
@@ -2088,6 +2147,13 @@ _outIndexElem(OUT_TYPE(IndexElem, IndexElem) out, const IndexElem *node)
2088
2147
  WRITE_ENUM_FIELD(SortByNulls, nulls_ordering, nulls_ordering, nulls_ordering);
2089
2148
  }
2090
2149
 
2150
+ static void
2151
+ _outStatsElem(OUT_TYPE(StatsElem, StatsElem) out, const StatsElem *node)
2152
+ {
2153
+ WRITE_STRING_FIELD(name, name, name);
2154
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
2155
+ }
2156
+
2091
2157
  static void
2092
2158
  _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
2093
2159
  {
@@ -2100,6 +2166,7 @@ _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
2100
2166
  WRITE_NODE_PTR_FIELD(raw_expr, raw_expr, raw_expr);
2101
2167
  WRITE_STRING_FIELD(cooked_expr, cooked_expr, cooked_expr);
2102
2168
  WRITE_CHAR_FIELD(generated_when, generated_when, generated_when);
2169
+ WRITE_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
2103
2170
  WRITE_LIST_FIELD(keys, keys, keys);
2104
2171
  WRITE_LIST_FIELD(including, including, including);
2105
2172
  WRITE_LIST_FIELD(exclusions, exclusions, exclusions);
@@ -2115,6 +2182,7 @@ _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
2115
2182
  WRITE_CHAR_FIELD(fk_matchtype, fk_matchtype, fk_matchtype);
2116
2183
  WRITE_CHAR_FIELD(fk_upd_action, fk_upd_action, fk_upd_action);
2117
2184
  WRITE_CHAR_FIELD(fk_del_action, fk_del_action, fk_del_action);
2185
+ WRITE_LIST_FIELD(fk_del_set_cols, fk_del_set_cols, fk_del_set_cols);
2118
2186
  WRITE_LIST_FIELD(old_conpfeqop, old_conpfeqop, old_conpfeqop);
2119
2187
  WRITE_UINT_FIELD(old_pktable_oid, old_pktable_oid, old_pktable_oid);
2120
2188
  WRITE_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
@@ -2146,6 +2214,7 @@ _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out, const RangeTblEntr
2146
2214
  WRITE_LIST_FIELD(joinaliasvars, joinaliasvars, joinaliasvars);
2147
2215
  WRITE_LIST_FIELD(joinleftcols, joinleftcols, joinleftcols);
2148
2216
  WRITE_LIST_FIELD(joinrightcols, joinrightcols, joinrightcols);
2217
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, join_using_alias, join_using_alias, join_using_alias);
2149
2218
  WRITE_LIST_FIELD(functions, functions, functions);
2150
2219
  WRITE_BOOL_FIELD(funcordinality, funcordinality, funcordinality);
2151
2220
  WRITE_SPECIFIC_NODE_PTR_FIELD(TableFunc, table_func, tablefunc, tablefunc, tablefunc);
@@ -2230,6 +2299,7 @@ _outWindowClause(OUT_TYPE(WindowClause, WindowClause) out, const WindowClause *n
2230
2299
  WRITE_INT_FIELD(frame_options, frameOptions, frameOptions);
2231
2300
  WRITE_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
2232
2301
  WRITE_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
2302
+ WRITE_LIST_FIELD(run_condition, runCondition, runCondition);
2233
2303
  WRITE_UINT_FIELD(start_in_range_func, startInRangeFunc, startInRangeFunc);
2234
2304
  WRITE_UINT_FIELD(end_in_range_func, endInRangeFunc, endInRangeFunc);
2235
2305
  WRITE_UINT_FIELD(in_range_coll, inRangeColl, inRangeColl);
@@ -2244,6 +2314,7 @@ _outObjectWithArgs(OUT_TYPE(ObjectWithArgs, ObjectWithArgs) out, const ObjectWit
2244
2314
  {
2245
2315
  WRITE_LIST_FIELD(objname, objname, objname);
2246
2316
  WRITE_LIST_FIELD(objargs, objargs, objargs);
2317
+ WRITE_LIST_FIELD(objfuncargs, objfuncargs, objfuncargs);
2247
2318
  WRITE_BOOL_FIELD(args_unspecified, args_unspecified, args_unspecified);
2248
2319
  }
2249
2320
 
@@ -2335,6 +2406,30 @@ _outOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) out, const OnC
2335
2406
  WRITE_INT_FIELD(location, location, location);
2336
2407
  }
2337
2408
 
2409
+ static void
2410
+ _outCTESearchClause(OUT_TYPE(CTESearchClause, CTESearchClause) out, const CTESearchClause *node)
2411
+ {
2412
+ WRITE_LIST_FIELD(search_col_list, search_col_list, search_col_list);
2413
+ WRITE_BOOL_FIELD(search_breadth_first, search_breadth_first, search_breadth_first);
2414
+ WRITE_STRING_FIELD(search_seq_column, search_seq_column, search_seq_column);
2415
+ WRITE_INT_FIELD(location, location, location);
2416
+ }
2417
+
2418
+ static void
2419
+ _outCTECycleClause(OUT_TYPE(CTECycleClause, CTECycleClause) out, const CTECycleClause *node)
2420
+ {
2421
+ WRITE_LIST_FIELD(cycle_col_list, cycle_col_list, cycle_col_list);
2422
+ WRITE_STRING_FIELD(cycle_mark_column, cycle_mark_column, cycle_mark_column);
2423
+ WRITE_NODE_PTR_FIELD(cycle_mark_value, cycle_mark_value, cycle_mark_value);
2424
+ WRITE_NODE_PTR_FIELD(cycle_mark_default, cycle_mark_default, cycle_mark_default);
2425
+ WRITE_STRING_FIELD(cycle_path_column, cycle_path_column, cycle_path_column);
2426
+ WRITE_INT_FIELD(location, location, location);
2427
+ WRITE_UINT_FIELD(cycle_mark_type, cycle_mark_type, cycle_mark_type);
2428
+ WRITE_INT_FIELD(cycle_mark_typmod, cycle_mark_typmod, cycle_mark_typmod);
2429
+ WRITE_UINT_FIELD(cycle_mark_collation, cycle_mark_collation, cycle_mark_collation);
2430
+ WRITE_UINT_FIELD(cycle_mark_neop, cycle_mark_neop, cycle_mark_neop);
2431
+ }
2432
+
2338
2433
  static void
2339
2434
  _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out, const CommonTableExpr *node)
2340
2435
  {
@@ -2342,6 +2437,8 @@ _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out, const Common
2342
2437
  WRITE_LIST_FIELD(aliascolnames, aliascolnames, aliascolnames);
2343
2438
  WRITE_ENUM_FIELD(CTEMaterialize, ctematerialized, ctematerialized, ctematerialized);
2344
2439
  WRITE_NODE_PTR_FIELD(ctequery, ctequery, ctequery);
2440
+ WRITE_SPECIFIC_NODE_PTR_FIELD(CTESearchClause, ctesearch_clause, search_clause, search_clause, search_clause);
2441
+ WRITE_SPECIFIC_NODE_PTR_FIELD(CTECycleClause, ctecycle_clause, cycle_clause, cycle_clause, cycle_clause);
2345
2442
  WRITE_INT_FIELD(location, location, location);
2346
2443
  WRITE_BOOL_FIELD(cterecursive, cterecursive, cterecursive);
2347
2444
  WRITE_INT_FIELD(cterefcount, cterefcount, cterefcount);
@@ -2351,6 +2448,17 @@ _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out, const Common
2351
2448
  WRITE_LIST_FIELD(ctecolcollations, ctecolcollations, ctecolcollations);
2352
2449
  }
2353
2450
 
2451
+ static void
2452
+ _outMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) out, const MergeWhenClause *node)
2453
+ {
2454
+ WRITE_BOOL_FIELD(matched, matched, matched);
2455
+ WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
2456
+ WRITE_ENUM_FIELD(OverridingKind, override, override, override);
2457
+ WRITE_NODE_PTR_FIELD(condition, condition, condition);
2458
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
2459
+ WRITE_LIST_FIELD(values, values, values);
2460
+ }
2461
+
2354
2462
  static void
2355
2463
  _outRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) out, const RoleSpec *node)
2356
2464
  {
@@ -2411,6 +2519,7 @@ _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out, const PartitionCmd *n
2411
2519
  {
2412
2520
  WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, name, name, name);
2413
2521
  WRITE_SPECIFIC_NODE_PTR_FIELD(PartitionBoundSpec, partition_bound_spec, bound, bound, bound);
2522
+ WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
2414
2523
  }
2415
2524
 
2416
2525
  static void
@@ -2421,6 +2530,23 @@ _outVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) out, const VacuumRel
2421
2530
  WRITE_LIST_FIELD(va_cols, va_cols, va_cols);
2422
2531
  }
2423
2532
 
2533
+ static void
2534
+ _outPublicationObjSpec(OUT_TYPE(PublicationObjSpec, PublicationObjSpec) out, const PublicationObjSpec *node)
2535
+ {
2536
+ WRITE_ENUM_FIELD(PublicationObjSpecType, pubobjtype, pubobjtype, pubobjtype);
2537
+ WRITE_STRING_FIELD(name, name, name);
2538
+ WRITE_SPECIFIC_NODE_PTR_FIELD(PublicationTable, publication_table, pubtable, pubtable, pubtable);
2539
+ WRITE_INT_FIELD(location, location, location);
2540
+ }
2541
+
2542
+ static void
2543
+ _outPublicationTable(OUT_TYPE(PublicationTable, PublicationTable) out, const PublicationTable *node)
2544
+ {
2545
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
2546
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
2547
+ WRITE_LIST_FIELD(columns, columns, columns);
2548
+ }
2549
+
2424
2550
  static void
2425
2551
  _outInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) out, const InlineCodeBlock *node)
2426
2552
  {