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
@@ -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
  }
@@ -1014,6 +1072,7 @@ _readAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) msg)
1014
1072
  READ_NODE_PTR_FIELD(def, def, def);
1015
1073
  READ_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1016
1074
  READ_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1075
+ READ_BOOL_FIELD(recurse, recurse, recurse);
1017
1076
  return node;
1018
1077
  }
1019
1078
 
@@ -1056,6 +1115,7 @@ _readGrantStmt(OUT_TYPE(GrantStmt, GrantStmt) msg)
1056
1115
  READ_LIST_FIELD(privileges, privileges, privileges);
1057
1116
  READ_LIST_FIELD(grantees, grantees, grantees);
1058
1117
  READ_BOOL_FIELD(grant_option, grant_option, grant_option);
1118
+ READ_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, grantor, grantor, grantor);
1059
1119
  READ_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1060
1120
  return node;
1061
1121
  }
@@ -1096,7 +1156,7 @@ _readClusterStmt(OUT_TYPE(ClusterStmt, ClusterStmt) msg)
1096
1156
  ClusterStmt *node = makeNode(ClusterStmt);
1097
1157
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1098
1158
  READ_STRING_FIELD(indexname, indexname, indexname);
1099
- READ_INT_FIELD(options, options, options);
1159
+ READ_LIST_FIELD(params, params, params);
1100
1160
  return node;
1101
1161
  }
1102
1162
 
@@ -1210,6 +1270,7 @@ _readIndexStmt(OUT_TYPE(IndexStmt, IndexStmt) msg)
1210
1270
  READ_UINT_FIELD(old_create_subid, oldCreateSubid, oldCreateSubid);
1211
1271
  READ_UINT_FIELD(old_first_relfilenode_subid, oldFirstRelfilenodeSubid, oldFirstRelfilenodeSubid);
1212
1272
  READ_BOOL_FIELD(unique, unique, unique);
1273
+ READ_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
1213
1274
  READ_BOOL_FIELD(primary, primary, primary);
1214
1275
  READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1215
1276
  READ_BOOL_FIELD(deferrable, deferrable, deferrable);
@@ -1231,6 +1292,7 @@ _readCreateFunctionStmt(OUT_TYPE(CreateFunctionStmt, CreateFunctionStmt) msg)
1231
1292
  READ_LIST_FIELD(parameters, parameters, parameters);
1232
1293
  READ_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, return_type, returnType, returnType);
1233
1294
  READ_LIST_FIELD(options, options, options);
1295
+ READ_NODE_PTR_FIELD(sql_body, sql_body, sql_body);
1234
1296
  return node;
1235
1297
  }
1236
1298
 
@@ -1394,7 +1456,7 @@ _readCreateTableAsStmt(OUT_TYPE(CreateTableAsStmt, CreateTableAsStmt) msg)
1394
1456
  CreateTableAsStmt *node = makeNode(CreateTableAsStmt);
1395
1457
  READ_NODE_PTR_FIELD(query, query, query);
1396
1458
  READ_SPECIFIC_NODE_PTR_FIELD(IntoClause, into_clause, into, into, into);
1397
- READ_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
1459
+ READ_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1398
1460
  READ_BOOL_FIELD(is_select_into, is_select_into, is_select_into);
1399
1461
  READ_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1400
1462
  return node;
@@ -1454,6 +1516,8 @@ static CreateTrigStmt *
1454
1516
  _readCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) msg)
1455
1517
  {
1456
1518
  CreateTrigStmt *node = makeNode(CreateTrigStmt);
1519
+ READ_BOOL_FIELD(replace, replace, replace);
1520
+ READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1457
1521
  READ_STRING_FIELD(trigname, trigname, trigname);
1458
1522
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1459
1523
  READ_LIST_FIELD(funcname, funcname, funcname);
@@ -1463,7 +1527,6 @@ _readCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) msg)
1463
1527
  READ_INT_FIELD(events, events, events);
1464
1528
  READ_LIST_FIELD(columns, columns, columns);
1465
1529
  READ_NODE_PTR_FIELD(when_clause, whenClause, whenClause);
