pg_query 2.2.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 (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/include/access/amapi.h +45 -1
  6. data/ext/pg_query/include/access/attmap.h +1 -1
  7. data/ext/pg_query/include/access/attnum.h +2 -2
  8. data/ext/pg_query/include/access/clog.h +4 -2
  9. data/ext/pg_query/include/access/commit_ts.h +6 -9
  10. data/ext/pg_query/include/access/detoast.h +1 -11
  11. data/ext/pg_query/include/access/genam.h +15 -12
  12. data/ext/pg_query/include/access/gin.h +2 -2
  13. data/ext/pg_query/include/access/htup.h +1 -1
  14. data/ext/pg_query/include/access/htup_details.h +75 -87
  15. data/ext/pg_query/include/access/itup.h +7 -1
  16. data/ext/pg_query/include/access/parallel.h +2 -2
  17. data/ext/pg_query/include/access/printtup.h +1 -1
  18. data/ext/pg_query/include/access/relation.h +1 -1
  19. data/ext/pg_query/include/access/relscan.h +17 -2
  20. data/ext/pg_query/include/access/rmgr.h +30 -3
  21. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  22. data/ext/pg_query/include/access/sdir.h +1 -1
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +4 -2
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +2 -1
  27. data/ext/pg_query/include/access/tableam.h +272 -20
  28. data/ext/pg_query/include/access/toast_compression.h +73 -0
  29. data/ext/pg_query/include/access/transam.h +123 -13
  30. data/ext/pg_query/include/access/tupconvert.h +1 -1
  31. data/ext/pg_query/include/access/tupdesc.h +1 -1
  32. data/ext/pg_query/include/access/tupmacs.h +3 -3
  33. data/ext/pg_query/include/access/twophase.h +3 -1
  34. data/ext/pg_query/include/access/xact.h +73 -19
  35. data/ext/pg_query/include/access/xlog.h +60 -155
  36. data/ext/pg_query/include/access/xlog_internal.h +40 -13
  37. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  38. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  39. data/ext/pg_query/include/access/xlogreader.h +145 -39
  40. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  41. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  42. data/ext/pg_query/include/c.h +101 -44
  43. data/ext/pg_query/include/catalog/catalog.h +3 -1
  44. data/ext/pg_query/include/catalog/catversion.h +2 -2
  45. data/ext/pg_query/include/catalog/dependency.h +8 -16
  46. data/ext/pg_query/include/catalog/genbki.h +83 -5
  47. data/ext/pg_query/include/catalog/index.h +18 -3
  48. data/ext/pg_query/include/catalog/indexing.h +12 -324
  49. data/ext/pg_query/include/catalog/namespace.h +4 -2
  50. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  51. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  52. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  53. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  54. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  55. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  56. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  57. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  58. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  59. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  60. data/ext/pg_query/include/catalog/pg_class.h +44 -14
  61. data/ext/pg_query/include/catalog/pg_class_d.h +30 -1
  62. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  63. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  64. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  65. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  66. data/ext/pg_query/include/catalog/pg_control.h +3 -5
  67. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  68. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  69. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  70. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  71. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  72. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  73. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  74. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  75. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  76. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  77. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  78. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  79. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  80. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  81. data/ext/pg_query/include/catalog/pg_operator.h +18 -15
  82. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  83. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  84. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  85. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  86. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  88. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  89. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  90. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  91. data/ext/pg_query/include/catalog/pg_publication.h +50 -7
  92. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  93. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  95. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  96. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  97. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  98. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  99. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  100. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  101. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  102. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  103. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  104. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  105. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  106. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  107. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  108. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  109. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  110. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  111. data/ext/pg_query/include/catalog/pg_type.h +55 -24
  112. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  113. data/ext/pg_query/include/catalog/storage.h +5 -3
  114. data/ext/pg_query/include/commands/async.h +3 -4
  115. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  116. data/ext/pg_query/include/commands/defrem.h +11 -24
  117. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  118. data/ext/pg_query/include/commands/explain.h +1 -1
  119. data/ext/pg_query/include/commands/prepare.h +1 -1
  120. data/ext/pg_query/include/commands/tablespace.h +2 -2
  121. data/ext/pg_query/include/commands/trigger.h +18 -16
  122. data/ext/pg_query/include/commands/user.h +2 -2
  123. data/ext/pg_query/include/commands/vacuum.h +88 -41
  124. data/ext/pg_query/include/commands/variable.h +1 -1
  125. data/ext/pg_query/include/common/file_perm.h +4 -4
  126. data/ext/pg_query/include/common/hashfn.h +1 -1
  127. data/ext/pg_query/include/common/ip.h +1 -7
  128. data/ext/pg_query/include/common/keywords.h +2 -6
  129. data/ext/pg_query/include/common/kwlookup.h +1 -1
  130. data/ext/pg_query/include/common/pg_prng.h +60 -0
  131. data/ext/pg_query/include/common/relpath.h +2 -2
  132. data/ext/pg_query/include/common/string.h +24 -1
  133. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  134. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  135. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  136. data/ext/pg_query/include/executor/execdesc.h +1 -1
  137. data/ext/pg_query/include/executor/executor.h +65 -22
  138. data/ext/pg_query/include/executor/functions.h +17 -3
  139. data/ext/pg_query/include/executor/instrument.h +33 -16
  140. data/ext/pg_query/include/executor/spi.h +41 -3
  141. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  142. data/ext/pg_query/include/executor/tuptable.h +1 -1
  143. data/ext/pg_query/include/fmgr.h +13 -7
  144. data/ext/pg_query/include/funcapi.h +16 -4
  145. data/ext/pg_query/include/getaddrinfo.h +1 -1
  146. data/ext/pg_query/include/jit/jit.h +11 -11
  147. data/ext/pg_query/include/kwlist_d.h +517 -494
  148. data/ext/pg_query/include/lib/dshash.h +112 -0
  149. data/ext/pg_query/include/lib/ilist.h +20 -1
  150. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  151. data/ext/pg_query/include/lib/simplehash.h +140 -15
  152. data/ext/pg_query/include/lib/sort_template.h +432 -0
  153. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  154. data/ext/pg_query/include/libpq/auth.h +6 -4
  155. data/ext/pg_query/include/libpq/crypt.h +5 -4
  156. data/ext/pg_query/include/libpq/hba.h +43 -4
  157. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  158. data/ext/pg_query/include/libpq/libpq.h +30 -20
  159. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  160. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  161. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  162. data/ext/pg_query/include/mb/pg_wchar.h +105 -23
  163. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  164. data/ext/pg_query/include/miscadmin.h +47 -41
  165. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  166. data/ext/pg_query/include/nodes/execnodes.h +270 -78
  167. data/ext/pg_query/include/nodes/extensible.h +4 -2
  168. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  169. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  170. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  171. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  172. data/ext/pg_query/include/nodes/nodes.h +30 -11
  173. data/ext/pg_query/include/nodes/params.h +1 -1
  174. data/ext/pg_query/include/nodes/parsenodes.h +322 -90
  175. data/ext/pg_query/include/nodes/pathnodes.h +243 -66
  176. data/ext/pg_query/include/nodes/pg_list.h +75 -69
  177. data/ext/pg_query/include/nodes/plannodes.h +111 -28
  178. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  179. data/ext/pg_query/include/nodes/print.h +1 -1
  180. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  181. data/ext/pg_query/include/nodes/value.h +58 -39
  182. data/ext/pg_query/include/optimizer/cost.h +9 -2
  183. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  184. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  185. data/ext/pg_query/include/optimizer/optimizer.h +25 -17
  186. data/ext/pg_query/include/optimizer/paths.h +6 -6
  187. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  188. data/ext/pg_query/include/parser/analyze.h +19 -5
  189. data/ext/pg_query/include/parser/gram.h +947 -913
  190. data/ext/pg_query/include/parser/gramparse.h +1 -1
  191. data/ext/pg_query/include/parser/kwlist.h +463 -453
  192. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  193. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  194. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  195. data/ext/pg_query/include/parser/parse_func.h +2 -1
  196. data/ext/pg_query/include/parser/parse_node.h +21 -9
  197. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  198. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  199. data/ext/pg_query/include/parser/parse_type.h +1 -1
  200. data/ext/pg_query/include/parser/parser.h +31 -4
  201. data/ext/pg_query/include/parser/parsetree.h +1 -1
  202. data/ext/pg_query/include/parser/scanner.h +1 -1
  203. data/ext/pg_query/include/parser/scansup.h +2 -5
  204. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  205. data/ext/pg_query/include/pg_config.h +83 -41
  206. data/ext/pg_query/include/pg_config_manual.h +74 -21
  207. data/ext/pg_query/include/pg_getopt.h +6 -6
  208. data/ext/pg_query/include/pg_query.h +5 -4
  209. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +939 -113
  212. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  213. data/ext/pg_query/include/pg_query_outfuncs_defs.c +151 -26
  214. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  215. data/ext/pg_query/include/pg_query_readfuncs_defs.c +173 -30
  216. data/ext/pg_query/include/pg_trace.h +1 -1
  217. data/ext/pg_query/include/pgstat.h +449 -1238
  218. data/ext/pg_query/include/pgtime.h +14 -4
  219. data/ext/pg_query/include/pl_gram.h +126 -128
  220. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  221. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  222. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  223. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  224. data/ext/pg_query/include/plerrcodes.h +9 -1
  225. data/ext/pg_query/include/plpgsql.h +52 -54
  226. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  227. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  228. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  229. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  230. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  231. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  232. data/ext/pg_query/include/port/atomics.h +1 -1
  233. data/ext/pg_query/include/port/pg_bitutils.h +40 -10
  234. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  235. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  236. data/ext/pg_query/include/port.h +71 -46
  237. data/ext/pg_query/include/portability/instr_time.h +1 -1
  238. data/ext/pg_query/include/postgres.h +60 -16
  239. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  240. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  241. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  242. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  243. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  244. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  245. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  246. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  247. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  248. data/ext/pg_query/include/postmaster/startup.h +39 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  250. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  251. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1419 -914
  252. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  253. data/ext/pg_query/include/regex/regex.h +18 -16
  254. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  255. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  256. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  257. data/ext/pg_query/include/replication/origin.h +7 -7
  258. data/ext/pg_query/include/replication/reorderbuffer.h +259 -42
  259. data/ext/pg_query/include/replication/slot.h +22 -11
  260. data/ext/pg_query/include/replication/syncrep.h +5 -5
  261. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  262. data/ext/pg_query/include/replication/walsender.h +8 -8
  263. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  264. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  265. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  266. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  267. data/ext/pg_query/include/storage/backendid.h +3 -3
  268. data/ext/pg_query/include/storage/block.h +4 -10
  269. data/ext/pg_query/include/storage/buf.h +1 -1
  270. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  271. data/ext/pg_query/include/storage/bufpage.h +6 -8
  272. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  273. data/ext/pg_query/include/storage/dsm.h +4 -1
  274. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  275. data/ext/pg_query/include/storage/fd.h +33 -3
  276. data/ext/pg_query/include/storage/fileset.h +40 -0
  277. data/ext/pg_query/include/storage/ipc.h +4 -1
  278. data/ext/pg_query/include/storage/item.h +1 -1
  279. data/ext/pg_query/include/storage/itemid.h +1 -1
  280. data/ext/pg_query/include/storage/itemptr.h +3 -1
  281. data/ext/pg_query/include/storage/large_object.h +2 -2
  282. data/ext/pg_query/include/storage/latch.h +9 -13
  283. data/ext/pg_query/include/storage/lmgr.h +2 -1
  284. data/ext/pg_query/include/storage/lock.h +11 -8
  285. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  286. data/ext/pg_query/include/storage/lwlock.h +5 -32
  287. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  288. data/ext/pg_query/include/storage/off.h +1 -1
  289. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  290. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  291. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  292. data/ext/pg_query/include/storage/predicate.h +4 -4
  293. data/ext/pg_query/include/storage/proc.h +173 -59
  294. data/ext/pg_query/include/storage/procarray.h +98 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  296. data/ext/pg_query/include/storage/procsignal.h +3 -7
  297. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  298. data/ext/pg_query/include/storage/s_lock.h +60 -21
  299. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  300. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  301. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  302. data/ext/pg_query/include/storage/shmem.h +1 -1
  303. data/ext/pg_query/include/storage/sinval.h +3 -3
  304. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  305. data/ext/pg_query/include/storage/smgr.h +10 -8
  306. data/ext/pg_query/include/storage/spin.h +2 -2
  307. data/ext/pg_query/include/storage/standby.h +13 -6
  308. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  309. data/ext/pg_query/include/storage/sync.h +7 -3
  310. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  312. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  313. data/ext/pg_query/include/tcop/dest.h +1 -1
  314. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  315. data/ext/pg_query/include/tcop/pquery.h +1 -1
  316. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  317. data/ext/pg_query/include/tcop/utility.h +7 -3
  318. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  319. data/ext/pg_query/include/utils/acl.h +24 -3
  320. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  321. data/ext/pg_query/include/utils/array.h +7 -2
  322. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  323. data/ext/pg_query/include/utils/backend_status.h +321 -0
  324. data/ext/pg_query/include/utils/builtins.h +10 -11
  325. data/ext/pg_query/include/utils/bytea.h +3 -2
  326. data/ext/pg_query/include/utils/catcache.h +1 -1
  327. data/ext/pg_query/include/utils/date.h +1 -1
  328. data/ext/pg_query/include/utils/datetime.h +8 -7
  329. data/ext/pg_query/include/utils/datum.h +9 -1
  330. data/ext/pg_query/include/utils/dsa.h +1 -1
  331. data/ext/pg_query/include/utils/dynahash.h +4 -3
  332. data/ext/pg_query/include/utils/elog.h +52 -21
  333. data/ext/pg_query/include/utils/errcodes.h +2 -0
  334. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  335. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  336. data/ext/pg_query/include/utils/float.h +7 -7
  337. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  338. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  339. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  340. data/ext/pg_query/include/utils/guc.h +69 -43
  341. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  342. data/ext/pg_query/include/utils/hsearch.h +15 -11
  343. data/ext/pg_query/include/utils/inval.h +4 -1
  344. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  345. data/ext/pg_query/include/utils/memdebug.h +1 -1
  346. data/ext/pg_query/include/utils/memutils.h +8 -3
  347. data/ext/pg_query/include/utils/numeric.h +19 -5
  348. data/ext/pg_query/include/utils/palloc.h +25 -3
  349. data/ext/pg_query/include/utils/partcache.h +1 -1
  350. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  351. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  352. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  353. data/ext/pg_query/include/utils/pidfile.h +1 -1
  354. data/ext/pg_query/include/utils/plancache.h +6 -5
  355. data/ext/pg_query/include/utils/portal.h +10 -12
  356. data/ext/pg_query/include/utils/ps_status.h +1 -1
  357. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  358. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  359. data/ext/pg_query/include/utils/regproc.h +14 -3
  360. data/ext/pg_query/include/utils/rel.h +71 -19
  361. data/ext/pg_query/include/utils/relcache.h +8 -5
  362. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  363. data/ext/pg_query/include/utils/resowner.h +1 -1
  364. data/ext/pg_query/include/utils/rls.h +2 -2
  365. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  366. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  367. data/ext/pg_query/include/utils/snapmgr.h +34 -14
  368. data/ext/pg_query/include/utils/snapshot.h +14 -1
  369. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  370. data/ext/pg_query/include/utils/syscache.h +6 -1
  371. data/ext/pg_query/include/utils/timeout.h +11 -4
  372. data/ext/pg_query/include/utils/timestamp.h +6 -5
  373. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  374. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  375. data/ext/pg_query/include/utils/typcache.h +24 -17
  376. data/ext/pg_query/include/utils/tzparser.h +1 -1
  377. data/ext/pg_query/include/utils/varlena.h +5 -3
  378. data/ext/pg_query/include/utils/wait_event.h +289 -0
  379. data/ext/pg_query/include/utils/xml.h +4 -4
  380. data/ext/pg_query/pg_query.pb-c.c +4302 -2304
  381. data/ext/pg_query/pg_query_deparse.c +1106 -373
  382. data/ext/pg_query/pg_query_fingerprint.c +30 -10
  383. data/ext/pg_query/pg_query_json_plpgsql.c +0 -25
  384. data/ext/pg_query/pg_query_normalize.c +1 -1
  385. data/ext/pg_query/pg_query_outfuncs_json.c +54 -16
  386. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  387. data/ext/pg_query/pg_query_parse.c +1 -1
  388. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  389. data/ext/pg_query/pg_query_scan.c +2 -1
  390. data/ext/pg_query/pg_query_split.c +3 -2
  391. data/ext/pg_query/src_backend_catalog_namespace.c +20 -9
  392. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  393. data/ext/pg_query/src_backend_commands_define.c +11 -1
  394. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  395. data/ext/pg_query/src_backend_nodes_copyfuncs.c +401 -76
  396. data/ext/pg_query/src_backend_nodes_equalfuncs.c +290 -46
  397. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  398. data/ext/pg_query/src_backend_nodes_list.c +74 -11
  399. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  400. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  401. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  402. data/ext/pg_query/src_backend_parser_gram.c +33874 -31261
  403. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  404. data/ext/pg_query/src_backend_parser_scan.c +172 -209
  405. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  406. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  407. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  408. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  409. data/ext/pg_query/src_backend_tcop_postgres.c +62 -23
  410. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  411. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  412. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  413. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  414. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +71 -5
  415. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  416. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  417. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  418. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  419. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  420. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  421. data/ext/pg_query/src_backend_utils_misc_guc.c +206 -45
  422. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  423. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  424. data/ext/pg_query/src_common_encnames.c +1 -1
  425. data/ext/pg_query/src_common_hashfn.c +3 -3
  426. data/ext/pg_query/src_common_keywords.c +15 -2
  427. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  428. data/ext/pg_query/src_common_kwlookup.c +1 -1
  429. data/ext/pg_query/src_common_pg_prng.c +152 -0
  430. data/ext/pg_query/src_common_psprintf.c +1 -1
  431. data/ext/pg_query/src_common_string.c +7 -1
  432. data/ext/pg_query/src_common_stringinfo.c +1 -1
  433. data/ext/pg_query/src_common_wchar.c +701 -109
  434. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +45 -20
  435. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  436. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1233 -1259
  437. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  438. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  441. data/ext/pg_query/src_port_pg_bitutils.c +41 -31
  442. data/ext/pg_query/src_port_pgsleep.c +1 -1
  443. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  444. data/ext/pg_query/src_port_qsort.c +12 -224
  445. data/ext/pg_query/src_port_snprintf.c +37 -13
  446. data/ext/pg_query/src_port_strerror.c +9 -19
  447. data/ext/pg_query/src_port_strnlen.c +1 -1
  448. data/lib/pg_query/filter_columns.rb +1 -1
  449. data/lib/pg_query/fingerprint.rb +5 -1
  450. data/lib/pg_query/node.rb +2 -2
  451. data/lib/pg_query/param_refs.rb +1 -1
  452. data/lib/pg_query/parse.rb +20 -8
  453. data/lib/pg_query/pg_query_pb.rb +1108 -942
  454. data/lib/pg_query/treewalker.rb +6 -0
  455. data/lib/pg_query/truncate.rb +1 -1
  456. data/lib/pg_query/version.rb +1 -1
  457. metadata +27 -17
  458. data/ext/pg_query/include/access/xloginsert.h +0 -64
  459. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  460. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  461. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  462. data/ext/pg_query/include/parser/parse_target.h +0 -46
  463. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  464. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  465. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  466. data/ext/pg_query/src_port_erand48.c +0 -127
  467. data/ext/pg_query/src_port_random.c +0 -31
@@ -3,7 +3,6 @@
3
3
  READ_COND(Alias, Alias, alias, ALIAS, Alias, alias);
4
4
  READ_COND(RangeVar, RangeVar, range_var, RANGE_VAR, RangeVar, range_var);
5
5
  READ_COND(TableFunc, TableFunc, table_func, TABLE_FUNC, TableFunc, table_func);
6
- READ_COND(Expr, Expr, expr, EXPR, Expr, expr);
7
6
  READ_COND(Var, Var, var, VAR, Var, var);
8
7
  READ_COND(Param, Param, param, PARAM, Param, param);
9
8
  READ_COND(Aggref, Aggref, aggref, AGGREF, Aggref, aggref);
@@ -51,12 +50,16 @@
51
50
  READ_COND(FromExpr, FromExpr, from_expr, FROM_EXPR, FromExpr, from_expr);
52
51
  READ_COND(OnConflictExpr, OnConflictExpr, on_conflict_expr, ON_CONFLICT_EXPR, OnConflictExpr, on_conflict_expr);
53
52
  READ_COND(IntoClause, IntoClause, into_clause, INTO_CLAUSE, IntoClause, into_clause);
53
+ READ_COND(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action);
54
54
  READ_COND(RawStmt, RawStmt, raw_stmt, RAW_STMT, RawStmt, raw_stmt);
55
55
  READ_COND(Query, Query, query, QUERY, Query, query);
56
56
  READ_COND(InsertStmt, InsertStmt, insert_stmt, INSERT_STMT, InsertStmt, insert_stmt);
57
57
  READ_COND(DeleteStmt, DeleteStmt, delete_stmt, DELETE_STMT, DeleteStmt, delete_stmt);
58
58
  READ_COND(UpdateStmt, UpdateStmt, update_stmt, UPDATE_STMT, UpdateStmt, update_stmt);
59
+ READ_COND(MergeStmt, MergeStmt, merge_stmt, MERGE_STMT, MergeStmt, merge_stmt);
59
60
  READ_COND(SelectStmt, SelectStmt, select_stmt, SELECT_STMT, SelectStmt, select_stmt);
61
+ READ_COND(ReturnStmt, ReturnStmt, return_stmt, RETURN_STMT, ReturnStmt, return_stmt);
62
+ READ_COND(PLAssignStmt, PLAssignStmt, plassign_stmt, PLASSIGN_STMT, PLAssignStmt, plassign_stmt);
60
63
  READ_COND(AlterTableStmt, AlterTableStmt, alter_table_stmt, ALTER_TABLE_STMT, AlterTableStmt, alter_table_stmt);
61
64
  READ_COND(AlterTableCmd, AlterTableCmd, alter_table_cmd, ALTER_TABLE_CMD, AlterTableCmd, alter_table_cmd);
62
65
  READ_COND(AlterDomainStmt, AlterDomainStmt, alter_domain_stmt, ALTER_DOMAIN_STMT, AlterDomainStmt, alter_domain_stmt);
@@ -107,6 +110,7 @@
107
110
  READ_COND(CheckPointStmt, CheckPointStmt, check_point_stmt, CHECK_POINT_STMT, CheckPointStmt, check_point_stmt);
108
111
  READ_COND(CreateSchemaStmt, CreateSchemaStmt, create_schema_stmt, CREATE_SCHEMA_STMT, CreateSchemaStmt, create_schema_stmt);
109
112
  READ_COND(AlterDatabaseStmt, AlterDatabaseStmt, alter_database_stmt, ALTER_DATABASE_STMT, AlterDatabaseStmt, alter_database_stmt);
113
+ READ_COND(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt, ALTER_DATABASE_REFRESH_COLL_STMT, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt);
110
114
  READ_COND(AlterDatabaseSetStmt, AlterDatabaseSetStmt, alter_database_set_stmt, ALTER_DATABASE_SET_STMT, AlterDatabaseSetStmt, alter_database_set_stmt);
111
115
  READ_COND(AlterRoleSetStmt, AlterRoleSetStmt, alter_role_set_stmt, ALTER_ROLE_SET_STMT, AlterRoleSetStmt, alter_role_set_stmt);
112
116
  READ_COND(CreateConversionStmt, CreateConversionStmt, create_conversion_stmt, CREATE_CONVERSION_STMT, CreateConversionStmt, create_conversion_stmt);
@@ -169,7 +173,6 @@
169
173
  READ_COND(A_Expr, AExpr, a__expr, A_EXPR, A_Expr, a_expr);
170
174
  READ_COND(ColumnRef, ColumnRef, column_ref, COLUMN_REF, ColumnRef, column_ref);
171
175
  READ_COND(ParamRef, ParamRef, param_ref, PARAM_REF, ParamRef, param_ref);
172
- READ_COND(A_Const, AConst, a__const, A_CONST, A_Const, a_const);
173
176
  READ_COND(FuncCall, FuncCall, func_call, FUNC_CALL, FuncCall, func_call);
174
177
  READ_COND(A_Star, AStar, a__star, A_STAR, A_Star, a_star);
175
178
  READ_COND(A_Indices, AIndices, a__indices, A_INDICES, A_Indices, a_indices);
@@ -189,6 +192,7 @@
189
192
  READ_COND(TypeName, TypeName, type_name, TYPE_NAME, TypeName, type_name);
190
193
  READ_COND(ColumnDef, ColumnDef, column_def, COLUMN_DEF, ColumnDef, column_def);
191
194
  READ_COND(IndexElem, IndexElem, index_elem, INDEX_ELEM, IndexElem, index_elem);
195
+ READ_COND(StatsElem, StatsElem, stats_elem, STATS_ELEM, StatsElem, stats_elem);
192
196
  READ_COND(Constraint, Constraint, constraint, CONSTRAINT, Constraint, constraint);
193
197
  READ_COND(DefElem, DefElem, def_elem, DEF_ELEM, DefElem, def_elem);
194
198
  READ_COND(RangeTblEntry, RangeTblEntry, range_tbl_entry, RANGE_TBL_ENTRY, RangeTblEntry, range_tbl_entry);
@@ -209,7 +213,10 @@
209
213
  READ_COND(WithClause, WithClause, with_clause, WITH_CLAUSE, WithClause, with_clause);
210
214
  READ_COND(InferClause, InferClause, infer_clause, INFER_CLAUSE, InferClause, infer_clause);
211
215
  READ_COND(OnConflictClause, OnConflictClause, on_conflict_clause, ON_CONFLICT_CLAUSE, OnConflictClause, on_conflict_clause);
216
+ READ_COND(CTESearchClause, CTESearchClause, ctesearch_clause, CTESEARCH_CLAUSE, CTESearchClause, ctesearch_clause);
217
+ READ_COND(CTECycleClause, CTECycleClause, ctecycle_clause, CTECYCLE_CLAUSE, CTECycleClause, ctecycle_clause);
212
218
  READ_COND(CommonTableExpr, CommonTableExpr, common_table_expr, COMMON_TABLE_EXPR, CommonTableExpr, common_table_expr);
219
+ READ_COND(MergeWhenClause, MergeWhenClause, merge_when_clause, MERGE_WHEN_CLAUSE, MergeWhenClause, merge_when_clause);
213
220
  READ_COND(RoleSpec, RoleSpec, role_spec, ROLE_SPEC, RoleSpec, role_spec);
214
221
  READ_COND(TriggerTransition, TriggerTransition, trigger_transition, TRIGGER_TRANSITION, TriggerTransition, trigger_transition);
215
222
  READ_COND(PartitionElem, PartitionElem, partition_elem, PARTITION_ELEM, PartitionElem, partition_elem);
@@ -218,5 +225,7 @@
218
225
  READ_COND(PartitionRangeDatum, PartitionRangeDatum, partition_range_datum, PARTITION_RANGE_DATUM, PartitionRangeDatum, partition_range_datum);
219
226
  READ_COND(PartitionCmd, PartitionCmd, partition_cmd, PARTITION_CMD, PartitionCmd, partition_cmd);
220
227
  READ_COND(VacuumRelation, VacuumRelation, vacuum_relation, VACUUM_RELATION, VacuumRelation, vacuum_relation);
228
+ READ_COND(PublicationObjSpec, PublicationObjSpec, publication_obj_spec, PUBLICATION_OBJ_SPEC, PublicationObjSpec, publication_obj_spec);
229
+ READ_COND(PublicationTable, PublicationTable, publication_table, PUBLICATION_TABLE, PublicationTable, publication_table);
221
230
  READ_COND(InlineCodeBlock, InlineCodeBlock, inline_code_block, INLINE_CODE_BLOCK, InlineCodeBlock, inline_code_block);
222
231
  READ_COND(CallContext, CallContext, call_context, CALL_CONTEXT, CallContext, call_context);
@@ -3,7 +3,6 @@
3
3
  static Alias * _readAlias(OUT_TYPE(Alias, Alias) msg);
4
4
  static RangeVar * _readRangeVar(OUT_TYPE(RangeVar, RangeVar) msg);
5
5
  static TableFunc * _readTableFunc(OUT_TYPE(TableFunc, TableFunc) msg);
6
- static Expr * _readExpr(OUT_TYPE(Expr, Expr) msg);
7
6
  static Var * _readVar(OUT_TYPE(Var, Var) msg);
8
7
  static Param * _readParam(OUT_TYPE(Param, Param) msg);
9
8
  static Aggref * _readAggref(OUT_TYPE(Aggref, Aggref) msg);
@@ -51,12 +50,16 @@ static JoinExpr * _readJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) msg);
51
50
  static FromExpr * _readFromExpr(OUT_TYPE(FromExpr, FromExpr) msg);
52
51
  static OnConflictExpr * _readOnConflictExpr(OUT_TYPE(OnConflictExpr, OnConflictExpr) msg);
53
52
  static IntoClause * _readIntoClause(OUT_TYPE(IntoClause, IntoClause) msg);
53
+ static MergeAction * _readMergeAction(OUT_TYPE(MergeAction, MergeAction) msg);
54
54
  static RawStmt * _readRawStmt(OUT_TYPE(RawStmt, RawStmt) msg);
55
55
  static Query * _readQuery(OUT_TYPE(Query, Query) msg);
56
56
  static InsertStmt * _readInsertStmt(OUT_TYPE(InsertStmt, InsertStmt) msg);
57
57
  static DeleteStmt * _readDeleteStmt(OUT_TYPE(DeleteStmt, DeleteStmt) msg);
58
58
  static UpdateStmt * _readUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) msg);
59
+ static MergeStmt * _readMergeStmt(OUT_TYPE(MergeStmt, MergeStmt) msg);
59
60
  static SelectStmt * _readSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) msg);
61
+ static ReturnStmt * _readReturnStmt(OUT_TYPE(ReturnStmt, ReturnStmt) msg);
62
+ static PLAssignStmt * _readPLAssignStmt(OUT_TYPE(PLAssignStmt, PLAssignStmt) msg);
60
63
  static AlterTableStmt * _readAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) msg);