1466
- READ_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1467
1530
  READ_LIST_FIELD(transition_rels, transitionRels, transitionRels);
1468
1531
  READ_BOOL_FIELD(deferrable, deferrable, deferrable);
1469
1532
  READ_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
@@ -1539,8 +1602,7 @@ _readReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) msg)
1539
1602
  READ_ENUM_FIELD(ReindexObjectType, kind, kind, kind);
1540
1603
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1541
1604
  READ_STRING_FIELD(name, name, name);
1542
- READ_INT_FIELD(options, options, options);
1543
- READ_BOOL_FIELD(concurrent, concurrent, concurrent);
1605
+ READ_LIST_FIELD(params, params, params);
1544
1606
  return node;
1545
1607
  }
1546
1608
 
@@ -1571,6 +1633,14 @@ _readAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) msg)
1571
1633
  return node;
1572
1634
  }
1573
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
+
1574
1644
  static AlterDatabaseSetStmt *
1575
1645
  _readAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) msg)
1576
1646
  {
@@ -1711,7 +1781,7 @@ _readAlterObjectDependsStmt(OUT_TYPE(AlterObjectDependsStmt, AlterObjectDependsS
1711
1781
  READ_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1712
1782
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1713
1783
  READ_NODE_PTR_FIELD(object, object, object);
1714
- READ_VALUE_PTR_FIELD(extname, extname, extname);
1784
+ READ_SPECIFIC_NODE_PTR_FIELD(String, string, extname, extname, extname);
1715
1785
  READ_BOOL_FIELD(remove, remove, remove);
1716
1786
  return node;
1717
1787
  }
@@ -2101,7 +2171,7 @@ _readCreatePublicationStmt(OUT_TYPE(CreatePublicationStmt, CreatePublicationStmt
2101
2171
  CreatePublicationStmt *node = makeNode(CreatePublicationStmt);
2102
2172
  READ_STRING_FIELD(pubname, pubname, pubname);
2103
2173
  READ_LIST_FIELD(options, options, options);
2104
- READ_LIST_FIELD(tables, tables, tables);
2174
+ READ_LIST_FIELD(pubobjects, pubobjects, pubobjects);
2105
2175
  READ_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
2106
2176
  return node;
2107
2177
  }
@@ -2112,9 +2182,9 @@ _readAlterPublicationStmt(OUT_TYPE(AlterPublicationStmt, AlterPublicationStmt) m
2112
2182
  AlterPublicationStmt *node = makeNode(AlterPublicationStmt);
2113
2183
  READ_STRING_FIELD(pubname, pubname, pubname);
2114
2184
  READ_LIST_FIELD(options, options, options);
2115
- READ_LIST_FIELD(tables, tables, tables);
2185
+ READ_LIST_FIELD(pubobjects, pubobjects, pubobjects);
2116
2186
  READ_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
2117
- READ_ENUM_FIELD(DefElemAction, table_action, tableAction, tableAction);
2187
+ READ_ENUM_FIELD(AlterPublicationAction, action, action, action);
2118
2188
  return node;
2119
2189
  }
2120
2190
 
@@ -2160,6 +2230,7 @@ _readCreateStatsStmt(OUT_TYPE(CreateStatsStmt, CreateStatsStmt) msg)
2160
2230
  READ_LIST_FIELD(exprs, exprs, exprs);
2161
2231
  READ_LIST_FIELD(relations, relations, relations);
2162
2232
  READ_STRING_FIELD(stxcomment, stxcomment, stxcomment);
2233
+ READ_BOOL_FIELD(transformed, transformed, transformed);
2163
2234
  READ_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
2164
2235
  return node;
2165
2236
  }
@@ -2178,6 +2249,7 @@ _readCallStmt(OUT_TYPE(CallStmt, CallStmt) msg)
2178
2249
  CallStmt *node = makeNode(CallStmt);
2179
2250
  READ_SPECIFIC_NODE_PTR_FIELD(FuncCall, func_call, funccall, funccall, funccall);
2180
2251
  READ_SPECIFIC_NODE_PTR_FIELD(FuncExpr, func_expr, funcexpr, funcexpr, funcexpr);
2252
+ READ_LIST_FIELD(outargs, outargs, outargs);
2181
2253
  return node;
2182
2254
  }
2183
2255
 
@@ -2221,15 +2293,6 @@ _readParamRef(OUT_TYPE(ParamRef, ParamRef) msg)
2221
2293
  return node;
2222
2294
  }