61
64
  static AlterTableCmd * _readAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) msg);
62
65
  static AlterDomainStmt * _readAlterDomainStmt(OUT_TYPE(AlterDomainStmt, AlterDomainStmt) msg);
@@ -107,6 +110,7 @@ static ReindexStmt * _readReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) msg);
107
110
  static CheckPointStmt * _readCheckPointStmt(OUT_TYPE(CheckPointStmt, CheckPointStmt) msg);
108
111
  static CreateSchemaStmt * _readCreateSchemaStmt(OUT_TYPE(CreateSchemaStmt, CreateSchemaStmt) msg);
109
112
  static AlterDatabaseStmt * _readAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) msg);
113
+ static AlterDatabaseRefreshCollStmt * _readAlterDatabaseRefreshCollStmt(OUT_TYPE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt) msg);
110
114
  static AlterDatabaseSetStmt * _readAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) msg);
111
115
  static AlterRoleSetStmt * _readAlterRoleSetStmt(OUT_TYPE(AlterRoleSetStmt, AlterRoleSetStmt) msg);
112
116
  static CreateConversionStmt * _readCreateConversionStmt(OUT_TYPE(CreateConversionStmt, CreateConversionStmt) msg);
@@ -169,7 +173,6 @@ static AlterStatsStmt * _readAlterStatsStmt(OUT_TYPE(AlterStatsStmt, AlterStatsS
169
173
  static A_Expr * _readAExpr(OUT_TYPE(A_Expr, AExpr) msg);
170
174
  static ColumnRef * _readColumnRef(OUT_TYPE(ColumnRef, ColumnRef) msg);
171
175
  static ParamRef * _readParamRef(OUT_TYPE(ParamRef, ParamRef) msg);
172
- static A_Const * _readAConst(OUT_TYPE(A_Const, AConst) msg);
173
176
  static FuncCall * _readFuncCall(OUT_TYPE(FuncCall, FuncCall) msg);
174
177
  static A_Star * _readAStar(OUT_TYPE(A_Star, AStar) msg);
175
178
  static A_Indices * _readAIndices(OUT_TYPE(A_Indices, AIndices) msg);
@@ -189,6 +192,7 @@ static RangeTableFuncCol * _readRangeTableFuncCol(OUT_TYPE(RangeTableFuncCol, Ra
189
192
  static TypeName * _readTypeName(OUT_TYPE(TypeName, TypeName) msg);
190
193
  static ColumnDef * _readColumnDef(OUT_TYPE(ColumnDef, ColumnDef) msg);
191
194
  static IndexElem * _readIndexElem(OUT_TYPE(IndexElem, IndexElem) msg);
195
+ static StatsElem * _readStatsElem(OUT_TYPE(StatsElem, StatsElem) msg);
192
196
  static Constraint * _readConstraint(OUT_TYPE(Constraint, Constraint) msg);
193
197
  static DefElem * _readDefElem(OUT_TYPE(DefElem, DefElem) msg);
194
198
  static RangeTblEntry * _readRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) msg);
@@ -209,7 +213,10 @@ static XmlSerialize * _readXmlSerialize(OUT_TYPE(XmlSerialize, XmlSerialize) msg
209
213
  static WithClause * _readWithClause(OUT_TYPE(WithClause, WithClause) msg);
210
214
  static InferClause * _readInferClause(OUT_TYPE(InferClause, InferClause) msg);
211
215
  static OnConflictClause * _readOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) msg);
216
+ static CTESearchClause * _readCTESearchClause(OUT_TYPE(CTESearchClause, CTESearchClause) msg);
217
+ static CTECycleClause * _readCTECycleClause(OUT_TYPE(CTECycleClause, CTECycleClause) msg);
212
218
  static CommonTableExpr * _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg);
219
+ static MergeWhenClause * _readMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) msg);
213
220
  static RoleSpec * _readRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) msg);
214
221
  static TriggerTransition * _readTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) msg);
215
222
  static PartitionElem * _readPartitionElem(OUT_TYPE(PartitionElem, PartitionElem) msg);
@@ -218,6 +225,8 @@ static PartitionBoundSpec * _readPartitionBoundSpec(OUT_TYPE(PartitionBoundSpec,
218
225
  static PartitionRangeDatum * _readPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) msg);
219
226
  static PartitionCmd * _readPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) msg);
220
227
  static VacuumRelation * _readVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) msg);
228
+ static PublicationObjSpec * _readPublicationObjSpec(OUT_TYPE(PublicationObjSpec, PublicationObjSpec) msg);
229
+ static PublicationTable * _readPublicationTable(OUT_TYPE(PublicationTable, PublicationTable) msg);
221
230
  static InlineCodeBlock * _readInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) msg);
222
231
  static CallContext * _readCallContext(OUT_TYPE(CallContext, CallContext) msg);
223
232
 
@@ -265,18 +274,11 @@ _readTableFunc(OUT_TYPE(TableFunc, TableFunc) msg)
265
274
  return node;
266
275
  }
267
276
 
268
- static Expr *
269
- _readExpr(OUT_TYPE(Expr, Expr) msg)
270
- {
271
- Expr *node = makeNode(Expr);
272
- return node;
273
- }
274
-
275
277
  static Var *