2223
2295
 
2224
- static A_Const *
2225
- _readAConst(OUT_TYPE(A_Const, AConst) msg)
2226
- {
2227
- A_Const *node = makeNode(A_Const);
2228
- READ_VALUE_FIELD(val, val, val);
2229
- READ_INT_FIELD(location, location, location);
2230
- return node;
2231
- }
2232
-
2233
2296
  static FuncCall *
2234
2297
  _readFuncCall(OUT_TYPE(FuncCall, FuncCall) msg)
2235
2298
  {
@@ -2238,11 +2301,12 @@ _readFuncCall(OUT_TYPE(FuncCall, FuncCall) msg)
2238
2301
  READ_LIST_FIELD(args, args, args);
2239
2302
  READ_LIST_FIELD(agg_order, agg_order, agg_order);
2240
2303
  READ_NODE_PTR_FIELD(agg_filter, agg_filter, agg_filter);
2304
+ READ_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
2241
2305
  READ_BOOL_FIELD(agg_within_group, agg_within_group, agg_within_group);
2242
2306
  READ_BOOL_FIELD(agg_star, agg_star, agg_star);
2243
2307
  READ_BOOL_FIELD(agg_distinct, agg_distinct, agg_distinct);
2244
2308
  READ_BOOL_FIELD(func_variadic, func_variadic, func_variadic);
2245
- READ_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
2309
+ READ_ENUM_FIELD(CoercionForm, funcformat, funcformat, funcformat);
2246
2310
  READ_INT_FIELD(location, location, location);
2247
2311
  return node;
2248
2312
  }
@@ -2434,6 +2498,7 @@ _readColumnDef(OUT_TYPE(ColumnDef, ColumnDef) msg)
2434
2498
  ColumnDef *node = makeNode(ColumnDef);
2435
2499
  READ_STRING_FIELD(colname, colname, colname);
2436
2500
  READ_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2501
+ READ_STRING_FIELD(compression, compression, compression);
2437
2502
  READ_INT_FIELD(inhcount, inhcount, inhcount);
2438
2503
  READ_BOOL_FIELD(is_local, is_local, is_local);
2439
2504
  READ_BOOL_FIELD(is_not_null, is_not_null, is_not_null);
@@ -2467,6 +2532,15 @@ _readIndexElem(OUT_TYPE(IndexElem, IndexElem) msg)
2467
2532
  return node;
2468
2533
  }
2469
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
+
2470
2544
  static Constraint *
2471
2545
  _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2472
2546
  {
@@ -2480,6 +2554,7 @@ _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2480
2554
  READ_NODE_PTR_FIELD(raw_expr, raw_expr, raw_expr);
2481
2555
  READ_STRING_FIELD(cooked_expr, cooked_expr, cooked_expr);
2482
2556
  READ_CHAR_FIELD(generated_when, generated_when, generated_when);
2557
+ READ_BOOL_FIELD(nulls_not_distinct, nulls_not_distinct, nulls_not_distinct);
2483
2558
  READ_LIST_FIELD(keys, keys, keys);
2484
2559
  READ_LIST_FIELD(including, including, including);
2485
2560
  READ_LIST_FIELD(exclusions, exclusions, exclusions);
@@ -2495,6 +2570,7 @@ _readConstraint(OUT_TYPE(Constraint, Constraint) msg)
2495
2570
  READ_CHAR_FIELD(fk_matchtype, fk_matchtype, fk_matchtype);
2496
2571
  READ_CHAR_FIELD(fk_upd_action, fk_upd_action, fk_upd_action);
2497
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);
2498
2574
  READ_LIST_FIELD(old_conpfeqop, old_conpfeqop, old_conpfeqop);