276
278
  _readVar(OUT_TYPE(Var, Var) msg)
277
279
  {
278
280
  Var *node = makeNode(Var);
279
- READ_UINT_FIELD(varno, varno, varno);
281
+ READ_INT_FIELD(varno, varno, varno);
280
282
  READ_INT_FIELD(varattno, varattno, varattno);
281
283
  READ_UINT_FIELD(vartype, vartype, vartype);
282
284
  READ_INT_FIELD(vartypmod, vartypmod, vartypmod);
@@ -321,6 +323,8 @@ _readAggref(OUT_TYPE(Aggref, Aggref) msg)
321
323
  READ_CHAR_FIELD(aggkind, aggkind, aggkind);
322
324
  READ_UINT_FIELD(agglevelsup, agglevelsup, agglevelsup);
323
325
  READ_ENUM_FIELD(AggSplit, aggsplit, aggsplit, aggsplit);
326
+ READ_INT_FIELD(aggno, aggno, aggno);
327
+ READ_INT_FIELD(aggtransno, aggtransno, aggtransno);
324
328
  READ_INT_FIELD(location, location, location);
325
329
  return node;
326
330
  }
@@ -360,6 +364,7 @@ _readSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) msg)
360
364
  SubscriptingRef *node = makeNode(SubscriptingRef);
361
365
  READ_UINT_FIELD(refcontainertype, refcontainertype, refcontainertype);
362
366
  READ_UINT_FIELD(refelemtype, refelemtype, refelemtype);
367
+ READ_UINT_FIELD(refrestype, refrestype, refrestype);
363
368
  READ_INT_FIELD(reftypmod, reftypmod, reftypmod);
364
369
  READ_UINT_FIELD(refcollid, refcollid, refcollid);
365
370
  READ_LIST_FIELD(refupperindexpr, refupperindexpr, refupperindexpr);
@@ -447,6 +452,8 @@ _readScalarArrayOpExpr(OUT_TYPE(ScalarArrayOpExpr, ScalarArrayOpExpr) msg)
447
452
  ScalarArrayOpExpr *node = makeNode(ScalarArrayOpExpr);
448
453
  READ_UINT_FIELD(opno, opno, opno);
449
454
  READ_UINT_FIELD(opfuncid, opfuncid, opfuncid);
455
+ READ_UINT_FIELD(hashfuncid, hashfuncid, hashfuncid);
456
+ READ_UINT_FIELD(negfuncid, negfuncid, negfuncid);
450
457
  READ_BOOL_FIELD(use_or, useOr, useOr);
451
458
  READ_UINT_FIELD(inputcollid, inputcollid, inputcollid);
452
459
  READ_LIST_FIELD(args, args, args);
@@ -829,6 +836,7 @@ _readJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) msg)
829
836
  READ_NODE_PTR_FIELD(larg, larg, larg);
830
837
  READ_NODE_PTR_FIELD(rarg, rarg, rarg);
831
838
  READ_LIST_FIELD(using_clause, usingClause, usingClause);
839
+ READ_SPECIFIC_NODE_PTR_FIELD(Alias, alias, join_using_alias, join_using_alias, join_using_alias);
832
840
  READ_NODE_PTR_FIELD(quals, quals, quals);
833
841
  READ_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
834
842
  READ_INT_FIELD(rtindex, rtindex, rtindex);
@@ -874,6 +882,19 @@ _readIntoClause(OUT_TYPE(IntoClause, IntoClause) msg)
874
882
  return node;
875
883
  }
876
884
 
885
+ static MergeAction *
886
+ _readMergeAction(OUT_TYPE(MergeAction, MergeAction) msg)
887
+ {
888
+ MergeAction *node = makeNode(MergeAction);
889
+ READ_BOOL_FIELD(matched, matched, matched);
890
+ READ_ENUM_FIELD(CmdType, command_type, commandType, commandType);
891
+ READ_ENUM_FIELD(OverridingKind, override, override, override);
892
+ READ_NODE_PTR_FIELD(qual, qual, qual);
893
+ READ_LIST_FIELD(target_list, targetList, targetList);
894
+ READ_LIST_FIELD(update_colnos, updateColnos, updateColnos);
895
+ return node;
896
+ }
897
+
877
898
  static RawStmt *
878
899
  _readRawStmt(OUT_TYPE(RawStmt, RawStmt) msg)
879
900
  {
@@ -902,14 +923,18 @@ _readQuery(OUT_TYPE(Query, Query) msg)
902
923
  READ_BOOL_FIELD(has_modifying_cte, hasModifyingCTE, hasModifyingCTE);
903
924
  READ_BOOL_FIELD(has_for_update, hasForUpdate, hasForUpdate);
904
925
  READ_BOOL_FIELD(has_row_security, hasRowSecurity, hasRowSecurity);
926
+ READ_BOOL_FIELD(is_return, isReturn, isReturn);
905
927
  READ_LIST_FIELD(cte_list, cteList, cteList);
906
928
  READ_LIST_FIELD(rtable, rtable, rtable);
907
929
  READ_SPECIFIC_NODE_PTR_FIELD(FromExpr, from_expr, jointree, jointree, jointree);
930
+ READ_LIST_FIELD(merge_action_list, mergeActionList, mergeActionList);
931
+ READ_BOOL_FIELD(merge_use_outer_join, mergeUseOuterJoin, mergeUseOuterJoin);
908
932
  READ_LIST_FIELD(target_list, targetList, targetList);
909
933
  READ_ENUM_FIELD(OverridingKind, override, override, override);
910
934
  READ_SPECIFIC_NODE_PTR_FIELD(OnConflictExpr, on_conflict_expr, on_conflict, onConflict, onConflict);
911
935
  READ_LIST_FIELD(returning_list, returningList, returningList);
912
936
  READ_LIST_FIELD(group_clause, groupClause, groupClause);
937
+ READ_BOOL_FIELD(group_distinct, groupDistinct, groupDistinct);
913
938
  READ_LIST_FIELD(grouping_sets, groupingSets, groupingSets);
914
939
  READ_NODE_PTR_FIELD(having_qual, havingQual, havingQual);
915
940
  READ_LIST_FIELD(window_clause, windowClause, windowClause);
@@ -966,6 +991,18 @@ _readUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) msg)
966
991
  return node;
967
992
  }
968
993
 
994
+ static MergeStmt *
995
+ _readMergeStmt(OUT_TYPE(MergeStmt, MergeStmt) msg)
996
+ {
997
+ MergeStmt *node = makeNode(MergeStmt);
998
+ READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
999
+ READ_NODE_PTR_FIELD(source_relation, sourceRelation, sourceRelation);
1000
+ READ_NODE_PTR_FIELD(join_condition, joinCondition, joinCondition);
1001
+ READ_LIST_FIELD(merge_when_clauses, mergeWhenClauses, mergeWhenClauses);
1002
+ READ_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
1003
+ return node;
1004
+ }
1005
+
969
1006
  static SelectStmt *
970
1007
  _readSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) msg)
971
1008
  {
@@ -976,6 +1013,7 @@ _readSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) msg)
976
1013
  READ_LIST_FIELD(from_clause, fromClause, fromClause);
977
1014
  READ_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
978
1015
  READ_LIST_FIELD(group_clause, groupClause, groupClause);
1016
+ READ_BOOL_FIELD(group_distinct, groupDistinct, groupDistinct);
979
1017
  READ_NODE_PTR_FIELD(having_clause, havingClause, havingClause);
980
1018
  READ_LIST_FIELD(window_clause, windowClause, windowClause);
981
1019
  READ_LIST_FIELD(values_lists, valuesLists, valuesLists);
@@ -992,13 +1030,33 @@ _readSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) msg)
992
1030
  return node;
993
1031
  }
994
1032
 
1033
+ static ReturnStmt *
1034
+ _readReturnStmt(OUT_TYPE(ReturnStmt, ReturnStmt) msg)
1035
+ {
1036
+ ReturnStmt *node = makeNode(ReturnStmt);
1037
+ READ_NODE_PTR_FIELD(returnval, returnval, returnval);
1038
+ return node;
1039
+ }
1040
+
1041
+ static PLAssignStmt *
1042
+ _readPLAssignStmt(OUT_TYPE(PLAssignStmt, PLAssignStmt) msg)
1043
+ {
1044
+ PLAssignStmt *node = makeNode(PLAssignStmt);
1045
+ READ_STRING_FIELD(name, name, name);
1046
+ READ_LIST_FIELD(indirection, indirection, indirection);
1047
+ READ_INT_FIELD(nnames, nnames, nnames);
1048
+ READ_SPECIFIC_NODE_PTR_FIELD(SelectStmt, select_stmt, val, val, val);
1049
+ READ_INT_FIELD(location, location, location);
1050
+ return node;
1051
+ }
1052
+
995
1053
  static AlterTableStmt *
996
1054
  _readAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) msg)
997
1055
  {
998
1056
  AlterTableStmt *node = makeNode(AlterTableStmt);
999
1057
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1000
1058
  READ_LIST_FIELD(cmds, cmds, cmds);
1001
- READ_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
1059
+ READ_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1002
1060
  READ_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1003
1061
  return node;
1004
1062
  }
@@ -1057,6 +1115,7 @@ _readGrantStmt(OUT_TYPE(GrantStmt, GrantStmt) msg)
1057
1115
  READ_LIST_FIELD(privileges, privileges, privileges);
1058
1116
  READ_LIST_FIELD(grantees, grantees, grantees);
1059
1117
  READ_BOOL_FIELD(grant_option, grant_option, grant_option);
1118
+ READ_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, grantor, grantor, grantor);
1060
1119
  READ_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1061
1120
  return node;
1062
1121
  }
@@ -1097,7 +1156,7 @@ _readClusterStmt(OUT_TYPE(ClusterStmt, ClusterStmt) msg)
1097
1156
  ClusterStmt *node = makeNode(ClusterStmt);
1098
1157
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1099
1158
  READ_STRING_FIELD(indexname, indexname, indexname);
1100
- READ_INT_FIELD(options, options, options);
1159
+ READ_LIST_FIELD(params, params, params);
1101
1160
  return node;
1102
1161
  }
1103
1162
 
@@ -1211,6 +1270,7 @@ _readIndexStmt(OUT_TYPE(IndexStmt, IndexStmt) msg)
1211
1270
  READ_UINT_FIELD(old_create_subid, oldCreateSubid, oldCreateSubid);
1212
1271
  READ_UINT_FIELD(old_first_relfilenode_subid, oldFirstRelfilenodeSubid, oldFirstRelfilenodeSubid);
1213
1272
  READ_BOOL_FIELD(unique, unique, unique);
1273
+ READ_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
1214
1274
  READ_BOOL_FIELD(primary, primary, primary);
1215
1275
  READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1216
1276
  READ_BOOL_FIELD(deferrable, deferrable, deferrable);
@@ -1232,6 +1292,7 @@ _readCreateFunctionStmt(OUT_TYPE(CreateFunctionStmt, CreateFunctionStmt) msg)
1232
1292
  READ_LIST_FIELD(parameters, parameters, parameters);
1233
1293
  READ_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, return_type, returnType, returnType);
1234
1294
  READ_LIST_FIELD(options, options, options);
1295
+ READ_NODE_PTR_FIELD(sql_body, sql_body, sql_body);
1235
1296
  return node;
1236
1297
  }
1237
1298
 
@@ -1395,7 +1456,7 @@ _readCreateTableAsStmt(OUT_TYPE(CreateTableAsStmt, CreateTableAsStmt) msg)
1395
1456
  CreateTableAsStmt *node = makeNode(CreateTableAsStmt);
1396
1457
  READ_NODE_PTR_FIELD(query, query, query);
1397
1458
  READ_SPECIFIC_NODE_PTR_FIELD(IntoClause, into_clause, into, into, into);
1398
- READ_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
1459
+ READ_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1399
1460
  READ_BOOL_FIELD(is_select_into, is_select_into, is_select_into);
1400
1461
  READ_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1401
1462
  return node;
@@ -1455,6 +1516,8 @@ static CreateTrigStmt *
1455
1516
  _readCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) msg)
1456
1517
  {
1457
1518
  CreateTrigStmt *node = makeNode(CreateTrigStmt);
1519
+ READ_BOOL_FIELD(replace, replace, replace);
1520
+ READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1458
1521
  READ_STRING_FIELD(trigname, trigname, trigname);
1459
1522
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1460
1523
  READ_LIST_FIELD(funcname, funcname, funcname);
@@ -1464,7 +1527,6 @@ _readCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) msg)
1464
1527
  READ_INT_FIELD(events, events, events);
1465
1528
  READ_LIST_FIELD(columns, columns, columns);
1466
1529
  READ_NODE_PTR_FIELD(when_clause, whenClause, whenClause);
1467
- READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1468
1530
  READ_LIST_FIELD(transition_rels, transitionRels, transitionRels);
1469
1531
  READ_BOOL_FIELD(deferrable, deferrable, deferrable);
1470
1532
  READ_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
@@ -1540,8 +1602,7 @@ _readReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) msg)
1540
1602
  READ_ENUM_FIELD(ReindexObjectType, kind, kind, kind);
1541
1603
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1542
1604
  READ_STRING_FIELD(name, name, name);
1543
- READ_INT_FIELD(options, options, options);
1544
- READ_BOOL_FIELD(concurrent, concurrent, concurrent);
1605
+ READ_LIST_FIELD(params, params, params);
1545
1606
  return node;
1546
1607
  }
1547
1608
 
@@ -1572,6 +1633,14 @@ _readAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) msg)
1572
1633
  return node;