2499
2575
  READ_UINT_FIELD(old_pktable_oid, old_pktable_oid, old_pktable_oid);
2500
2576
  READ_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
@@ -2530,6 +2606,7 @@ _readRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) msg)
2530
2606
  READ_LIST_FIELD(joinaliasvars, joinaliasvars, joinaliasvars);
2531
2607
  READ_LIST_FIELD(joinleftcols, joinleftcols, joinleftcols);
2532
2608
  READ_LIST_FIELD(joinrightcols, joinrightcols, joinrightcols);
2609
+ READ_SPECIFIC_NODE_PTR_FIELD(Alias, alias, join_using_alias, join_using_alias, join_using_alias);
2533
2610
  READ_LIST_FIELD(functions, functions, functions);
2534
2611
  READ_BOOL_FIELD(funcordinality, funcordinality, funcordinality);
2535
2612
  READ_SPECIFIC_NODE_PTR_FIELD(TableFunc, table_func, tablefunc, tablefunc, tablefunc);
@@ -2626,6 +2703,7 @@ _readWindowClause(OUT_TYPE(WindowClause, WindowClause) msg)
2626
2703
  READ_INT_FIELD(frame_options, frameOptions, frameOptions);
2627
2704
  READ_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
2628
2705
  READ_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
2706
+ READ_LIST_FIELD(run_condition, runCondition, runCondition);
2629
2707
  READ_UINT_FIELD(start_in_range_func, startInRangeFunc, startInRangeFunc);
2630
2708
  READ_UINT_FIELD(end_in_range_func, endInRangeFunc, endInRangeFunc);
2631
2709
  READ_UINT_FIELD(in_range_coll, inRangeColl, inRangeColl);
@@ -2642,6 +2720,7 @@ _readObjectWithArgs(OUT_TYPE(ObjectWithArgs, ObjectWithArgs) msg)
2642
2720
  ObjectWithArgs *node = makeNode(ObjectWithArgs);
2643
2721
  READ_LIST_FIELD(objname, objname, objname);
2644
2722
  READ_LIST_FIELD(objargs, objargs, objargs);
2723
+ READ_LIST_FIELD(objfuncargs, objfuncargs, objfuncargs);
2645
2724
  READ_BOOL_FIELD(args_unspecified, args_unspecified, args_unspecified);
2646
2725
  return node;
2647
2726
  }
@@ -2754,6 +2833,34 @@ _readOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) msg)
2754
2833
  return node;
2755
2834
  }
2756
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
+
2757
2864
  static CommonTableExpr *
2758
2865
  _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2759
2866
  {
@@ -2762,6 +2869,8 @@ _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2762
2869
  READ_LIST_FIELD(aliascolnames, aliascolnames, aliascolnames);
2763
2870
  READ_ENUM_FIELD(CTEMaterialize, ctematerialized, ctematerialized, ctematerialized);
2764
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);
2765
2874
  READ_INT_FIELD(location, location, location);
2766
2875
  READ_BOOL_FIELD(cterecursive, cterecursive, cterecursive);
2767
2876
  READ_INT_FIELD(cterefcount, cterefcount, cterefcount);
@@ -2772,6 +2881,19 @@ _readCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) msg)
2772
2881
  return node;
2773
2882
  }
2774
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
+
2775
2897
  static RoleSpec *
2776
2898
  _readRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) msg)
2777
2899
  {
@@ -2845,6 +2967,7 @@ _readPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) msg)
2845
2967
  PartitionCmd *node = makeNode(PartitionCmd);
2846
2968
  READ_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, name, name, name);
2847
2969
  READ_SPECIFIC_NODE_PTR_FIELD(PartitionBoundSpec, partition_bound_spec, bound, bound, bound);
2970
+ READ_BOOL_FIELD(concurrent, concurrent, concurrent);
2848
2971
  return node;
2849
2972
  }
2850
2973
 
@@ -2858,6 +2981,27 @@ _readVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) msg)
2858
2981
  return node;
2859
2982
  }
2860
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
+
2861
3005
  static InlineCodeBlock *
2862
3006
  _readInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) msg)
2863
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
  * ----------