1573
1634
  }
1574
1635
 
1636
+ static AlterDatabaseRefreshCollStmt *
1637
+ _readAlterDatabaseRefreshCollStmt(OUT_TYPE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt) msg)
1638
+ {
1639
+ AlterDatabaseRefreshCollStmt *node = makeNode(AlterDatabaseRefreshCollStmt);
1640
+ READ_STRING_FIELD(dbname, dbname, dbname);
1641
+ return node;
1642
+ }
1643
+
1575
1644
  static AlterDatabaseSetStmt *
1576
1645
  _readAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) msg)
1577
1646
  {
@@ -1712,7 +1781,7 @@ _readAlterObjectDependsStmt(OUT_TYPE(AlterObjectDependsStmt, AlterObjectDependsS
1712
1781
  READ_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1713
1782
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1714
1783
  READ_NODE_PTR_FIELD(object, object, object);
1715
- READ_VALUE_PTR_FIELD(extname, extname, extname);
1784
+ READ_SPECIFIC_NODE_PTR_FIELD(String, string, extname, extname, extname);
1716
1785
  READ_BOOL_FIELD(remove, remove, remove);
1717
1786
  return node;
1718
1787
  }
@@ -2102,7 +2171,7 @@ _readCreatePublicationStmt(OUT_TYPE(CreatePublicationStmt, CreatePublicationStmt
2102
2171
  CreatePublicationStmt *node = makeNode(CreatePublicationStmt);
2103
2172
  READ_STRING_FIELD(pubname, pubname, pubname);
2104
2173
  READ_LIST_FIELD(options, options, options);
2105
- READ_LIST_FIELD(tables, tables, tables);
2174
+ READ_LIST_FIELD(pubobjects, pubobjects, pubobjects);
2106
2175
  READ_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
2107
2176
  return node;
2108
2177
  }
@@ -2113,9 +2182,9 @@ _readAlterPublicationStmt(OUT_TYPE(AlterPublicationStmt, AlterPublicationStmt) m
2113
2182
  AlterPublicationStmt *node = makeNode(AlterPublicationStmt);
2114
2183
  READ_STRING_FIELD(pubname, pubname, pubname);
2115
2184
  READ_LIST_FIELD(options, options, options);
2116
- READ_LIST_FIELD(tables, tables, tables);
2185
+ READ_LIST_FIELD(pubobjects, pubobjects, pubobjects);
2117
2186
  READ_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
2118
- READ_ENUM_FIELD(DefElemAction, table_action, tableAction, tableAction);
2187
+ READ_ENUM_FIELD(AlterPublicationAction, action, action, action);
2119
2188
  return node;
2120
2189
  }
2121
2190
 
@@ -2161,6 +2230,7 @@ _readCreateStatsStmt(OUT_TYPE(CreateStatsStmt, CreateStatsStmt) msg)
2161
2230
  READ_LIST_FIELD(exprs, exprs, exprs);
2162
2231
  READ_LIST_FIELD(relations, relations, relations);
2163
2232
  READ_STRING_FIELD(stxcomment, stxcomment, stxcomment);
2233
+ READ_BOOL_FIELD(transformed, transformed, transformed);
2164
2234
  READ_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
2165
2235
  return node;
2166
2236
  }
@@ -2179,6 +2249,7 @@ _readCallStmt(OUT_TYPE(CallStmt, CallStmt) msg)
2179
2249
  CallStmt *node = makeNode(CallStmt);
2180
2250
  READ_SPECIFIC_NODE_PTR_FIELD(FuncCall, func_call, funccall, funccall, funccall);
2181
2251
  READ_SPECIFIC_NODE_PTR_FIELD(FuncExpr, func_expr, funcexpr, funcexpr, funcexpr);
2252
+ READ_LIST_FIELD(outargs, outargs, outargs);
2182
2253
  return node;
2183
2254
  }
2184
2255
 
@@ -2222,15 +2293,6 @@ _readParamRef(OUT_TYPE(ParamRef, ParamRef) msg)
2222
2293
  return node;
2223
2294
  }
2224
2295
 
2225
- static A_Const *
2226
- _readAConst(OUT_TYPE(A_Const, AConst) msg)
2227
- {
2228
- A_Const *node = makeNode(A_Const);
2229
- READ_VALUE_FIELD(val, val, val);
2230
- READ_INT_FIELD(location, location, location);
2231
- return node;
2232
- }
2233
-
2234
2296
  static FuncCall *
2235
2297
  _readFuncCall(OUT_TYPE(FuncCall, FuncCall) msg)
2236
2298
  {
@@ -2239,11 +2301,12 @@ _readFuncCall(OUT_TYPE(FuncCall, FuncCall) msg)
2239
2301
  READ_LIST_FIELD(args, args, args);
2240
2302
  READ_LIST_FIELD(agg_order, agg_order, agg_order);
2241
2303
  READ_NODE_PTR_FIELD(agg_filter, agg_filter, agg_filter);
2304
+ READ_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
2242
2305
  READ_BOOL_FIELD(agg_within_group, agg_within_group, agg_within_group);
2243
2306
  READ_BOOL_FIELD(agg_star, agg_star, agg_star);
2244
2307
  READ_BOOL_FIELD(agg_distinct, agg_distinct, agg_distinct);
2245
2308
  READ_BOOL_FIELD(func_variadic, func_variadic, func_variadic);
2246
- READ_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
2309
+ READ_ENUM_FIELD(CoercionForm, funcformat, funcformat, funcformat);
2247
2310
  READ_INT_FIELD(location, location, location);
2248
2311
  return node;
2249
2312
  }
@@ -2435,6 +2498,7 @@ _readColumnDef(OUT_TYPE(ColumnDef, ColumnDef) msg)
2435
2498
  ColumnDef *node = makeNode(ColumnDef);
2436
2499
  READ_STRING_FIELD(colname, colname, colname);
2437
2500
  READ_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2501
+ READ_STRING_FIELD(compression, compression, compression);
2438
2502
  READ_INT_FIELD(inhcount, inhcount, inhcount);
2439
2503
  READ_BOOL_FIELD(is_local, is_local, is_local);
2440
2504
  READ_BOOL_FIELD(is_not_null, is_not_null, is_not_null);
@@ -2468,6 +2532,15 @@ _readIndexElem(OUT_TYPE(IndexElem, IndexElem) msg)
2468
2532
  return node;
2469
2533
  }
2470
2534
 
2535
+ static StatsElem *
2536
+ _readStatsElem(OUT_TYPE(StatsElem, StatsElem) msg)
2537
+ {
2538
+ StatsElem *node = makeNode(StatsElem);
2539
+ READ_STRING_FIELD(name, name, name);
2540
+ READ_NODE_PTR_FIELD(expr, expr, expr);
2541
+ return node;
2542
+ }
2543
+
2471
2544
  static Constraint *
2472
2545
  _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2473
2546
  {
@@ -2481,6 +2554,7 @@ _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2481
2554
  READ_NODE_PTR_FIELD(raw_expr, raw_expr, raw_expr);
2482
2555
  READ_STRING_FIELD(cooked_expr, cooked_expr, cooked_expr);
2483
2556
  READ_CHAR_FIELD(generated_when, generated_when, generated_when);
2557
+ READ_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
2484
2558
  READ_LIST_FIELD(keys, keys, keys);
2485
2559
  READ_LIST_FIELD(including, including, including);
2486
2560
  READ_LIST_FIELD(exclusions, exclusions, exclusions);
@@ -2496,6 +2570,7 @@ _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2496
2570
  READ_CHAR_FIELD(fk_matchtype, fk_matchtype, fk_matchtype);
2497
2571
  READ_CHAR_FIELD(fk_upd_action, fk_upd_action, fk_upd_action);
2498
2572
  READ_CHAR_FIELD(fk_del_action, fk_del_action, fk_del_action);
2573
+ READ_LIST_FIELD(fk_del_set_cols, fk_del_set_cols, fk_del_set_cols);
2499
2574
  READ_LIST_FIELD(old_conpfeqop, old_conpfeqop, old_conpfeqop);
2500
2575
  READ_UINT_FIELD(old_pktable_oid, old_pktable_oid, old_pktable_oid);
2501
2576
  READ_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
@@ -2531,6 +2606,7 @@ _readRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) msg)
2531
2606
  READ_LIST_FIELD(joinaliasvars, joinaliasvars, joinaliasvars);
2532
2607
  READ_LIST_FIELD(joinleftcols, joinleftcols, joinleftcols);
2533
2608
  READ_LIST_FIELD(joinrightcols, joinrightcols, joinrightcols);
2609
+ READ_SPECIFIC_NODE_PTR_FIELD(Alias, alias, join_using_alias, join_using_alias, join_using_alias);
2534
2610
  READ_LIST_FIELD(functions, functions, functions);
2535
2611
  READ_BOOL_FIELD(funcordinality, funcordinality, funcordinality);
2536
2612
  READ_SPECIFIC_NODE_PTR_FIELD(TableFunc, table_func, tablefunc, tablefunc, tablefunc);
@@ -2627,6 +2703,7 @@ _readWindowClause(OUT_TYPE(WindowClause, WindowClause) msg)
2627
2703
  READ_INT_FIELD(frame_options, frameOptions, frameOptions);
2628
2704
  READ_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
2629
2705
  READ_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
2706
+ READ_LIST_FIELD(run_condition, runCondition, runCondition);
2630
2707
  READ_UINT_FIELD(start_in_range_func, startInRangeFunc, startInRangeFunc);
2631
2708
  READ_UINT_FIELD(end_in_range_func, endInRangeFunc, endInRangeFunc);
2632
2709
  READ_UINT_FIELD(in_range_coll, inRangeColl, inRangeColl);
@@ -2643,6 +2720,7 @@ _readObjectWithArgs(OUT_TYPE(ObjectWithArgs, ObjectWithArgs) msg)
2643
2720
  ObjectWithArgs *node = makeNode(ObjectWithArgs);
2644
2721
  READ_LIST_FIELD(objname, objname, objname);
2645
2722
  READ_LIST_FIELD(objargs, objargs, objargs);
2723
+ READ_LIST_FIELD(objfuncargs, objfuncargs, objfuncargs);
2646
2724
  READ_BOOL_FIELD(args_unspecified, args_unspecified, args_unspecified);
2647
2725
  return node;
2648
2726
  }
@@ -2755,6 +2833,34 @@ _readOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) msg)
2755
2833
  return node;
2756
2834
  }
2757
2835
 
2836
+ static CTESearchClause *
2837
+ _readCTESearchClause(OUT_TYPE(CTESearchClause, CTESearchClause) msg)
2838
+ {
2839
+ CTESearchClause *node = makeNode(CTESearchClause);
2840
+ READ_LIST_FIELD(search_col_list, search_col_list, search_col_list);
2841
+ READ_BOOL_FIELD(search_breadth_first, search_breadth_first, search_breadth_first);
2842
+ READ_STRING_FIELD(search_seq_column, search_seq_column, search_seq_column);
2843
+ READ_INT_FIELD(location, location, location);
2844
+ return node;
2845
+ }
2846
+
2847
+ static CTECycleClause *
2848
+ _readCTECycleClause(OUT_TYPE(CTECycleClause, CTECycleClause) msg)
2849
+ {
2850
+ CTECycleClause *node = makeNode(CTECycleClause);
2851
+ READ_LIST_FIELD(cycle_col_list, cycle_col_list, cycle_col_list);
2852
+ READ_STRING_FIELD(cycle_mark_column, cycle_mark_column, cycle_mark_column);
2853
+ READ_NODE_PTR_FIELD(cycle_mark_value, cycle_mark_value, cycle_mark_value);
2854
+ READ_NODE_PTR_FIELD(cycle_mark_default, cycle_mark_default, cycle_mark_default);
2855
+ READ_STRING_FIELD(cycle_path_column, cycle_path_column, cycle_path_column);
2856
+ READ_INT_FIELD(location, location, location);
2857
+ READ_UINT_FIELD(cycle_mark_type, cycle_mark_type, cycle_mark_type);
2858
+ READ_INT_FIELD(cycle_mark_typmod, cycle_mark_typmod, cycle_mark_typmod);
2859
+ READ_UINT_FIELD(cycle_mark_collation, cycle_mark_collation, cycle_mark_collation);
2860
+ READ_UINT_FIELD(cycle_mark_neop, cycle_mark_neop, cycle_mark_neop);
2861
+ return node;
2862
+ }
2863
+
2758
2864
  static CommonTableExpr *
2759
2865
  _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2760
2866
  {
@@ -2763,6 +2869,8 @@ _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2763
2869
  READ_LIST_FIELD(aliascolnames, aliascolnames, aliascolnames);
2764
2870
  READ_ENUM_FIELD(CTEMaterialize, ctematerialized, ctematerialized, ctematerialized);
2765
2871
  READ_NODE_PTR_FIELD(ctequery, ctequery, ctequery);
2872
+ READ_SPECIFIC_NODE_PTR_FIELD(CTESearchClause, ctesearch_clause, search_clause, search_clause, search_clause);
2873
+ READ_SPECIFIC_NODE_PTR_FIELD(CTECycleClause, ctecycle_clause, cycle_clause, cycle_clause, cycle_clause);
2766
2874
  READ_INT_FIELD(location, location, location);
2767
2875
  READ_BOOL_FIELD(cterecursive, cterecursive, cterecursive);
2768
2876
  READ_INT_FIELD(cterefcount, cterefcount, cterefcount);
@@ -2773,6 +2881,19 @@ _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2773
2881
  return node;
2774
2882
  }
2775
2883
 
2884
+ static MergeWhenClause *
2885
+ _readMergeWhenClause(OUT_TYPE(MergeWhenClause, MergeWhenClause) msg)
2886
+ {
2887
+ MergeWhenClause *node = makeNode(MergeWhenClause);
2888
+ READ_BOOL_FIELD(matched, matched, matched);
2889
+ READ_ENUM_FIELD(CmdType, command_type, commandType, commandType);
2890
+ READ_ENUM_FIELD(OverridingKind, override, override, override);
2891
+ READ_NODE_PTR_FIELD(condition, condition, condition);
2892
+ READ_LIST_FIELD(target_list, targetList, targetList);
2893
+ READ_LIST_FIELD(values, values, values);
2894
+ return node;
2895
+ }
2896
+
2776
2897
  static RoleSpec *
2777
2898
  _readRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) msg)
2778
2899
  {
@@ -2846,6 +2967,7 @@ _readPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) msg)
2846
2967
  PartitionCmd *node = makeNode(PartitionCmd);
2847
2968
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, name, name, name);
2848
2969
  READ_SPECIFIC_NODE_PTR_FIELD(PartitionBoundSpec, partition_bound_spec, bound, bound, bound);
2970
+ READ_BOOL_FIELD(concurrent, concurrent, concurrent);
2849
2971
  return node;
2850
2972
  }
2851
2973
 
@@ -2859,6 +2981,27 @@ _readVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) msg)
2859
2981
  return node;
2860
2982
  }
2861
2983
 
2984
+ static PublicationObjSpec *
2985
+ _readPublicationObjSpec(OUT_TYPE(PublicationObjSpec, PublicationObjSpec) msg)
2986
+ {
2987
+ PublicationObjSpec *node = makeNode(PublicationObjSpec);
2988
+ READ_ENUM_FIELD(PublicationObjSpecType, pubobjtype, pubobjtype, pubobjtype);
2989
+ READ_STRING_FIELD(name, name, name);
2990
+ READ_SPECIFIC_NODE_PTR_FIELD(PublicationTable, publication_table, pubtable, pubtable, pubtable);
2991
+ READ_INT_FIELD(location, location, location);
2992
+ return node;
2993
+ }
2994
+
2995
+ static PublicationTable *
2996
+ _readPublicationTable(OUT_TYPE(PublicationTable, PublicationTable) msg)
2997
+ {
2998
+ PublicationTable *node = makeNode(PublicationTable);
2999
+ READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
3000
+ READ_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
3001
+ READ_LIST_FIELD(columns, columns, columns);
3002
+ return node;
3003
+ }
3004
+
2862
3005
  static InlineCodeBlock *
2863
3006
  _readInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) msg)
2864
3007
  {
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Definitions for the PostgreSQL tracing framework
5
5
  *
6
- * Copyright (c) 2006-2020, PostgreSQL Global Development Group
6
+ * Copyright (c) 2006-2022, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/pg_trace.h
9
9
  * ----------