pg_query 1.1.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (478) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +163 -52
  3. data/README.md +80 -69
  4. data/Rakefile +82 -1
  5. data/ext/pg_query/extconf.rb +3 -31
  6. data/ext/pg_query/guc-file.c +0 -0
  7. data/ext/pg_query/include/access/amapi.h +246 -0
  8. data/ext/pg_query/include/access/attmap.h +52 -0
  9. data/ext/pg_query/include/access/attnum.h +64 -0
  10. data/ext/pg_query/include/access/clog.h +61 -0
  11. data/ext/pg_query/include/access/commit_ts.h +77 -0
  12. data/ext/pg_query/include/access/detoast.h +92 -0
  13. data/ext/pg_query/include/access/genam.h +228 -0
  14. data/ext/pg_query/include/access/gin.h +78 -0
  15. data/ext/pg_query/include/access/htup.h +89 -0
  16. data/ext/pg_query/include/access/htup_details.h +819 -0
  17. data/ext/pg_query/include/access/itup.h +161 -0
  18. data/ext/pg_query/include/access/parallel.h +82 -0
  19. data/ext/pg_query/include/access/printtup.h +35 -0
  20. data/ext/pg_query/include/access/relation.h +28 -0
  21. data/ext/pg_query/include/access/relscan.h +176 -0
  22. data/ext/pg_query/include/access/rmgr.h +35 -0
  23. data/ext/pg_query/include/access/rmgrlist.h +49 -0
  24. data/ext/pg_query/include/access/sdir.h +58 -0
  25. data/ext/pg_query/include/access/skey.h +151 -0
  26. data/ext/pg_query/include/access/stratnum.h +83 -0
  27. data/ext/pg_query/include/access/sysattr.h +29 -0
  28. data/ext/pg_query/include/access/table.h +27 -0
  29. data/ext/pg_query/include/access/tableam.h +1825 -0
  30. data/ext/pg_query/include/access/transam.h +265 -0
  31. data/ext/pg_query/include/access/tupconvert.h +51 -0
  32. data/ext/pg_query/include/access/tupdesc.h +154 -0
  33. data/ext/pg_query/include/access/tupmacs.h +247 -0
  34. data/ext/pg_query/include/access/twophase.h +61 -0
  35. data/ext/pg_query/include/access/xact.h +463 -0
  36. data/ext/pg_query/include/access/xlog.h +398 -0
  37. data/ext/pg_query/include/access/xlog_internal.h +330 -0
  38. data/ext/pg_query/include/access/xlogdefs.h +109 -0
  39. data/ext/pg_query/include/access/xloginsert.h +64 -0
  40. data/ext/pg_query/include/access/xlogreader.h +327 -0
  41. data/ext/pg_query/include/access/xlogrecord.h +227 -0
  42. data/ext/pg_query/include/bootstrap/bootstrap.h +62 -0
  43. data/ext/pg_query/include/c.h +1322 -0
  44. data/ext/pg_query/include/catalog/catalog.h +42 -0
  45. data/ext/pg_query/include/catalog/catversion.h +58 -0
  46. data/ext/pg_query/include/catalog/dependency.h +275 -0
  47. data/ext/pg_query/include/catalog/genbki.h +64 -0
  48. data/ext/pg_query/include/catalog/index.h +199 -0
  49. data/ext/pg_query/include/catalog/indexing.h +366 -0
  50. data/ext/pg_query/include/catalog/namespace.h +188 -0
  51. data/ext/pg_query/include/catalog/objectaccess.h +197 -0
  52. data/ext/pg_query/include/catalog/objectaddress.h +84 -0
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +176 -0
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +77 -0
  55. data/ext/pg_query/include/catalog/pg_am.h +60 -0
  56. data/ext/pg_query/include/catalog/pg_am_d.h +45 -0
  57. data/ext/pg_query/include/catalog/pg_attribute.h +204 -0
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +59 -0
  59. data/ext/pg_query/include/catalog/pg_authid.h +58 -0
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +49 -0
  61. data/ext/pg_query/include/catalog/pg_class.h +200 -0
  62. data/ext/pg_query/include/catalog/pg_class_d.h +103 -0
  63. data/ext/pg_query/include/catalog/pg_collation.h +73 -0
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +45 -0
  65. data/ext/pg_query/include/catalog/pg_constraint.h +247 -0
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +67 -0
  67. data/ext/pg_query/include/catalog/pg_control.h +250 -0
  68. data/ext/pg_query/include/catalog/pg_conversion.h +72 -0
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +35 -0
  70. data/ext/pg_query/include/catalog/pg_depend.h +73 -0
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +34 -0
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +51 -0
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +34 -0
  74. data/ext/pg_query/include/catalog/pg_index.h +80 -0
  75. data/ext/pg_query/include/catalog/pg_index_d.h +56 -0
  76. data/ext/pg_query/include/catalog/pg_language.h +67 -0
  77. data/ext/pg_query/include/catalog/pg_language_d.h +39 -0
  78. data/ext/pg_query/include/catalog/pg_namespace.h +59 -0
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +34 -0
  80. data/ext/pg_query/include/catalog/pg_opclass.h +85 -0
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +49 -0
  82. data/ext/pg_query/include/catalog/pg_operator.h +102 -0
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +106 -0
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +60 -0
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +47 -0
  86. data/ext/pg_query/include/catalog/pg_partitioned_table.h +63 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +35 -0
  88. data/ext/pg_query/include/catalog/pg_proc.h +211 -0
  89. data/ext/pg_query/include/catalog/pg_proc_d.h +99 -0
  90. data/ext/pg_query/include/catalog/pg_publication.h +115 -0
  91. data/ext/pg_query/include/catalog/pg_publication_d.h +36 -0
  92. data/ext/pg_query/include/catalog/pg_replication_origin.h +57 -0
  93. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +29 -0
  94. data/ext/pg_query/include/catalog/pg_statistic.h +275 -0
  95. data/ext/pg_query/include/catalog/pg_statistic_d.h +194 -0
  96. data/ext/pg_query/include/catalog/pg_statistic_ext.h +74 -0
  97. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +40 -0
  98. data/ext/pg_query/include/catalog/pg_transform.h +45 -0
  99. data/ext/pg_query/include/catalog/pg_transform_d.h +32 -0
  100. data/ext/pg_query/include/catalog/pg_trigger.h +137 -0
  101. data/ext/pg_query/include/catalog/pg_trigger_d.h +106 -0
  102. data/ext/pg_query/include/catalog/pg_ts_config.h +50 -0
  103. data/ext/pg_query/include/catalog/pg_ts_config_d.h +32 -0
  104. data/ext/pg_query/include/catalog/pg_ts_dict.h +54 -0
  105. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +33 -0
  106. data/ext/pg_query/include/catalog/pg_ts_parser.h +57 -0
  107. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +35 -0
  108. data/ext/pg_query/include/catalog/pg_ts_template.h +48 -0
  109. data/ext/pg_query/include/catalog/pg_ts_template_d.h +32 -0
  110. data/ext/pg_query/include/catalog/pg_type.h +372 -0
  111. data/ext/pg_query/include/catalog/pg_type_d.h +285 -0
  112. data/ext/pg_query/include/catalog/storage.h +48 -0
  113. data/ext/pg_query/include/commands/async.h +54 -0
  114. data/ext/pg_query/include/commands/dbcommands.h +35 -0
  115. data/ext/pg_query/include/commands/defrem.h +173 -0
  116. data/ext/pg_query/include/commands/event_trigger.h +88 -0
  117. data/ext/pg_query/include/commands/explain.h +127 -0
  118. data/ext/pg_query/include/commands/prepare.h +61 -0
  119. data/ext/pg_query/include/commands/tablespace.h +67 -0
  120. data/ext/pg_query/include/commands/trigger.h +277 -0
  121. data/ext/pg_query/include/commands/user.h +37 -0
  122. data/ext/pg_query/include/commands/vacuum.h +293 -0
  123. data/ext/pg_query/include/commands/variable.h +38 -0
  124. data/ext/pg_query/include/common/file_perm.h +56 -0
  125. data/ext/pg_query/include/common/hashfn.h +104 -0
  126. data/ext/pg_query/include/common/ip.h +37 -0
  127. data/ext/pg_query/include/common/keywords.h +33 -0
  128. data/ext/pg_query/include/common/kwlookup.h +44 -0
  129. data/ext/pg_query/include/common/relpath.h +90 -0
  130. data/ext/pg_query/include/common/string.h +19 -0
  131. data/ext/pg_query/include/common/unicode_combining_table.h +196 -0
  132. data/ext/pg_query/include/datatype/timestamp.h +197 -0
  133. data/ext/pg_query/include/executor/execdesc.h +70 -0
  134. data/ext/pg_query/include/executor/executor.h +614 -0
  135. data/ext/pg_query/include/executor/functions.h +41 -0
  136. data/ext/pg_query/include/executor/instrument.h +101 -0
  137. data/ext/pg_query/include/executor/spi.h +175 -0
  138. data/ext/pg_query/include/executor/tablefunc.h +67 -0
  139. data/ext/pg_query/include/executor/tuptable.h +487 -0
  140. data/ext/pg_query/include/fmgr.h +775 -0
  141. data/ext/pg_query/include/funcapi.h +348 -0
  142. data/ext/pg_query/include/getaddrinfo.h +162 -0
  143. data/ext/pg_query/include/jit/jit.h +105 -0
  144. data/ext/pg_query/include/kwlist_d.h +1072 -0
  145. data/ext/pg_query/include/lib/ilist.h +727 -0
  146. data/ext/pg_query/include/lib/pairingheap.h +102 -0
  147. data/ext/pg_query/include/lib/simplehash.h +1059 -0
  148. data/ext/pg_query/include/lib/stringinfo.h +161 -0
  149. data/ext/pg_query/include/libpq/auth.h +29 -0
  150. data/ext/pg_query/include/libpq/crypt.h +46 -0
  151. data/ext/pg_query/include/libpq/hba.h +140 -0
  152. data/ext/pg_query/include/libpq/libpq-be.h +326 -0
  153. data/ext/pg_query/include/libpq/libpq.h +133 -0
  154. data/ext/pg_query/include/libpq/pqcomm.h +208 -0
  155. data/ext/pg_query/include/libpq/pqformat.h +210 -0
  156. data/ext/pg_query/include/libpq/pqsignal.h +42 -0
  157. data/ext/pg_query/include/mb/pg_wchar.h +672 -0
  158. data/ext/pg_query/include/mb/stringinfo_mb.h +24 -0
  159. data/ext/pg_query/include/miscadmin.h +476 -0
  160. data/ext/pg_query/include/nodes/bitmapset.h +122 -0
  161. data/ext/pg_query/include/nodes/execnodes.h +2520 -0
  162. data/ext/pg_query/include/nodes/extensible.h +160 -0
  163. data/ext/pg_query/include/nodes/lockoptions.h +61 -0
  164. data/ext/pg_query/include/nodes/makefuncs.h +108 -0
  165. data/ext/pg_query/include/nodes/memnodes.h +108 -0
  166. data/ext/pg_query/include/nodes/nodeFuncs.h +162 -0
  167. data/ext/pg_query/include/nodes/nodes.h +842 -0
  168. data/ext/pg_query/include/nodes/params.h +170 -0
  169. data/ext/pg_query/include/nodes/parsenodes.h +3579 -0
  170. data/ext/pg_query/include/nodes/pathnodes.h +2556 -0
  171. data/ext/pg_query/include/nodes/pg_list.h +605 -0
  172. data/ext/pg_query/include/nodes/plannodes.h +1251 -0
  173. data/ext/pg_query/include/nodes/primnodes.h +1541 -0
  174. data/ext/pg_query/include/nodes/print.h +34 -0
  175. data/ext/pg_query/include/nodes/tidbitmap.h +75 -0
  176. data/ext/pg_query/include/nodes/value.h +61 -0
  177. data/ext/pg_query/include/optimizer/cost.h +206 -0
  178. data/ext/pg_query/include/optimizer/geqo.h +88 -0
  179. data/ext/pg_query/include/optimizer/geqo_gene.h +45 -0
  180. data/ext/pg_query/include/optimizer/optimizer.h +199 -0
  181. data/ext/pg_query/include/optimizer/paths.h +249 -0
  182. data/ext/pg_query/include/optimizer/planmain.h +119 -0
  183. data/ext/pg_query/include/parser/analyze.h +49 -0
  184. data/ext/pg_query/include/parser/gram.h +1067 -0
  185. data/ext/pg_query/include/parser/gramparse.h +75 -0
  186. data/ext/pg_query/include/parser/kwlist.h +477 -0
  187. data/ext/pg_query/include/parser/parse_agg.h +68 -0
  188. data/ext/pg_query/include/parser/parse_clause.h +54 -0
  189. data/ext/pg_query/include/parser/parse_coerce.h +97 -0
  190. data/ext/pg_query/include/parser/parse_collate.h +27 -0
  191. data/ext/pg_query/include/parser/parse_expr.h +26 -0
  192. data/ext/pg_query/include/parser/parse_func.h +73 -0
  193. data/ext/pg_query/include/parser/parse_node.h +327 -0
  194. data/ext/pg_query/include/parser/parse_oper.h +67 -0
  195. data/ext/pg_query/include/parser/parse_relation.h +123 -0
  196. data/ext/pg_query/include/parser/parse_target.h +46 -0
  197. data/ext/pg_query/include/parser/parse_type.h +60 -0
  198. data/ext/pg_query/include/parser/parser.h +41 -0
  199. data/ext/pg_query/include/parser/parsetree.h +61 -0
  200. data/ext/pg_query/include/parser/scanner.h +152 -0
  201. data/ext/pg_query/include/parser/scansup.h +30 -0
  202. data/ext/pg_query/include/partitioning/partdefs.h +26 -0
  203. data/ext/pg_query/include/pg_config.h +988 -0
  204. data/ext/pg_query/include/pg_config_ext.h +8 -0
  205. data/ext/pg_query/include/pg_config_manual.h +350 -0
  206. data/ext/pg_query/include/pg_config_os.h +8 -0
  207. data/ext/pg_query/include/pg_getopt.h +56 -0
  208. data/ext/pg_query/include/pg_query.h +121 -0
  209. data/ext/pg_query/include/pg_query_enum_defs.c +2454 -0
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +875 -0
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +12413 -0
  212. data/ext/pg_query/include/pg_query_json_helper.c +61 -0
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +686 -0
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +2437 -0
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +222 -0
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +2878 -0
  217. data/ext/pg_query/include/pg_trace.h +17 -0
  218. data/ext/pg_query/include/pgstat.h +1487 -0
  219. data/ext/pg_query/include/pgtime.h +84 -0
  220. data/ext/pg_query/include/pl_gram.h +385 -0
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +52 -0
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +114 -0
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +112 -0
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +246 -0
  225. data/ext/pg_query/include/plerrcodes.h +990 -0
  226. data/ext/pg_query/include/plpgsql.h +1347 -0
  227. data/ext/pg_query/include/port.h +524 -0
  228. data/ext/pg_query/include/port/atomics.h +524 -0
  229. data/ext/pg_query/include/port/atomics/arch-arm.h +26 -0
  230. data/ext/pg_query/include/port/atomics/arch-ppc.h +254 -0
  231. data/ext/pg_query/include/port/atomics/arch-x86.h +252 -0
  232. data/ext/pg_query/include/port/atomics/fallback.h +170 -0
  233. data/ext/pg_query/include/port/atomics/generic-gcc.h +286 -0
  234. data/ext/pg_query/include/port/atomics/generic.h +401 -0
  235. data/ext/pg_query/include/port/pg_bitutils.h +226 -0
  236. data/ext/pg_query/include/port/pg_bswap.h +161 -0
  237. data/ext/pg_query/include/port/pg_crc32c.h +101 -0
  238. data/ext/pg_query/include/portability/instr_time.h +256 -0
  239. data/ext/pg_query/include/postgres.h +764 -0
  240. data/ext/pg_query/include/postgres_ext.h +74 -0
  241. data/ext/pg_query/include/postmaster/autovacuum.h +83 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +161 -0
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +64 -0
  244. data/ext/pg_query/include/postmaster/bgwriter.h +45 -0
  245. data/ext/pg_query/include/postmaster/fork_process.h +17 -0
  246. data/ext/pg_query/include/postmaster/interrupt.h +32 -0
  247. data/ext/pg_query/include/postmaster/pgarch.h +39 -0
  248. data/ext/pg_query/include/postmaster/postmaster.h +77 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +98 -0
  250. data/ext/pg_query/include/postmaster/walwriter.h +21 -0
  251. data/ext/pg_query/include/protobuf-c.h +1106 -0
  252. data/ext/pg_query/include/protobuf-c/protobuf-c.h +1106 -0
  253. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +10846 -0
  254. data/ext/pg_query/include/protobuf/pg_query.pb.h +124718 -0
  255. data/ext/pg_query/include/regex/regex.h +184 -0
  256. data/ext/pg_query/include/replication/logicallauncher.h +31 -0
  257. data/ext/pg_query/include/replication/logicalproto.h +110 -0
  258. data/ext/pg_query/include/replication/logicalworker.h +19 -0
  259. data/ext/pg_query/include/replication/origin.h +73 -0
  260. data/ext/pg_query/include/replication/reorderbuffer.h +467 -0
  261. data/ext/pg_query/include/replication/slot.h +219 -0
  262. data/ext/pg_query/include/replication/syncrep.h +115 -0
  263. data/ext/pg_query/include/replication/walreceiver.h +340 -0
  264. data/ext/pg_query/include/replication/walsender.h +74 -0
  265. data/ext/pg_query/include/rewrite/prs2lock.h +46 -0
  266. data/ext/pg_query/include/rewrite/rewriteHandler.h +40 -0
  267. data/ext/pg_query/include/rewrite/rewriteManip.h +87 -0
  268. data/ext/pg_query/include/rewrite/rewriteSupport.h +26 -0
  269. data/ext/pg_query/include/storage/backendid.h +37 -0
  270. data/ext/pg_query/include/storage/block.h +121 -0
  271. data/ext/pg_query/include/storage/buf.h +46 -0
  272. data/ext/pg_query/include/storage/bufmgr.h +292 -0
  273. data/ext/pg_query/include/storage/bufpage.h +459 -0
  274. data/ext/pg_query/include/storage/condition_variable.h +62 -0
  275. data/ext/pg_query/include/storage/dsm.h +61 -0
  276. data/ext/pg_query/include/storage/dsm_impl.h +75 -0
  277. data/ext/pg_query/include/storage/fd.h +168 -0
  278. data/ext/pg_query/include/storage/ipc.h +81 -0
  279. data/ext/pg_query/include/storage/item.h +19 -0
  280. data/ext/pg_query/include/storage/itemid.h +184 -0
  281. data/ext/pg_query/include/storage/itemptr.h +206 -0
  282. data/ext/pg_query/include/storage/large_object.h +100 -0
  283. data/ext/pg_query/include/storage/latch.h +190 -0
  284. data/ext/pg_query/include/storage/lmgr.h +114 -0
  285. data/ext/pg_query/include/storage/lock.h +612 -0
  286. data/ext/pg_query/include/storage/lockdefs.h +59 -0
  287. data/ext/pg_query/include/storage/lwlock.h +232 -0
  288. data/ext/pg_query/include/storage/lwlocknames.h +51 -0
  289. data/ext/pg_query/include/storage/off.h +57 -0
  290. data/ext/pg_query/include/storage/pg_sema.h +61 -0
  291. data/ext/pg_query/include/storage/pg_shmem.h +90 -0
  292. data/ext/pg_query/include/storage/pmsignal.h +94 -0
  293. data/ext/pg_query/include/storage/predicate.h +87 -0
  294. data/ext/pg_query/include/storage/proc.h +333 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +51 -0
  296. data/ext/pg_query/include/storage/procsignal.h +75 -0
  297. data/ext/pg_query/include/storage/relfilenode.h +99 -0
  298. data/ext/pg_query/include/storage/s_lock.h +1047 -0
  299. data/ext/pg_query/include/storage/sharedfileset.h +45 -0
  300. data/ext/pg_query/include/storage/shm_mq.h +85 -0
  301. data/ext/pg_query/include/storage/shm_toc.h +58 -0
  302. data/ext/pg_query/include/storage/shmem.h +81 -0
  303. data/ext/pg_query/include/storage/sinval.h +153 -0
  304. data/ext/pg_query/include/storage/sinvaladt.h +43 -0
  305. data/ext/pg_query/include/storage/smgr.h +109 -0
  306. data/ext/pg_query/include/storage/spin.h +77 -0
  307. data/ext/pg_query/include/storage/standby.h +91 -0
  308. data/ext/pg_query/include/storage/standbydefs.h +74 -0
  309. data/ext/pg_query/include/storage/sync.h +62 -0
  310. data/ext/pg_query/include/tcop/cmdtag.h +58 -0
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +217 -0
  312. data/ext/pg_query/include/tcop/deparse_utility.h +108 -0
  313. data/ext/pg_query/include/tcop/dest.h +149 -0
  314. data/ext/pg_query/include/tcop/fastpath.h +21 -0
  315. data/ext/pg_query/include/tcop/pquery.h +45 -0
  316. data/ext/pg_query/include/tcop/tcopprot.h +89 -0
  317. data/ext/pg_query/include/tcop/utility.h +108 -0
  318. data/ext/pg_query/include/tsearch/ts_cache.h +98 -0
  319. data/ext/pg_query/include/utils/acl.h +312 -0
  320. data/ext/pg_query/include/utils/aclchk_internal.h +45 -0
  321. data/ext/pg_query/include/utils/array.h +458 -0
  322. data/ext/pg_query/include/utils/builtins.h +127 -0
  323. data/ext/pg_query/include/utils/bytea.h +27 -0
  324. data/ext/pg_query/include/utils/catcache.h +231 -0
  325. data/ext/pg_query/include/utils/date.h +90 -0
  326. data/ext/pg_query/include/utils/datetime.h +343 -0
  327. data/ext/pg_query/include/utils/datum.h +68 -0
  328. data/ext/pg_query/include/utils/dsa.h +123 -0
  329. data/ext/pg_query/include/utils/dynahash.h +19 -0
  330. data/ext/pg_query/include/utils/elog.h +439 -0
  331. data/ext/pg_query/include/utils/errcodes.h +352 -0
  332. data/ext/pg_query/include/utils/expandeddatum.h +159 -0
  333. data/ext/pg_query/include/utils/expandedrecord.h +231 -0
  334. data/ext/pg_query/include/utils/float.h +356 -0
  335. data/ext/pg_query/include/utils/fmgroids.h +2657 -0
  336. data/ext/pg_query/include/utils/fmgrprotos.h +2646 -0
  337. data/ext/pg_query/include/utils/fmgrtab.h +48 -0
  338. data/ext/pg_query/include/utils/guc.h +443 -0
  339. data/ext/pg_query/include/utils/guc_tables.h +272 -0
  340. data/ext/pg_query/include/utils/hsearch.h +149 -0
  341. data/ext/pg_query/include/utils/inval.h +64 -0
  342. data/ext/pg_query/include/utils/lsyscache.h +197 -0
  343. data/ext/pg_query/include/utils/memdebug.h +82 -0
  344. data/ext/pg_query/include/utils/memutils.h +225 -0
  345. data/ext/pg_query/include/utils/numeric.h +76 -0
  346. data/ext/pg_query/include/utils/palloc.h +136 -0
  347. data/ext/pg_query/include/utils/partcache.h +102 -0
  348. data/ext/pg_query/include/utils/pg_locale.h +119 -0
  349. data/ext/pg_query/include/utils/pg_lsn.h +29 -0
  350. data/ext/pg_query/include/utils/pidfile.h +56 -0
  351. data/ext/pg_query/include/utils/plancache.h +235 -0
  352. data/ext/pg_query/include/utils/portal.h +241 -0
  353. data/ext/pg_query/include/utils/probes.h +114 -0
  354. data/ext/pg_query/include/utils/ps_status.h +25 -0
  355. data/ext/pg_query/include/utils/queryenvironment.h +74 -0
  356. data/ext/pg_query/include/utils/regproc.h +28 -0
  357. data/ext/pg_query/include/utils/rel.h +644 -0
  358. data/ext/pg_query/include/utils/relcache.h +151 -0
  359. data/ext/pg_query/include/utils/reltrigger.h +81 -0
  360. data/ext/pg_query/include/utils/resowner.h +86 -0
  361. data/ext/pg_query/include/utils/rls.h +50 -0
  362. data/ext/pg_query/include/utils/ruleutils.h +44 -0
  363. data/ext/pg_query/include/utils/sharedtuplestore.h +61 -0
  364. data/ext/pg_query/include/utils/snapmgr.h +158 -0
  365. data/ext/pg_query/include/utils/snapshot.h +206 -0
  366. data/ext/pg_query/include/utils/sortsupport.h +276 -0
  367. data/ext/pg_query/include/utils/syscache.h +219 -0
  368. data/ext/pg_query/include/utils/timeout.h +88 -0
  369. data/ext/pg_query/include/utils/timestamp.h +116 -0
  370. data/ext/pg_query/include/utils/tuplesort.h +277 -0
  371. data/ext/pg_query/include/utils/tuplestore.h +91 -0
  372. data/ext/pg_query/include/utils/typcache.h +202 -0
  373. data/ext/pg_query/include/utils/tzparser.h +39 -0
  374. data/ext/pg_query/include/utils/varlena.h +39 -0
  375. data/ext/pg_query/include/utils/xml.h +84 -0
  376. data/ext/pg_query/include/xxhash.h +5445 -0
  377. data/ext/pg_query/include/xxhash/xxhash.h +5445 -0
  378. data/ext/pg_query/pg_query.c +104 -0
  379. data/ext/pg_query/pg_query.pb-c.c +37628 -0
  380. data/ext/pg_query/pg_query_deparse.c +9953 -0
  381. data/ext/pg_query/pg_query_fingerprint.c +292 -0
  382. data/ext/pg_query/pg_query_fingerprint.h +8 -0
  383. data/ext/pg_query/pg_query_internal.h +24 -0
  384. data/ext/pg_query/pg_query_json_plpgsql.c +738 -0
  385. data/ext/pg_query/pg_query_json_plpgsql.h +9 -0
  386. data/ext/pg_query/pg_query_normalize.c +437 -0
  387. data/ext/pg_query/pg_query_outfuncs.h +10 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +297 -0
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +237 -0
  390. data/ext/pg_query/pg_query_parse.c +148 -0
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +460 -0
  392. data/ext/pg_query/pg_query_readfuncs.h +11 -0
  393. data/ext/pg_query/pg_query_readfuncs_protobuf.c +142 -0
  394. data/ext/pg_query/pg_query_ruby.c +108 -12
  395. data/ext/pg_query/pg_query_scan.c +173 -0
  396. data/ext/pg_query/pg_query_split.c +221 -0
  397. data/ext/pg_query/protobuf-c.c +3660 -0
  398. data/ext/pg_query/src_backend_catalog_namespace.c +1051 -0
  399. data/ext/pg_query/src_backend_catalog_pg_proc.c +142 -0
  400. data/ext/pg_query/src_backend_commands_define.c +117 -0
  401. data/ext/pg_query/src_backend_libpq_pqcomm.c +651 -0
  402. data/ext/pg_query/src_backend_nodes_bitmapset.c +513 -0
  403. data/ext/pg_query/src_backend_nodes_copyfuncs.c +6013 -0
  404. data/ext/pg_query/src_backend_nodes_equalfuncs.c +4003 -0
  405. data/ext/pg_query/src_backend_nodes_extensible.c +99 -0
  406. data/ext/pg_query/src_backend_nodes_list.c +922 -0
  407. data/ext/pg_query/src_backend_nodes_makefuncs.c +417 -0
  408. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +1363 -0
  409. data/ext/pg_query/src_backend_nodes_value.c +84 -0
  410. data/ext/pg_query/src_backend_parser_gram.c +47456 -0
  411. data/ext/pg_query/src_backend_parser_parse_expr.c +313 -0
  412. data/ext/pg_query/src_backend_parser_parser.c +497 -0
  413. data/ext/pg_query/src_backend_parser_scan.c +7091 -0
  414. data/ext/pg_query/src_backend_parser_scansup.c +160 -0
  415. data/ext/pg_query/src_backend_postmaster_postmaster.c +2230 -0
  416. data/ext/pg_query/src_backend_storage_ipc_ipc.c +192 -0
  417. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +370 -0
  418. data/ext/pg_query/src_backend_tcop_postgres.c +776 -0
  419. data/ext/pg_query/src_backend_utils_adt_datum.c +326 -0
  420. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +98 -0
  421. data/ext/pg_query/src_backend_utils_adt_format_type.c +136 -0
  422. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +1683 -0
  423. data/ext/pg_query/src_backend_utils_error_assert.c +74 -0
  424. data/ext/pg_query/src_backend_utils_error_elog.c +1748 -0
  425. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +570 -0
  426. data/ext/pg_query/src_backend_utils_hash_dynahash.c +1086 -0
  427. data/ext/pg_query/src_backend_utils_init_globals.c +168 -0
  428. data/ext/pg_query/src_backend_utils_mb_mbutils.c +839 -0
  429. data/ext/pg_query/src_backend_utils_misc_guc.c +1831 -0
  430. data/ext/pg_query/src_backend_utils_mmgr_aset.c +1560 -0
  431. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +1006 -0
  432. data/ext/pg_query/src_common_encnames.c +158 -0
  433. data/ext/pg_query/src_common_keywords.c +39 -0
  434. data/ext/pg_query/src_common_kwlist_d.h +1081 -0
  435. data/ext/pg_query/src_common_kwlookup.c +91 -0
  436. data/ext/pg_query/src_common_psprintf.c +158 -0
  437. data/ext/pg_query/src_common_string.c +86 -0
  438. data/ext/pg_query/src_common_stringinfo.c +336 -0
  439. data/ext/pg_query/src_common_wchar.c +1651 -0
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1133 -0
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +877 -0
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +6533 -0
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +107 -0
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +123 -0
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +671 -0
  446. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +255 -0
  447. data/ext/pg_query/src_port_erand48.c +127 -0
  448. data/ext/pg_query/src_port_pg_bitutils.c +246 -0
  449. data/ext/pg_query/src_port_pgsleep.c +69 -0
  450. data/ext/pg_query/src_port_pgstrcasecmp.c +83 -0
  451. data/ext/pg_query/src_port_qsort.c +240 -0
  452. data/ext/pg_query/src_port_random.c +31 -0
  453. data/ext/pg_query/src_port_snprintf.c +1449 -0
  454. data/ext/pg_query/src_port_strerror.c +324 -0
  455. data/ext/pg_query/src_port_strnlen.c +39 -0
  456. data/ext/pg_query/xxhash.c +43 -0
  457. data/lib/pg_query.rb +7 -4
  458. data/lib/pg_query/constants.rb +21 -0
  459. data/lib/pg_query/deparse.rb +16 -1117
  460. data/lib/pg_query/filter_columns.rb +86 -85
  461. data/lib/pg_query/fingerprint.rb +122 -87
  462. data/lib/pg_query/json_field_names.rb +1402 -0
  463. data/lib/pg_query/node.rb +31 -0
  464. data/lib/pg_query/param_refs.rb +42 -37
  465. data/lib/pg_query/parse.rb +220 -200
  466. data/lib/pg_query/parse_error.rb +1 -1
  467. data/lib/pg_query/pg_query_pb.rb +3211 -0
  468. data/lib/pg_query/scan.rb +23 -0
  469. data/lib/pg_query/treewalker.rb +24 -40
  470. data/lib/pg_query/truncate.rb +64 -43
  471. data/lib/pg_query/version.rb +2 -2
  472. metadata +473 -11
  473. data/ext/pg_query/pg_query_ruby.h +0 -10
  474. data/lib/pg_query/deep_dup.rb +0 -16
  475. data/lib/pg_query/deparse/alter_table.rb +0 -42
  476. data/lib/pg_query/deparse/interval.rb +0 -105
  477. data/lib/pg_query/legacy_parsetree.rb +0 -109
  478. data/lib/pg_query/node_types.rb +0 -284
@@ -0,0 +1,2437 @@
1
+ // This file is autogenerated by ./scripts/generate_protobuf_and_funcs.rb
2
+
3
+ static void _outAlias(OUT_TYPE(Alias, Alias) out_node, const Alias *node);
4
+ static void _outRangeVar(OUT_TYPE(RangeVar, RangeVar) out_node, const RangeVar *node);
5
+ static void _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out_node, const TableFunc *node);
6
+ static void _outExpr(OUT_TYPE(Expr, Expr) out_node, const Expr *node);
7
+ static void _outVar(OUT_TYPE(Var, Var) out_node, const Var *node);
8
+ static void _outParam(OUT_TYPE(Param, Param) out_node, const Param *node);
9
+ static void _outAggref(OUT_TYPE(Aggref, Aggref) out_node, const Aggref *node);
10
+ static void _outGroupingFunc(OUT_TYPE(GroupingFunc, GroupingFunc) out_node, const GroupingFunc *node);
11
+ static void _outWindowFunc(OUT_TYPE(WindowFunc, WindowFunc) out_node, const WindowFunc *node);
12
+ static void _outSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) out_node, const SubscriptingRef *node);
13
+ static void _outFuncExpr(OUT_TYPE(FuncExpr, FuncExpr) out_node, const FuncExpr *node);
14
+ static void _outNamedArgExpr(OUT_TYPE(NamedArgExpr, NamedArgExpr) out_node, const NamedArgExpr *node);
15
+ static void _outOpExpr(OUT_TYPE(OpExpr, OpExpr) out_node, const OpExpr *node);
16
+ static void _outDistinctExpr(OUT_TYPE(DistinctExpr, DistinctExpr) out_node, const DistinctExpr *node);
17
+ static void _outNullIfExpr(OUT_TYPE(NullIfExpr, NullIfExpr) out_node, const NullIfExpr *node);
18
+ static void _outScalarArrayOpExpr(OUT_TYPE(ScalarArrayOpExpr, ScalarArrayOpExpr) out_node, const ScalarArrayOpExpr *node);
19
+ static void _outBoolExpr(OUT_TYPE(BoolExpr, BoolExpr) out_node, const BoolExpr *node);
20
+ static void _outSubLink(OUT_TYPE(SubLink, SubLink) out_node, const SubLink *node);
21
+ static void _outSubPlan(OUT_TYPE(SubPlan, SubPlan) out_node, const SubPlan *node);
22
+ static void _outAlternativeSubPlan(OUT_TYPE(AlternativeSubPlan, AlternativeSubPlan) out_node, const AlternativeSubPlan *node);
23
+ static void _outFieldSelect(OUT_TYPE(FieldSelect, FieldSelect) out_node, const FieldSelect *node);
24
+ static void _outFieldStore(OUT_TYPE(FieldStore, FieldStore) out_node, const FieldStore *node);
25
+ static void _outRelabelType(OUT_TYPE(RelabelType, RelabelType) out_node, const RelabelType *node);
26
+ static void _outCoerceViaIO(OUT_TYPE(CoerceViaIO, CoerceViaIO) out_node, const CoerceViaIO *node);
27
+ static void _outArrayCoerceExpr(OUT_TYPE(ArrayCoerceExpr, ArrayCoerceExpr) out_node, const ArrayCoerceExpr *node);
28
+ static void _outConvertRowtypeExpr(OUT_TYPE(ConvertRowtypeExpr, ConvertRowtypeExpr) out_node, const ConvertRowtypeExpr *node);
29
+ static void _outCollateExpr(OUT_TYPE(CollateExpr, CollateExpr) out_node, const CollateExpr *node);
30
+ static void _outCaseExpr(OUT_TYPE(CaseExpr, CaseExpr) out_node, const CaseExpr *node);
31
+ static void _outCaseWhen(OUT_TYPE(CaseWhen, CaseWhen) out_node, const CaseWhen *node);
32
+ static void _outCaseTestExpr(OUT_TYPE(CaseTestExpr, CaseTestExpr) out_node, const CaseTestExpr *node);
33
+ static void _outArrayExpr(OUT_TYPE(ArrayExpr, ArrayExpr) out_node, const ArrayExpr *node);
34
+ static void _outRowExpr(OUT_TYPE(RowExpr, RowExpr) out_node, const RowExpr *node);
35
+ static void _outRowCompareExpr(OUT_TYPE(RowCompareExpr, RowCompareExpr) out_node, const RowCompareExpr *node);
36
+ static void _outCoalesceExpr(OUT_TYPE(CoalesceExpr, CoalesceExpr) out_node, const CoalesceExpr *node);
37
+ static void _outMinMaxExpr(OUT_TYPE(MinMaxExpr, MinMaxExpr) out_node, const MinMaxExpr *node);
38
+ static void _outSQLValueFunction(OUT_TYPE(SQLValueFunction, SQLValueFunction) out_node, const SQLValueFunction *node);
39
+ static void _outXmlExpr(OUT_TYPE(XmlExpr, XmlExpr) out_node, const XmlExpr *node);
40
+ static void _outNullTest(OUT_TYPE(NullTest, NullTest) out_node, const NullTest *node);
41
+ static void _outBooleanTest(OUT_TYPE(BooleanTest, BooleanTest) out_node, const BooleanTest *node);
42
+ static void _outCoerceToDomain(OUT_TYPE(CoerceToDomain, CoerceToDomain) out_node, const CoerceToDomain *node);
43
+ static void _outCoerceToDomainValue(OUT_TYPE(CoerceToDomainValue, CoerceToDomainValue) out_node, const CoerceToDomainValue *node);
44
+ static void _outSetToDefault(OUT_TYPE(SetToDefault, SetToDefault) out_node, const SetToDefault *node);
45
+ static void _outCurrentOfExpr(OUT_TYPE(CurrentOfExpr, CurrentOfExpr) out_node, const CurrentOfExpr *node);
46
+ static void _outNextValueExpr(OUT_TYPE(NextValueExpr, NextValueExpr) out_node, const NextValueExpr *node);
47
+ static void _outInferenceElem(OUT_TYPE(InferenceElem, InferenceElem) out_node, const InferenceElem *node);
48
+ static void _outTargetEntry(OUT_TYPE(TargetEntry, TargetEntry) out_node, const TargetEntry *node);
49
+ static void _outRangeTblRef(OUT_TYPE(RangeTblRef, RangeTblRef) out_node, const RangeTblRef *node);
50
+ static void _outJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) out_node, const JoinExpr *node);
51
+ static void _outFromExpr(OUT_TYPE(FromExpr, FromExpr) out_node, const FromExpr *node);
52
+ static void _outOnConflictExpr(OUT_TYPE(OnConflictExpr, OnConflictExpr) out_node, const OnConflictExpr *node);
53
+ static void _outIntoClause(OUT_TYPE(IntoClause, IntoClause) out_node, const IntoClause *node);
54
+ static void _outRawStmt(OUT_TYPE(RawStmt, RawStmt) out_node, const RawStmt *node);
55
+ static void _outQuery(OUT_TYPE(Query, Query) out_node, const Query *node);
56
+ static void _outInsertStmt(OUT_TYPE(InsertStmt, InsertStmt) out_node, const InsertStmt *node);
57
+ static void _outDeleteStmt(OUT_TYPE(DeleteStmt, DeleteStmt) out_node, const DeleteStmt *node);
58
+ static void _outUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) out_node, const UpdateStmt *node);
59
+ static void _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out_node, const SelectStmt *node);
60
+ static void _outAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) out_node, const AlterTableStmt *node);
61
+ static void _outAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) out_node, const AlterTableCmd *node);
62
+ static void _outAlterDomainStmt(OUT_TYPE(AlterDomainStmt, AlterDomainStmt) out_node, const AlterDomainStmt *node);
63
+ static void _outSetOperationStmt(OUT_TYPE(SetOperationStmt, SetOperationStmt) out_node, const SetOperationStmt *node);
64
+ static void _outGrantStmt(OUT_TYPE(GrantStmt, GrantStmt) out_node, const GrantStmt *node);
65
+ static void _outGrantRoleStmt(OUT_TYPE(GrantRoleStmt, GrantRoleStmt) out_node, const GrantRoleStmt *node);
66
+ static void _outAlterDefaultPrivilegesStmt(OUT_TYPE(AlterDefaultPrivilegesStmt, AlterDefaultPrivilegesStmt) out_node, const AlterDefaultPrivilegesStmt *node);
67
+ static void _outClosePortalStmt(OUT_TYPE(ClosePortalStmt, ClosePortalStmt) out_node, const ClosePortalStmt *node);
68
+ static void _outClusterStmt(OUT_TYPE(ClusterStmt, ClusterStmt) out_node, const ClusterStmt *node);
69
+ static void _outCopyStmt(OUT_TYPE(CopyStmt, CopyStmt) out_node, const CopyStmt *node);
70
+ static void _outCreateStmt(OUT_TYPE(CreateStmt, CreateStmt) out_node, const CreateStmt *node);
71
+ static void _outDefineStmt(OUT_TYPE(DefineStmt, DefineStmt) out_node, const DefineStmt *node);
72
+ static void _outDropStmt(OUT_TYPE(DropStmt, DropStmt) out_node, const DropStmt *node);
73
+ static void _outTruncateStmt(OUT_TYPE(TruncateStmt, TruncateStmt) out_node, const TruncateStmt *node);
74
+ static void _outCommentStmt(OUT_TYPE(CommentStmt, CommentStmt) out_node, const CommentStmt *node);
75
+ static void _outFetchStmt(OUT_TYPE(FetchStmt, FetchStmt) out_node, const FetchStmt *node);
76
+ static void _outIndexStmt(OUT_TYPE(IndexStmt, IndexStmt) out_node, const IndexStmt *node);
77
+ static void _outCreateFunctionStmt(OUT_TYPE(CreateFunctionStmt, CreateFunctionStmt) out_node, const CreateFunctionStmt *node);
78
+ static void _outAlterFunctionStmt(OUT_TYPE(AlterFunctionStmt, AlterFunctionStmt) out_node, const AlterFunctionStmt *node);
79
+ static void _outDoStmt(OUT_TYPE(DoStmt, DoStmt) out_node, const DoStmt *node);
80
+ static void _outRenameStmt(OUT_TYPE(RenameStmt, RenameStmt) out_node, const RenameStmt *node);
81
+ static void _outRuleStmt(OUT_TYPE(RuleStmt, RuleStmt) out_node, const RuleStmt *node);
82
+ static void _outNotifyStmt(OUT_TYPE(NotifyStmt, NotifyStmt) out_node, const NotifyStmt *node);
83
+ static void _outListenStmt(OUT_TYPE(ListenStmt, ListenStmt) out_node, const ListenStmt *node);
84
+ static void _outUnlistenStmt(OUT_TYPE(UnlistenStmt, UnlistenStmt) out_node, const UnlistenStmt *node);
85
+ static void _outTransactionStmt(OUT_TYPE(TransactionStmt, TransactionStmt) out_node, const TransactionStmt *node);
86
+ static void _outViewStmt(OUT_TYPE(ViewStmt, ViewStmt) out_node, const ViewStmt *node);
87
+ static void _outLoadStmt(OUT_TYPE(LoadStmt, LoadStmt) out_node, const LoadStmt *node);
88
+ static void _outCreateDomainStmt(OUT_TYPE(CreateDomainStmt, CreateDomainStmt) out_node, const CreateDomainStmt *node);
89
+ static void _outCreatedbStmt(OUT_TYPE(CreatedbStmt, CreatedbStmt) out_node, const CreatedbStmt *node);
90
+ static void _outDropdbStmt(OUT_TYPE(DropdbStmt, DropdbStmt) out_node, const DropdbStmt *node);
91
+ static void _outVacuumStmt(OUT_TYPE(VacuumStmt, VacuumStmt) out_node, const VacuumStmt *node);
92
+ static void _outExplainStmt(OUT_TYPE(ExplainStmt, ExplainStmt) out_node, const ExplainStmt *node);
93
+ static void _outCreateTableAsStmt(OUT_TYPE(CreateTableAsStmt, CreateTableAsStmt) out_node, const CreateTableAsStmt *node);
94
+ static void _outCreateSeqStmt(OUT_TYPE(CreateSeqStmt, CreateSeqStmt) out_node, const CreateSeqStmt *node);
95
+ static void _outAlterSeqStmt(OUT_TYPE(AlterSeqStmt, AlterSeqStmt) out_node, const AlterSeqStmt *node);
96
+ static void _outVariableSetStmt(OUT_TYPE(VariableSetStmt, VariableSetStmt) out_node, const VariableSetStmt *node);
97
+ static void _outVariableShowStmt(OUT_TYPE(VariableShowStmt, VariableShowStmt) out_node, const VariableShowStmt *node);
98
+ static void _outDiscardStmt(OUT_TYPE(DiscardStmt, DiscardStmt) out_node, const DiscardStmt *node);
99
+ static void _outCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) out_node, const CreateTrigStmt *node);
100
+ static void _outCreatePLangStmt(OUT_TYPE(CreatePLangStmt, CreatePLangStmt) out_node, const CreatePLangStmt *node);
101
+ static void _outCreateRoleStmt(OUT_TYPE(CreateRoleStmt, CreateRoleStmt) out_node, const CreateRoleStmt *node);
102
+ static void _outAlterRoleStmt(OUT_TYPE(AlterRoleStmt, AlterRoleStmt) out_node, const AlterRoleStmt *node);
103
+ static void _outDropRoleStmt(OUT_TYPE(DropRoleStmt, DropRoleStmt) out_node, const DropRoleStmt *node);
104
+ static void _outLockStmt(OUT_TYPE(LockStmt, LockStmt) out_node, const LockStmt *node);
105
+ static void _outConstraintsSetStmt(OUT_TYPE(ConstraintsSetStmt, ConstraintsSetStmt) out_node, const ConstraintsSetStmt *node);
106
+ static void _outReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) out_node, const ReindexStmt *node);
107
+ static void _outCheckPointStmt(OUT_TYPE(CheckPointStmt, CheckPointStmt) out_node, const CheckPointStmt *node);
108
+ static void _outCreateSchemaStmt(OUT_TYPE(CreateSchemaStmt, CreateSchemaStmt) out_node, const CreateSchemaStmt *node);
109
+ static void _outAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) out_node, const AlterDatabaseStmt *node);
110
+ static void _outAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) out_node, const AlterDatabaseSetStmt *node);
111
+ static void _outAlterRoleSetStmt(OUT_TYPE(AlterRoleSetStmt, AlterRoleSetStmt) out_node, const AlterRoleSetStmt *node);
112
+ static void _outCreateConversionStmt(OUT_TYPE(CreateConversionStmt, CreateConversionStmt) out_node, const CreateConversionStmt *node);
113
+ static void _outCreateCastStmt(OUT_TYPE(CreateCastStmt, CreateCastStmt) out_node, const CreateCastStmt *node);
114
+ static void _outCreateOpClassStmt(OUT_TYPE(CreateOpClassStmt, CreateOpClassStmt) out_node, const CreateOpClassStmt *node);
115
+ static void _outCreateOpFamilyStmt(OUT_TYPE(CreateOpFamilyStmt, CreateOpFamilyStmt) out_node, const CreateOpFamilyStmt *node);
116
+ static void _outAlterOpFamilyStmt(OUT_TYPE(AlterOpFamilyStmt, AlterOpFamilyStmt) out_node, const AlterOpFamilyStmt *node);
117
+ static void _outPrepareStmt(OUT_TYPE(PrepareStmt, PrepareStmt) out_node, const PrepareStmt *node);
118
+ static void _outExecuteStmt(OUT_TYPE(ExecuteStmt, ExecuteStmt) out_node, const ExecuteStmt *node);
119
+ static void _outDeallocateStmt(OUT_TYPE(DeallocateStmt, DeallocateStmt) out_node, const DeallocateStmt *node);
120
+ static void _outDeclareCursorStmt(OUT_TYPE(DeclareCursorStmt, DeclareCursorStmt) out_node, const DeclareCursorStmt *node);
121
+ static void _outCreateTableSpaceStmt(OUT_TYPE(CreateTableSpaceStmt, CreateTableSpaceStmt) out_node, const CreateTableSpaceStmt *node);
122
+ static void _outDropTableSpaceStmt(OUT_TYPE(DropTableSpaceStmt, DropTableSpaceStmt) out_node, const DropTableSpaceStmt *node);
123
+ static void _outAlterObjectDependsStmt(OUT_TYPE(AlterObjectDependsStmt, AlterObjectDependsStmt) out_node, const AlterObjectDependsStmt *node);
124
+ static void _outAlterObjectSchemaStmt(OUT_TYPE(AlterObjectSchemaStmt, AlterObjectSchemaStmt) out_node, const AlterObjectSchemaStmt *node);
125
+ static void _outAlterOwnerStmt(OUT_TYPE(AlterOwnerStmt, AlterOwnerStmt) out_node, const AlterOwnerStmt *node);
126
+ static void _outAlterOperatorStmt(OUT_TYPE(AlterOperatorStmt, AlterOperatorStmt) out_node, const AlterOperatorStmt *node);
127
+ static void _outAlterTypeStmt(OUT_TYPE(AlterTypeStmt, AlterTypeStmt) out_node, const AlterTypeStmt *node);
128
+ static void _outDropOwnedStmt(OUT_TYPE(DropOwnedStmt, DropOwnedStmt) out_node, const DropOwnedStmt *node);
129
+ static void _outReassignOwnedStmt(OUT_TYPE(ReassignOwnedStmt, ReassignOwnedStmt) out_node, const ReassignOwnedStmt *node);
130
+ static void _outCompositeTypeStmt(OUT_TYPE(CompositeTypeStmt, CompositeTypeStmt) out_node, const CompositeTypeStmt *node);
131
+ static void _outCreateEnumStmt(OUT_TYPE(CreateEnumStmt, CreateEnumStmt) out_node, const CreateEnumStmt *node);
132
+ static void _outCreateRangeStmt(OUT_TYPE(CreateRangeStmt, CreateRangeStmt) out_node, const CreateRangeStmt *node);
133
+ static void _outAlterEnumStmt(OUT_TYPE(AlterEnumStmt, AlterEnumStmt) out_node, const AlterEnumStmt *node);
134
+ static void _outAlterTSDictionaryStmt(OUT_TYPE(AlterTSDictionaryStmt, AlterTSDictionaryStmt) out_node, const AlterTSDictionaryStmt *node);
135
+ static void _outAlterTSConfigurationStmt(OUT_TYPE(AlterTSConfigurationStmt, AlterTSConfigurationStmt) out_node, const AlterTSConfigurationStmt *node);
136
+ static void _outCreateFdwStmt(OUT_TYPE(CreateFdwStmt, CreateFdwStmt) out_node, const CreateFdwStmt *node);
137
+ static void _outAlterFdwStmt(OUT_TYPE(AlterFdwStmt, AlterFdwStmt) out_node, const AlterFdwStmt *node);
138
+ static void _outCreateForeignServerStmt(OUT_TYPE(CreateForeignServerStmt, CreateForeignServerStmt) out_node, const CreateForeignServerStmt *node);
139
+ static void _outAlterForeignServerStmt(OUT_TYPE(AlterForeignServerStmt, AlterForeignServerStmt) out_node, const AlterForeignServerStmt *node);
140
+ static void _outCreateUserMappingStmt(OUT_TYPE(CreateUserMappingStmt, CreateUserMappingStmt) out_node, const CreateUserMappingStmt *node);
141
+ static void _outAlterUserMappingStmt(OUT_TYPE(AlterUserMappingStmt, AlterUserMappingStmt) out_node, const AlterUserMappingStmt *node);
142
+ static void _outDropUserMappingStmt(OUT_TYPE(DropUserMappingStmt, DropUserMappingStmt) out_node, const DropUserMappingStmt *node);
143
+ static void _outAlterTableSpaceOptionsStmt(OUT_TYPE(AlterTableSpaceOptionsStmt, AlterTableSpaceOptionsStmt) out_node, const AlterTableSpaceOptionsStmt *node);
144
+ static void _outAlterTableMoveAllStmt(OUT_TYPE(AlterTableMoveAllStmt, AlterTableMoveAllStmt) out_node, const AlterTableMoveAllStmt *node);
145
+ static void _outSecLabelStmt(OUT_TYPE(SecLabelStmt, SecLabelStmt) out_node, const SecLabelStmt *node);
146
+ static void _outCreateForeignTableStmt(OUT_TYPE(CreateForeignTableStmt, CreateForeignTableStmt) out_node, const CreateForeignTableStmt *node);
147
+ static void _outImportForeignSchemaStmt(OUT_TYPE(ImportForeignSchemaStmt, ImportForeignSchemaStmt) out_node, const ImportForeignSchemaStmt *node);
148
+ static void _outCreateExtensionStmt(OUT_TYPE(CreateExtensionStmt, CreateExtensionStmt) out_node, const CreateExtensionStmt *node);
149
+ static void _outAlterExtensionStmt(OUT_TYPE(AlterExtensionStmt, AlterExtensionStmt) out_node, const AlterExtensionStmt *node);
150
+ static void _outAlterExtensionContentsStmt(OUT_TYPE(AlterExtensionContentsStmt, AlterExtensionContentsStmt) out_node, const AlterExtensionContentsStmt *node);
151
+ static void _outCreateEventTrigStmt(OUT_TYPE(CreateEventTrigStmt, CreateEventTrigStmt) out_node, const CreateEventTrigStmt *node);
152
+ static void _outAlterEventTrigStmt(OUT_TYPE(AlterEventTrigStmt, AlterEventTrigStmt) out_node, const AlterEventTrigStmt *node);
153
+ static void _outRefreshMatViewStmt(OUT_TYPE(RefreshMatViewStmt, RefreshMatViewStmt) out_node, const RefreshMatViewStmt *node);
154
+ static void _outReplicaIdentityStmt(OUT_TYPE(ReplicaIdentityStmt, ReplicaIdentityStmt) out_node, const ReplicaIdentityStmt *node);
155
+ static void _outAlterSystemStmt(OUT_TYPE(AlterSystemStmt, AlterSystemStmt) out_node, const AlterSystemStmt *node);
156
+ static void _outCreatePolicyStmt(OUT_TYPE(CreatePolicyStmt, CreatePolicyStmt) out_node, const CreatePolicyStmt *node);
157
+ static void _outAlterPolicyStmt(OUT_TYPE(AlterPolicyStmt, AlterPolicyStmt) out_node, const AlterPolicyStmt *node);
158
+ static void _outCreateTransformStmt(OUT_TYPE(CreateTransformStmt, CreateTransformStmt) out_node, const CreateTransformStmt *node);
159
+ static void _outCreateAmStmt(OUT_TYPE(CreateAmStmt, CreateAmStmt) out_node, const CreateAmStmt *node);
160
+ static void _outCreatePublicationStmt(OUT_TYPE(CreatePublicationStmt, CreatePublicationStmt) out_node, const CreatePublicationStmt *node);
161
+ static void _outAlterPublicationStmt(OUT_TYPE(AlterPublicationStmt, AlterPublicationStmt) out_node, const AlterPublicationStmt *node);
162
+ static void _outCreateSubscriptionStmt(OUT_TYPE(CreateSubscriptionStmt, CreateSubscriptionStmt) out_node, const CreateSubscriptionStmt *node);
163
+ static void _outAlterSubscriptionStmt(OUT_TYPE(AlterSubscriptionStmt, AlterSubscriptionStmt) out_node, const AlterSubscriptionStmt *node);
164
+ static void _outDropSubscriptionStmt(OUT_TYPE(DropSubscriptionStmt, DropSubscriptionStmt) out_node, const DropSubscriptionStmt *node);
165
+ static void _outCreateStatsStmt(OUT_TYPE(CreateStatsStmt, CreateStatsStmt) out_node, const CreateStatsStmt *node);
166
+ static void _outAlterCollationStmt(OUT_TYPE(AlterCollationStmt, AlterCollationStmt) out_node, const AlterCollationStmt *node);
167
+ static void _outCallStmt(OUT_TYPE(CallStmt, CallStmt) out_node, const CallStmt *node);
168
+ static void _outAlterStatsStmt(OUT_TYPE(AlterStatsStmt, AlterStatsStmt) out_node, const AlterStatsStmt *node);
169
+ static void _outAExpr(OUT_TYPE(A_Expr, AExpr) out_node, const A_Expr *node);
170
+ static void _outColumnRef(OUT_TYPE(ColumnRef, ColumnRef) out_node, const ColumnRef *node);
171
+ static void _outParamRef(OUT_TYPE(ParamRef, ParamRef) out_node, const ParamRef *node);
172
+ static void _outAConst(OUT_TYPE(A_Const, AConst) out_node, const A_Const *node);
173
+ static void _outFuncCall(OUT_TYPE(FuncCall, FuncCall) out_node, const FuncCall *node);
174
+ static void _outAStar(OUT_TYPE(A_Star, AStar) out_node, const A_Star *node);
175
+ static void _outAIndices(OUT_TYPE(A_Indices, AIndices) out_node, const A_Indices *node);
176
+ static void _outAIndirection(OUT_TYPE(A_Indirection, AIndirection) out_node, const A_Indirection *node);
177
+ static void _outAArrayExpr(OUT_TYPE(A_ArrayExpr, AArrayExpr) out_node, const A_ArrayExpr *node);
178
+ static void _outResTarget(OUT_TYPE(ResTarget, ResTarget) out_node, const ResTarget *node);
179
+ static void _outMultiAssignRef(OUT_TYPE(MultiAssignRef, MultiAssignRef) out_node, const MultiAssignRef *node);
180
+ static void _outTypeCast(OUT_TYPE(TypeCast, TypeCast) out_node, const TypeCast *node);
181
+ static void _outCollateClause(OUT_TYPE(CollateClause, CollateClause) out_node, const CollateClause *node);
182
+ static void _outSortBy(OUT_TYPE(SortBy, SortBy) out_node, const SortBy *node);
183
+ static void _outWindowDef(OUT_TYPE(WindowDef, WindowDef) out_node, const WindowDef *node);
184
+ static void _outRangeSubselect(OUT_TYPE(RangeSubselect, RangeSubselect) out_node, const RangeSubselect *node);
185
+ static void _outRangeFunction(OUT_TYPE(RangeFunction, RangeFunction) out_node, const RangeFunction *node);
186
+ static void _outRangeTableSample(OUT_TYPE(RangeTableSample, RangeTableSample) out_node, const RangeTableSample *node);
187
+ static void _outRangeTableFunc(OUT_TYPE(RangeTableFunc, RangeTableFunc) out_node, const RangeTableFunc *node);
188
+ static void _outRangeTableFuncCol(OUT_TYPE(RangeTableFuncCol, RangeTableFuncCol) out_node, const RangeTableFuncCol *node);
189
+ static void _outTypeName(OUT_TYPE(TypeName, TypeName) out_node, const TypeName *node);
190
+ static void _outColumnDef(OUT_TYPE(ColumnDef, ColumnDef) out_node, const ColumnDef *node);
191
+ static void _outIndexElem(OUT_TYPE(IndexElem, IndexElem) out_node, const IndexElem *node);
192
+ static void _outConstraint(OUT_TYPE(Constraint, Constraint) out_node, const Constraint *node);
193
+ static void _outDefElem(OUT_TYPE(DefElem, DefElem) out_node, const DefElem *node);
194
+ static void _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out_node, const RangeTblEntry *node);
195
+ static void _outRangeTblFunction(OUT_TYPE(RangeTblFunction, RangeTblFunction) out_node, const RangeTblFunction *node);
196
+ static void _outTableSampleClause(OUT_TYPE(TableSampleClause, TableSampleClause) out_node, const TableSampleClause *node);
197
+ static void _outWithCheckOption(OUT_TYPE(WithCheckOption, WithCheckOption) out_node, const WithCheckOption *node);
198
+ static void _outSortGroupClause(OUT_TYPE(SortGroupClause, SortGroupClause) out_node, const SortGroupClause *node);
199
+ static void _outGroupingSet(OUT_TYPE(GroupingSet, GroupingSet) out_node, const GroupingSet *node);
200
+ static void _outWindowClause(OUT_TYPE(WindowClause, WindowClause) out_node, const WindowClause *node);
201
+ static void _outObjectWithArgs(OUT_TYPE(ObjectWithArgs, ObjectWithArgs) out_node, const ObjectWithArgs *node);
202
+ static void _outAccessPriv(OUT_TYPE(AccessPriv, AccessPriv) out_node, const AccessPriv *node);
203
+ static void _outCreateOpClassItem(OUT_TYPE(CreateOpClassItem, CreateOpClassItem) out_node, const CreateOpClassItem *node);
204
+ static void _outTableLikeClause(OUT_TYPE(TableLikeClause, TableLikeClause) out_node, const TableLikeClause *node);
205
+ static void _outFunctionParameter(OUT_TYPE(FunctionParameter, FunctionParameter) out_node, const FunctionParameter *node);
206
+ static void _outLockingClause(OUT_TYPE(LockingClause, LockingClause) out_node, const LockingClause *node);
207
+ static void _outRowMarkClause(OUT_TYPE(RowMarkClause, RowMarkClause) out_node, const RowMarkClause *node);
208
+ static void _outXmlSerialize(OUT_TYPE(XmlSerialize, XmlSerialize) out_node, const XmlSerialize *node);
209
+ static void _outWithClause(OUT_TYPE(WithClause, WithClause) out_node, const WithClause *node);
210
+ static void _outInferClause(OUT_TYPE(InferClause, InferClause) out_node, const InferClause *node);
211
+ static void _outOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) out_node, const OnConflictClause *node);
212
+ static void _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out_node, const CommonTableExpr *node);
213
+ static void _outRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) out_node, const RoleSpec *node);
214
+ static void _outTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) out_node, const TriggerTransition *node);
215
+ static void _outPartitionElem(OUT_TYPE(PartitionElem, PartitionElem) out_node, const PartitionElem *node);
216
+ static void _outPartitionSpec(OUT_TYPE(PartitionSpec, PartitionSpec) out_node, const PartitionSpec *node);
217
+ static void _outPartitionBoundSpec(OUT_TYPE(PartitionBoundSpec, PartitionBoundSpec) out_node, const PartitionBoundSpec *node);
218
+ static void _outPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) out_node, const PartitionRangeDatum *node);
219
+ static void _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out_node, const PartitionCmd *node);
220
+ static void _outVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) out_node, const VacuumRelation *node);
221
+ static void _outInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) out_node, const InlineCodeBlock *node);
222
+ static void _outCallContext(OUT_TYPE(CallContext, CallContext) out_node, const CallContext *node);
223
+
224
+
225
+ static void
226
+ _outAlias(OUT_TYPE(Alias, Alias) out, const Alias *node)
227
+ {
228
+ WRITE_STRING_FIELD(aliasname, aliasname, aliasname);
229
+ WRITE_LIST_FIELD(colnames, colnames, colnames);
230
+ }
231
+
232
+ static void
233
+ _outRangeVar(OUT_TYPE(RangeVar, RangeVar) out, const RangeVar *node)
234
+ {
235
+ WRITE_STRING_FIELD(catalogname, catalogname, catalogname);
236
+ WRITE_STRING_FIELD(schemaname, schemaname, schemaname);
237
+ WRITE_STRING_FIELD(relname, relname, relname);
238
+ WRITE_BOOL_FIELD(inh, inh, inh);
239
+ WRITE_CHAR_FIELD(relpersistence, relpersistence, relpersistence);
240
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
241
+ WRITE_INT_FIELD(location, location, location);
242
+ }
243
+
244
+ static void
245
+ _outTableFunc(OUT_TYPE(TableFunc, TableFunc) out, const TableFunc *node)
246
+ {
247
+ WRITE_LIST_FIELD(ns_uris, ns_uris, ns_uris);
248
+ WRITE_LIST_FIELD(ns_names, ns_names, ns_names);
249
+ WRITE_NODE_PTR_FIELD(docexpr, docexpr, docexpr);
250
+ WRITE_NODE_PTR_FIELD(rowexpr, rowexpr, rowexpr);
251
+ WRITE_LIST_FIELD(colnames, colnames, colnames);
252
+ WRITE_LIST_FIELD(coltypes, coltypes, coltypes);
253
+ WRITE_LIST_FIELD(coltypmods, coltypmods, coltypmods);
254
+ WRITE_LIST_FIELD(colcollations, colcollations, colcollations);
255
+ WRITE_LIST_FIELD(colexprs, colexprs, colexprs);
256
+ WRITE_LIST_FIELD(coldefexprs, coldefexprs, coldefexprs);
257
+ WRITE_BITMAPSET_FIELD(notnulls, notnulls, notnulls);
258
+ WRITE_INT_FIELD(ordinalitycol, ordinalitycol, ordinalitycol);
259
+ WRITE_INT_FIELD(location, location, location);
260
+ }
261
+
262
+ static void
263
+ _outExpr(OUT_TYPE(Expr, Expr) out, const Expr *node)
264
+ {
265
+ }
266
+
267
+ static void
268
+ _outVar(OUT_TYPE(Var, Var) out, const Var *node)
269
+ {
270
+ WRITE_UINT_FIELD(varno, varno, varno);
271
+ WRITE_INT_FIELD(varattno, varattno, varattno);
272
+ WRITE_UINT_FIELD(vartype, vartype, vartype);
273
+ WRITE_INT_FIELD(vartypmod, vartypmod, vartypmod);
274
+ WRITE_UINT_FIELD(varcollid, varcollid, varcollid);
275
+ WRITE_UINT_FIELD(varlevelsup, varlevelsup, varlevelsup);
276
+ WRITE_UINT_FIELD(varnosyn, varnosyn, varnosyn);
277
+ WRITE_INT_FIELD(varattnosyn, varattnosyn, varattnosyn);
278
+ WRITE_INT_FIELD(location, location, location);
279
+ }
280
+
281
+ static void
282
+ _outParam(OUT_TYPE(Param, Param) out, const Param *node)
283
+ {
284
+ WRITE_ENUM_FIELD(ParamKind, paramkind, paramkind, paramkind);
285
+ WRITE_INT_FIELD(paramid, paramid, paramid);
286
+ WRITE_UINT_FIELD(paramtype, paramtype, paramtype);
287
+ WRITE_INT_FIELD(paramtypmod, paramtypmod, paramtypmod);
288
+ WRITE_UINT_FIELD(paramcollid, paramcollid, paramcollid);
289
+ WRITE_INT_FIELD(location, location, location);
290
+ }
291
+
292
+ static void
293
+ _outAggref(OUT_TYPE(Aggref, Aggref) out, const Aggref *node)
294
+ {
295
+ WRITE_UINT_FIELD(aggfnoid, aggfnoid, aggfnoid);
296
+ WRITE_UINT_FIELD(aggtype, aggtype, aggtype);
297
+ WRITE_UINT_FIELD(aggcollid, aggcollid, aggcollid);
298
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
299
+ WRITE_UINT_FIELD(aggtranstype, aggtranstype, aggtranstype);
300
+ WRITE_LIST_FIELD(aggargtypes, aggargtypes, aggargtypes);
301
+ WRITE_LIST_FIELD(aggdirectargs, aggdirectargs, aggdirectargs);
302
+ WRITE_LIST_FIELD(args, args, args);
303
+ WRITE_LIST_FIELD(aggorder, aggorder, aggorder);
304
+ WRITE_LIST_FIELD(aggdistinct, aggdistinct, aggdistinct);
305
+ WRITE_NODE_PTR_FIELD(aggfilter, aggfilter, aggfilter);
306
+ WRITE_BOOL_FIELD(aggstar, aggstar, aggstar);
307
+ WRITE_BOOL_FIELD(aggvariadic, aggvariadic, aggvariadic);
308
+ WRITE_CHAR_FIELD(aggkind, aggkind, aggkind);
309
+ WRITE_UINT_FIELD(agglevelsup, agglevelsup, agglevelsup);
310
+ WRITE_ENUM_FIELD(AggSplit, aggsplit, aggsplit, aggsplit);
311
+ WRITE_INT_FIELD(location, location, location);
312
+ }
313
+
314
+ static void
315
+ _outGroupingFunc(OUT_TYPE(GroupingFunc, GroupingFunc) out, const GroupingFunc *node)
316
+ {
317
+ WRITE_LIST_FIELD(args, args, args);
318
+ WRITE_LIST_FIELD(refs, refs, refs);
319
+ WRITE_LIST_FIELD(cols, cols, cols);
320
+ WRITE_UINT_FIELD(agglevelsup, agglevelsup, agglevelsup);
321
+ WRITE_INT_FIELD(location, location, location);
322
+ }
323
+
324
+ static void
325
+ _outWindowFunc(OUT_TYPE(WindowFunc, WindowFunc) out, const WindowFunc *node)
326
+ {
327
+ WRITE_UINT_FIELD(winfnoid, winfnoid, winfnoid);
328
+ WRITE_UINT_FIELD(wintype, wintype, wintype);
329
+ WRITE_UINT_FIELD(wincollid, wincollid, wincollid);
330
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
331
+ WRITE_LIST_FIELD(args, args, args);
332
+ WRITE_NODE_PTR_FIELD(aggfilter, aggfilter, aggfilter);
333
+ WRITE_UINT_FIELD(winref, winref, winref);
334
+ WRITE_BOOL_FIELD(winstar, winstar, winstar);
335
+ WRITE_BOOL_FIELD(winagg, winagg, winagg);
336
+ WRITE_INT_FIELD(location, location, location);
337
+ }
338
+
339
+ static void
340
+ _outSubscriptingRef(OUT_TYPE(SubscriptingRef, SubscriptingRef) out, const SubscriptingRef *node)
341
+ {
342
+ WRITE_UINT_FIELD(refcontainertype, refcontainertype, refcontainertype);
343
+ WRITE_UINT_FIELD(refelemtype, refelemtype, refelemtype);
344
+ WRITE_INT_FIELD(reftypmod, reftypmod, reftypmod);
345
+ WRITE_UINT_FIELD(refcollid, refcollid, refcollid);
346
+ WRITE_LIST_FIELD(refupperindexpr, refupperindexpr, refupperindexpr);
347
+ WRITE_LIST_FIELD(reflowerindexpr, reflowerindexpr, reflowerindexpr);
348
+ WRITE_NODE_PTR_FIELD(refexpr, refexpr, refexpr);
349
+ WRITE_NODE_PTR_FIELD(refassgnexpr, refassgnexpr, refassgnexpr);
350
+ }
351
+
352
+ static void
353
+ _outFuncExpr(OUT_TYPE(FuncExpr, FuncExpr) out, const FuncExpr *node)
354
+ {
355
+ WRITE_UINT_FIELD(funcid, funcid, funcid);
356
+ WRITE_UINT_FIELD(funcresulttype, funcresulttype, funcresulttype);
357
+ WRITE_BOOL_FIELD(funcretset, funcretset, funcretset);
358
+ WRITE_BOOL_FIELD(funcvariadic, funcvariadic, funcvariadic);
359
+ WRITE_ENUM_FIELD(CoercionForm, funcformat, funcformat, funcformat);
360
+ WRITE_UINT_FIELD(funccollid, funccollid, funccollid);
361
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
362
+ WRITE_LIST_FIELD(args, args, args);
363
+ WRITE_INT_FIELD(location, location, location);
364
+ }
365
+
366
+ static void
367
+ _outNamedArgExpr(OUT_TYPE(NamedArgExpr, NamedArgExpr) out, const NamedArgExpr *node)
368
+ {
369
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
370
+ WRITE_STRING_FIELD(name, name, name);
371
+ WRITE_INT_FIELD(argnumber, argnumber, argnumber);
372
+ WRITE_INT_FIELD(location, location, location);
373
+ }
374
+
375
+ static void
376
+ _outOpExpr(OUT_TYPE(OpExpr, OpExpr) out, const OpExpr *node)
377
+ {
378
+ WRITE_UINT_FIELD(opno, opno, opno);
379
+ WRITE_UINT_FIELD(opfuncid, opfuncid, opfuncid);
380
+ WRITE_UINT_FIELD(opresulttype, opresulttype, opresulttype);
381
+ WRITE_BOOL_FIELD(opretset, opretset, opretset);
382
+ WRITE_UINT_FIELD(opcollid, opcollid, opcollid);
383
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
384
+ WRITE_LIST_FIELD(args, args, args);
385
+ WRITE_INT_FIELD(location, location, location);
386
+ }
387
+
388
+ static void
389
+ _outDistinctExpr(OUT_TYPE(DistinctExpr, DistinctExpr) out, const DistinctExpr *node)
390
+ {
391
+ WRITE_UINT_FIELD(opno, opno, opno);
392
+ WRITE_UINT_FIELD(opfuncid, opfuncid, opfuncid);
393
+ WRITE_UINT_FIELD(opresulttype, opresulttype, opresulttype);
394
+ WRITE_BOOL_FIELD(opretset, opretset, opretset);
395
+ WRITE_UINT_FIELD(opcollid, opcollid, opcollid);
396
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
397
+ WRITE_LIST_FIELD(args, args, args);
398
+ WRITE_INT_FIELD(location, location, location);
399
+ }
400
+
401
+ static void
402
+ _outNullIfExpr(OUT_TYPE(NullIfExpr, NullIfExpr) out, const NullIfExpr *node)
403
+ {
404
+ WRITE_UINT_FIELD(opno, opno, opno);
405
+ WRITE_UINT_FIELD(opfuncid, opfuncid, opfuncid);
406
+ WRITE_UINT_FIELD(opresulttype, opresulttype, opresulttype);
407
+ WRITE_BOOL_FIELD(opretset, opretset, opretset);
408
+ WRITE_UINT_FIELD(opcollid, opcollid, opcollid);
409
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
410
+ WRITE_LIST_FIELD(args, args, args);
411
+ WRITE_INT_FIELD(location, location, location);
412
+ }
413
+
414
+ static void
415
+ _outScalarArrayOpExpr(OUT_TYPE(ScalarArrayOpExpr, ScalarArrayOpExpr) out, const ScalarArrayOpExpr *node)
416
+ {
417
+ WRITE_UINT_FIELD(opno, opno, opno);
418
+ WRITE_UINT_FIELD(opfuncid, opfuncid, opfuncid);
419
+ WRITE_BOOL_FIELD(use_or, useOr, useOr);
420
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
421
+ WRITE_LIST_FIELD(args, args, args);
422
+ WRITE_INT_FIELD(location, location, location);
423
+ }
424
+
425
+ static void
426
+ _outBoolExpr(OUT_TYPE(BoolExpr, BoolExpr) out, const BoolExpr *node)
427
+ {
428
+ WRITE_ENUM_FIELD(BoolExprType, boolop, boolop, boolop);
429
+ WRITE_LIST_FIELD(args, args, args);
430
+ WRITE_INT_FIELD(location, location, location);
431
+ }
432
+
433
+ static void
434
+ _outSubLink(OUT_TYPE(SubLink, SubLink) out, const SubLink *node)
435
+ {
436
+ WRITE_ENUM_FIELD(SubLinkType, sub_link_type, subLinkType, subLinkType);
437
+ WRITE_INT_FIELD(sub_link_id, subLinkId, subLinkId);
438
+ WRITE_NODE_PTR_FIELD(testexpr, testexpr, testexpr);
439
+ WRITE_LIST_FIELD(oper_name, operName, operName);
440
+ WRITE_NODE_PTR_FIELD(subselect, subselect, subselect);
441
+ WRITE_INT_FIELD(location, location, location);
442
+ }
443
+
444
+ static void
445
+ _outSubPlan(OUT_TYPE(SubPlan, SubPlan) out, const SubPlan *node)
446
+ {
447
+ WRITE_ENUM_FIELD(SubLinkType, sub_link_type, subLinkType, subLinkType);
448
+ WRITE_NODE_PTR_FIELD(testexpr, testexpr, testexpr);
449
+ WRITE_LIST_FIELD(param_ids, paramIds, paramIds);
450
+ WRITE_INT_FIELD(plan_id, plan_id, plan_id);
451
+ WRITE_STRING_FIELD(plan_name, plan_name, plan_name);
452
+ WRITE_UINT_FIELD(first_col_type, firstColType, firstColType);
453
+ WRITE_INT_FIELD(first_col_typmod, firstColTypmod, firstColTypmod);
454
+ WRITE_UINT_FIELD(first_col_collation, firstColCollation, firstColCollation);
455
+ WRITE_BOOL_FIELD(use_hash_table, useHashTable, useHashTable);
456
+ WRITE_BOOL_FIELD(unknown_eq_false, unknownEqFalse, unknownEqFalse);
457
+ WRITE_BOOL_FIELD(parallel_safe, parallel_safe, parallel_safe);
458
+ WRITE_LIST_FIELD(set_param, setParam, setParam);
459
+ WRITE_LIST_FIELD(par_param, parParam, parParam);
460
+ WRITE_LIST_FIELD(args, args, args);
461
+ WRITE_FLOAT_FIELD(startup_cost, startup_cost, startup_cost);
462
+ WRITE_FLOAT_FIELD(per_call_cost, per_call_cost, per_call_cost);
463
+ }
464
+
465
+ static void
466
+ _outAlternativeSubPlan(OUT_TYPE(AlternativeSubPlan, AlternativeSubPlan) out, const AlternativeSubPlan *node)
467
+ {
468
+ WRITE_LIST_FIELD(subplans, subplans, subplans);
469
+ }
470
+
471
+ static void
472
+ _outFieldSelect(OUT_TYPE(FieldSelect, FieldSelect) out, const FieldSelect *node)
473
+ {
474
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
475
+ WRITE_INT_FIELD(fieldnum, fieldnum, fieldnum);
476
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
477
+ WRITE_INT_FIELD(resulttypmod, resulttypmod, resulttypmod);
478
+ WRITE_UINT_FIELD(resultcollid, resultcollid, resultcollid);
479
+ }
480
+
481
+ static void
482
+ _outFieldStore(OUT_TYPE(FieldStore, FieldStore) out, const FieldStore *node)
483
+ {
484
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
485
+ WRITE_LIST_FIELD(newvals, newvals, newvals);
486
+ WRITE_LIST_FIELD(fieldnums, fieldnums, fieldnums);
487
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
488
+ }
489
+
490
+ static void
491
+ _outRelabelType(OUT_TYPE(RelabelType, RelabelType) out, const RelabelType *node)
492
+ {
493
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
494
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
495
+ WRITE_INT_FIELD(resulttypmod, resulttypmod, resulttypmod);
496
+ WRITE_UINT_FIELD(resultcollid, resultcollid, resultcollid);
497
+ WRITE_ENUM_FIELD(CoercionForm, relabelformat, relabelformat, relabelformat);
498
+ WRITE_INT_FIELD(location, location, location);
499
+ }
500
+
501
+ static void
502
+ _outCoerceViaIO(OUT_TYPE(CoerceViaIO, CoerceViaIO) out, const CoerceViaIO *node)
503
+ {
504
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
505
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
506
+ WRITE_UINT_FIELD(resultcollid, resultcollid, resultcollid);
507
+ WRITE_ENUM_FIELD(CoercionForm, coerceformat, coerceformat, coerceformat);
508
+ WRITE_INT_FIELD(location, location, location);
509
+ }
510
+
511
+ static void
512
+ _outArrayCoerceExpr(OUT_TYPE(ArrayCoerceExpr, ArrayCoerceExpr) out, const ArrayCoerceExpr *node)
513
+ {
514
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
515
+ WRITE_NODE_PTR_FIELD(elemexpr, elemexpr, elemexpr);
516
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
517
+ WRITE_INT_FIELD(resulttypmod, resulttypmod, resulttypmod);
518
+ WRITE_UINT_FIELD(resultcollid, resultcollid, resultcollid);
519
+ WRITE_ENUM_FIELD(CoercionForm, coerceformat, coerceformat, coerceformat);
520
+ WRITE_INT_FIELD(location, location, location);
521
+ }
522
+
523
+ static void
524
+ _outConvertRowtypeExpr(OUT_TYPE(ConvertRowtypeExpr, ConvertRowtypeExpr) out, const ConvertRowtypeExpr *node)
525
+ {
526
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
527
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
528
+ WRITE_ENUM_FIELD(CoercionForm, convertformat, convertformat, convertformat);
529
+ WRITE_INT_FIELD(location, location, location);
530
+ }
531
+
532
+ static void
533
+ _outCollateExpr(OUT_TYPE(CollateExpr, CollateExpr) out, const CollateExpr *node)
534
+ {
535
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
536
+ WRITE_UINT_FIELD(coll_oid, collOid, collOid);
537
+ WRITE_INT_FIELD(location, location, location);
538
+ }
539
+
540
+ static void
541
+ _outCaseExpr(OUT_TYPE(CaseExpr, CaseExpr) out, const CaseExpr *node)
542
+ {
543
+ WRITE_UINT_FIELD(casetype, casetype, casetype);
544
+ WRITE_UINT_FIELD(casecollid, casecollid, casecollid);
545
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
546
+ WRITE_LIST_FIELD(args, args, args);
547
+ WRITE_NODE_PTR_FIELD(defresult, defresult, defresult);
548
+ WRITE_INT_FIELD(location, location, location);
549
+ }
550
+
551
+ static void
552
+ _outCaseWhen(OUT_TYPE(CaseWhen, CaseWhen) out, const CaseWhen *node)
553
+ {
554
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
555
+ WRITE_NODE_PTR_FIELD(result, result, result);
556
+ WRITE_INT_FIELD(location, location, location);
557
+ }
558
+
559
+ static void
560
+ _outCaseTestExpr(OUT_TYPE(CaseTestExpr, CaseTestExpr) out, const CaseTestExpr *node)
561
+ {
562
+ WRITE_UINT_FIELD(type_id, typeId, typeId);
563
+ WRITE_INT_FIELD(type_mod, typeMod, typeMod);
564
+ WRITE_UINT_FIELD(collation, collation, collation);
565
+ }
566
+
567
+ static void
568
+ _outArrayExpr(OUT_TYPE(ArrayExpr, ArrayExpr) out, const ArrayExpr *node)
569
+ {
570
+ WRITE_UINT_FIELD(array_typeid, array_typeid, array_typeid);
571
+ WRITE_UINT_FIELD(array_collid, array_collid, array_collid);
572
+ WRITE_UINT_FIELD(element_typeid, element_typeid, element_typeid);
573
+ WRITE_LIST_FIELD(elements, elements, elements);
574
+ WRITE_BOOL_FIELD(multidims, multidims, multidims);
575
+ WRITE_INT_FIELD(location, location, location);
576
+ }
577
+
578
+ static void
579
+ _outRowExpr(OUT_TYPE(RowExpr, RowExpr) out, const RowExpr *node)
580
+ {
581
+ WRITE_LIST_FIELD(args, args, args);
582
+ WRITE_UINT_FIELD(row_typeid, row_typeid, row_typeid);
583
+ WRITE_ENUM_FIELD(CoercionForm, row_format, row_format, row_format);
584
+ WRITE_LIST_FIELD(colnames, colnames, colnames);
585
+ WRITE_INT_FIELD(location, location, location);
586
+ }
587
+
588
+ static void
589
+ _outRowCompareExpr(OUT_TYPE(RowCompareExpr, RowCompareExpr) out, const RowCompareExpr *node)
590
+ {
591
+ WRITE_ENUM_FIELD(RowCompareType, rctype, rctype, rctype);
592
+ WRITE_LIST_FIELD(opnos, opnos, opnos);
593
+ WRITE_LIST_FIELD(opfamilies, opfamilies, opfamilies);
594
+ WRITE_LIST_FIELD(inputcollids, inputcollids, inputcollids);
595
+ WRITE_LIST_FIELD(largs, largs, largs);
596
+ WRITE_LIST_FIELD(rargs, rargs, rargs);
597
+ }
598
+
599
+ static void
600
+ _outCoalesceExpr(OUT_TYPE(CoalesceExpr, CoalesceExpr) out, const CoalesceExpr *node)
601
+ {
602
+ WRITE_UINT_FIELD(coalescetype, coalescetype, coalescetype);
603
+ WRITE_UINT_FIELD(coalescecollid, coalescecollid, coalescecollid);
604
+ WRITE_LIST_FIELD(args, args, args);
605
+ WRITE_INT_FIELD(location, location, location);
606
+ }
607
+
608
+ static void
609
+ _outMinMaxExpr(OUT_TYPE(MinMaxExpr, MinMaxExpr) out, const MinMaxExpr *node)
610
+ {
611
+ WRITE_UINT_FIELD(minmaxtype, minmaxtype, minmaxtype);
612
+ WRITE_UINT_FIELD(minmaxcollid, minmaxcollid, minmaxcollid);
613
+ WRITE_UINT_FIELD(inputcollid, inputcollid, inputcollid);
614
+ WRITE_ENUM_FIELD(MinMaxOp, op, op, op);
615
+ WRITE_LIST_FIELD(args, args, args);
616
+ WRITE_INT_FIELD(location, location, location);
617
+ }
618
+
619
+ static void
620
+ _outSQLValueFunction(OUT_TYPE(SQLValueFunction, SQLValueFunction) out, const SQLValueFunction *node)
621
+ {
622
+ WRITE_ENUM_FIELD(SQLValueFunctionOp, op, op, op);
623
+ WRITE_UINT_FIELD(type, type, type);
624
+ WRITE_INT_FIELD(typmod, typmod, typmod);
625
+ WRITE_INT_FIELD(location, location, location);
626
+ }
627
+
628
+ static void
629
+ _outXmlExpr(OUT_TYPE(XmlExpr, XmlExpr) out, const XmlExpr *node)
630
+ {
631
+ WRITE_ENUM_FIELD(XmlExprOp, op, op, op);
632
+ WRITE_STRING_FIELD(name, name, name);
633
+ WRITE_LIST_FIELD(named_args, named_args, named_args);
634
+ WRITE_LIST_FIELD(arg_names, arg_names, arg_names);
635
+ WRITE_LIST_FIELD(args, args, args);
636
+ WRITE_ENUM_FIELD(XmlOptionType, xmloption, xmloption, xmloption);
637
+ WRITE_UINT_FIELD(type, type, type);
638
+ WRITE_INT_FIELD(typmod, typmod, typmod);
639
+ WRITE_INT_FIELD(location, location, location);
640
+ }
641
+
642
+ static void
643
+ _outNullTest(OUT_TYPE(NullTest, NullTest) out, const NullTest *node)
644
+ {
645
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
646
+ WRITE_ENUM_FIELD(NullTestType, nulltesttype, nulltesttype, nulltesttype);
647
+ WRITE_BOOL_FIELD(argisrow, argisrow, argisrow);
648
+ WRITE_INT_FIELD(location, location, location);
649
+ }
650
+
651
+ static void
652
+ _outBooleanTest(OUT_TYPE(BooleanTest, BooleanTest) out, const BooleanTest *node)
653
+ {
654
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
655
+ WRITE_ENUM_FIELD(BoolTestType, booltesttype, booltesttype, booltesttype);
656
+ WRITE_INT_FIELD(location, location, location);
657
+ }
658
+
659
+ static void
660
+ _outCoerceToDomain(OUT_TYPE(CoerceToDomain, CoerceToDomain) out, const CoerceToDomain *node)
661
+ {
662
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
663
+ WRITE_UINT_FIELD(resulttype, resulttype, resulttype);
664
+ WRITE_INT_FIELD(resulttypmod, resulttypmod, resulttypmod);
665
+ WRITE_UINT_FIELD(resultcollid, resultcollid, resultcollid);
666
+ WRITE_ENUM_FIELD(CoercionForm, coercionformat, coercionformat, coercionformat);
667
+ WRITE_INT_FIELD(location, location, location);
668
+ }
669
+
670
+ static void
671
+ _outCoerceToDomainValue(OUT_TYPE(CoerceToDomainValue, CoerceToDomainValue) out, const CoerceToDomainValue *node)
672
+ {
673
+ WRITE_UINT_FIELD(type_id, typeId, typeId);
674
+ WRITE_INT_FIELD(type_mod, typeMod, typeMod);
675
+ WRITE_UINT_FIELD(collation, collation, collation);
676
+ WRITE_INT_FIELD(location, location, location);
677
+ }
678
+
679
+ static void
680
+ _outSetToDefault(OUT_TYPE(SetToDefault, SetToDefault) out, const SetToDefault *node)
681
+ {
682
+ WRITE_UINT_FIELD(type_id, typeId, typeId);
683
+ WRITE_INT_FIELD(type_mod, typeMod, typeMod);
684
+ WRITE_UINT_FIELD(collation, collation, collation);
685
+ WRITE_INT_FIELD(location, location, location);
686
+ }
687
+
688
+ static void
689
+ _outCurrentOfExpr(OUT_TYPE(CurrentOfExpr, CurrentOfExpr) out, const CurrentOfExpr *node)
690
+ {
691
+ WRITE_UINT_FIELD(cvarno, cvarno, cvarno);
692
+ WRITE_STRING_FIELD(cursor_name, cursor_name, cursor_name);
693
+ WRITE_INT_FIELD(cursor_param, cursor_param, cursor_param);
694
+ }
695
+
696
+ static void
697
+ _outNextValueExpr(OUT_TYPE(NextValueExpr, NextValueExpr) out, const NextValueExpr *node)
698
+ {
699
+ WRITE_UINT_FIELD(seqid, seqid, seqid);
700
+ WRITE_UINT_FIELD(type_id, typeId, typeId);
701
+ }
702
+
703
+ static void
704
+ _outInferenceElem(OUT_TYPE(InferenceElem, InferenceElem) out, const InferenceElem *node)
705
+ {
706
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
707
+ WRITE_UINT_FIELD(infercollid, infercollid, infercollid);
708
+ WRITE_UINT_FIELD(inferopclass, inferopclass, inferopclass);
709
+ }
710
+
711
+ static void
712
+ _outTargetEntry(OUT_TYPE(TargetEntry, TargetEntry) out, const TargetEntry *node)
713
+ {
714
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
715
+ WRITE_INT_FIELD(resno, resno, resno);
716
+ WRITE_STRING_FIELD(resname, resname, resname);
717
+ WRITE_UINT_FIELD(ressortgroupref, ressortgroupref, ressortgroupref);
718
+ WRITE_UINT_FIELD(resorigtbl, resorigtbl, resorigtbl);
719
+ WRITE_INT_FIELD(resorigcol, resorigcol, resorigcol);
720
+ WRITE_BOOL_FIELD(resjunk, resjunk, resjunk);
721
+ }
722
+
723
+ static void
724
+ _outRangeTblRef(OUT_TYPE(RangeTblRef, RangeTblRef) out, const RangeTblRef *node)
725
+ {
726
+ WRITE_INT_FIELD(rtindex, rtindex, rtindex);
727
+ }
728
+
729
+ static void
730
+ _outJoinExpr(OUT_TYPE(JoinExpr, JoinExpr) out, const JoinExpr *node)
731
+ {
732
+ WRITE_ENUM_FIELD(JoinType, jointype, jointype, jointype);
733
+ WRITE_BOOL_FIELD(is_natural, isNatural, isNatural);
734
+ WRITE_NODE_PTR_FIELD(larg, larg, larg);
735
+ WRITE_NODE_PTR_FIELD(rarg, rarg, rarg);
736
+ WRITE_LIST_FIELD(using_clause, usingClause, usingClause);
737
+ WRITE_NODE_PTR_FIELD(quals, quals, quals);
738
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
739
+ WRITE_INT_FIELD(rtindex, rtindex, rtindex);
740
+ }
741
+
742
+ static void
743
+ _outFromExpr(OUT_TYPE(FromExpr, FromExpr) out, const FromExpr *node)
744
+ {
745
+ WRITE_LIST_FIELD(fromlist, fromlist, fromlist);
746
+ WRITE_NODE_PTR_FIELD(quals, quals, quals);
747
+ }
748
+
749
+ static void
750
+ _outOnConflictExpr(OUT_TYPE(OnConflictExpr, OnConflictExpr) out, const OnConflictExpr *node)
751
+ {
752
+ WRITE_ENUM_FIELD(OnConflictAction, action, action, action);
753
+ WRITE_LIST_FIELD(arbiter_elems, arbiterElems, arbiterElems);
754
+ WRITE_NODE_PTR_FIELD(arbiter_where, arbiterWhere, arbiterWhere);
755
+ WRITE_UINT_FIELD(constraint, constraint, constraint);
756
+ WRITE_LIST_FIELD(on_conflict_set, onConflictSet, onConflictSet);
757
+ WRITE_NODE_PTR_FIELD(on_conflict_where, onConflictWhere, onConflictWhere);
758
+ WRITE_INT_FIELD(excl_rel_index, exclRelIndex, exclRelIndex);
759
+ WRITE_LIST_FIELD(excl_rel_tlist, exclRelTlist, exclRelTlist);
760
+ }
761
+
762
+ static void
763
+ _outIntoClause(OUT_TYPE(IntoClause, IntoClause) out, const IntoClause *node)
764
+ {
765
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, rel, rel, rel);
766
+ WRITE_LIST_FIELD(col_names, colNames, colNames);
767
+ WRITE_STRING_FIELD(access_method, accessMethod, accessMethod);
768
+ WRITE_LIST_FIELD(options, options, options);
769
+ WRITE_ENUM_FIELD(OnCommitAction, on_commit, onCommit, onCommit);
770
+ WRITE_STRING_FIELD(table_space_name, tableSpaceName, tableSpaceName);
771
+ WRITE_NODE_PTR_FIELD(view_query, viewQuery, viewQuery);
772
+ WRITE_BOOL_FIELD(skip_data, skipData, skipData);
773
+ }
774
+
775
+ static void
776
+ _outRawStmt(OUT_TYPE(RawStmt, RawStmt) out, const RawStmt *node)
777
+ {
778
+ WRITE_NODE_PTR_FIELD(stmt, stmt, stmt);
779
+ WRITE_INT_FIELD(stmt_location, stmt_location, stmt_location);
780
+ WRITE_INT_FIELD(stmt_len, stmt_len, stmt_len);
781
+ }
782
+
783
+ static void
784
+ _outQuery(OUT_TYPE(Query, Query) out, const Query *node)
785
+ {
786
+ WRITE_ENUM_FIELD(CmdType, command_type, commandType, commandType);
787
+ WRITE_ENUM_FIELD(QuerySource, query_source, querySource, querySource);
788
+ WRITE_BOOL_FIELD(can_set_tag, canSetTag, canSetTag);
789
+ WRITE_NODE_PTR_FIELD(utility_stmt, utilityStmt, utilityStmt);
790
+ WRITE_INT_FIELD(result_relation, resultRelation, resultRelation);
791
+ WRITE_BOOL_FIELD(has_aggs, hasAggs, hasAggs);
792
+ WRITE_BOOL_FIELD(has_window_funcs, hasWindowFuncs, hasWindowFuncs);
793
+ WRITE_BOOL_FIELD(has_target_srfs, hasTargetSRFs, hasTargetSRFs);
794
+ WRITE_BOOL_FIELD(has_sub_links, hasSubLinks, hasSubLinks);
795
+ WRITE_BOOL_FIELD(has_distinct_on, hasDistinctOn, hasDistinctOn);
796
+ WRITE_BOOL_FIELD(has_recursive, hasRecursive, hasRecursive);
797
+ WRITE_BOOL_FIELD(has_modifying_cte, hasModifyingCTE, hasModifyingCTE);
798
+ WRITE_BOOL_FIELD(has_for_update, hasForUpdate, hasForUpdate);
799
+ WRITE_BOOL_FIELD(has_row_security, hasRowSecurity, hasRowSecurity);
800
+ WRITE_LIST_FIELD(cte_list, cteList, cteList);
801
+ WRITE_LIST_FIELD(rtable, rtable, rtable);
802
+ WRITE_SPECIFIC_NODE_PTR_FIELD(FromExpr, from_expr, jointree, jointree, jointree);
803
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
804
+ WRITE_ENUM_FIELD(OverridingKind, override, override, override);
805
+ WRITE_SPECIFIC_NODE_PTR_FIELD(OnConflictExpr, on_conflict_expr, on_conflict, onConflict, onConflict);
806
+ WRITE_LIST_FIELD(returning_list, returningList, returningList);
807
+ WRITE_LIST_FIELD(group_clause, groupClause, groupClause);
808
+ WRITE_LIST_FIELD(grouping_sets, groupingSets, groupingSets);
809
+ WRITE_NODE_PTR_FIELD(having_qual, havingQual, havingQual);
810
+ WRITE_LIST_FIELD(window_clause, windowClause, windowClause);
811
+ WRITE_LIST_FIELD(distinct_clause, distinctClause, distinctClause);
812
+ WRITE_LIST_FIELD(sort_clause, sortClause, sortClause);
813
+ WRITE_NODE_PTR_FIELD(limit_offset, limitOffset, limitOffset);
814
+ WRITE_NODE_PTR_FIELD(limit_count, limitCount, limitCount);
815
+ WRITE_ENUM_FIELD(LimitOption, limit_option, limitOption, limitOption);
816
+ WRITE_LIST_FIELD(row_marks, rowMarks, rowMarks);
817
+ WRITE_NODE_PTR_FIELD(set_operations, setOperations, setOperations);
818
+ WRITE_LIST_FIELD(constraint_deps, constraintDeps, constraintDeps);
819
+ WRITE_LIST_FIELD(with_check_options, withCheckOptions, withCheckOptions);
820
+ WRITE_INT_FIELD(stmt_location, stmt_location, stmt_location);
821
+ WRITE_INT_FIELD(stmt_len, stmt_len, stmt_len);
822
+ }
823
+
824
+ static void
825
+ _outInsertStmt(OUT_TYPE(InsertStmt, InsertStmt) out, const InsertStmt *node)
826
+ {
827
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
828
+ WRITE_LIST_FIELD(cols, cols, cols);
829
+ WRITE_NODE_PTR_FIELD(select_stmt, selectStmt, selectStmt);
830
+ WRITE_SPECIFIC_NODE_PTR_FIELD(OnConflictClause, on_conflict_clause, on_conflict_clause, onConflictClause, onConflictClause);
831
+ WRITE_LIST_FIELD(returning_list, returningList, returningList);
832
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
833
+ WRITE_ENUM_FIELD(OverridingKind, override, override, override);
834
+ }
835
+
836
+ static void
837
+ _outDeleteStmt(OUT_TYPE(DeleteStmt, DeleteStmt) out, const DeleteStmt *node)
838
+ {
839
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
840
+ WRITE_LIST_FIELD(using_clause, usingClause, usingClause);
841
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
842
+ WRITE_LIST_FIELD(returning_list, returningList, returningList);
843
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
844
+ }
845
+
846
+ static void
847
+ _outUpdateStmt(OUT_TYPE(UpdateStmt, UpdateStmt) out, const UpdateStmt *node)
848
+ {
849
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
850
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
851
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
852
+ WRITE_LIST_FIELD(from_clause, fromClause, fromClause);
853
+ WRITE_LIST_FIELD(returning_list, returningList, returningList);
854
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
855
+ }
856
+
857
+ static void
858
+ _outSelectStmt(OUT_TYPE(SelectStmt, SelectStmt) out, const SelectStmt *node)
859
+ {
860
+ WRITE_LIST_FIELD(distinct_clause, distinctClause, distinctClause);
861
+ WRITE_SPECIFIC_NODE_PTR_FIELD(IntoClause, into_clause, into_clause, intoClause, intoClause);
862
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
863
+ WRITE_LIST_FIELD(from_clause, fromClause, fromClause);
864
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
865
+ WRITE_LIST_FIELD(group_clause, groupClause, groupClause);
866
+ WRITE_NODE_PTR_FIELD(having_clause, havingClause, havingClause);
867
+ WRITE_LIST_FIELD(window_clause, windowClause, windowClause);
868
+ WRITE_LIST_FIELD(values_lists, valuesLists, valuesLists);
869
+ WRITE_LIST_FIELD(sort_clause, sortClause, sortClause);
870
+ WRITE_NODE_PTR_FIELD(limit_offset, limitOffset, limitOffset);
871
+ WRITE_NODE_PTR_FIELD(limit_count, limitCount, limitCount);
872
+ WRITE_ENUM_FIELD(LimitOption, limit_option, limitOption, limitOption);
873
+ WRITE_LIST_FIELD(locking_clause, lockingClause, lockingClause);
874
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WithClause, with_clause, with_clause, withClause, withClause);
875
+ WRITE_ENUM_FIELD(SetOperation, op, op, op);
876
+ WRITE_BOOL_FIELD(all, all, all);
877
+ WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, select_stmt, larg, larg, larg);
878
+ WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, select_stmt, rarg, rarg, rarg);
879
+ }
880
+
881
+ static void
882
+ _outAlterTableStmt(OUT_TYPE(AlterTableStmt, AlterTableStmt) out, const AlterTableStmt *node)
883
+ {
884
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
885
+ WRITE_LIST_FIELD(cmds, cmds, cmds);
886
+ WRITE_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
887
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
888
+ }
889
+
890
+ static void
891
+ _outAlterTableCmd(OUT_TYPE(AlterTableCmd, AlterTableCmd) out, const AlterTableCmd *node)
892
+ {
893
+ WRITE_ENUM_FIELD(AlterTableType, subtype, subtype, subtype);
894
+ WRITE_STRING_FIELD(name, name, name);
895
+ WRITE_INT_FIELD(num, num, num);
896
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, newowner, newowner, newowner);
897
+ WRITE_NODE_PTR_FIELD(def, def, def);
898
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
899
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
900
+ }
901
+
902
+ static void
903
+ _outAlterDomainStmt(OUT_TYPE(AlterDomainStmt, AlterDomainStmt) out, const AlterDomainStmt *node)
904
+ {
905
+ WRITE_CHAR_FIELD(subtype, subtype, subtype);
906
+ WRITE_LIST_FIELD(type_name, typeName, typeName);
907
+ WRITE_STRING_FIELD(name, name, name);
908
+ WRITE_NODE_PTR_FIELD(def, def, def);
909
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
910
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
911
+ }
912
+
913
+ static void
914
+ _outSetOperationStmt(OUT_TYPE(SetOperationStmt, SetOperationStmt) out, const SetOperationStmt *node)
915
+ {
916
+ WRITE_ENUM_FIELD(SetOperation, op, op, op);
917
+ WRITE_BOOL_FIELD(all, all, all);
918
+ WRITE_NODE_PTR_FIELD(larg, larg, larg);
919
+ WRITE_NODE_PTR_FIELD(rarg, rarg, rarg);
920
+ WRITE_LIST_FIELD(col_types, colTypes, colTypes);
921
+ WRITE_LIST_FIELD(col_typmods, colTypmods, colTypmods);
922
+ WRITE_LIST_FIELD(col_collations, colCollations, colCollations);
923
+ WRITE_LIST_FIELD(group_clauses, groupClauses, groupClauses);
924
+ }
925
+
926
+ static void
927
+ _outGrantStmt(OUT_TYPE(GrantStmt, GrantStmt) out, const GrantStmt *node)
928
+ {
929
+ WRITE_BOOL_FIELD(is_grant, is_grant, is_grant);
930
+ WRITE_ENUM_FIELD(GrantTargetType, targtype, targtype, targtype);
931
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
932
+ WRITE_LIST_FIELD(objects, objects, objects);
933
+ WRITE_LIST_FIELD(privileges, privileges, privileges);
934
+ WRITE_LIST_FIELD(grantees, grantees, grantees);
935
+ WRITE_BOOL_FIELD(grant_option, grant_option, grant_option);
936
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
937
+ }
938
+
939
+ static void
940
+ _outGrantRoleStmt(OUT_TYPE(GrantRoleStmt, GrantRoleStmt) out, const GrantRoleStmt *node)
941
+ {
942
+ WRITE_LIST_FIELD(granted_roles, granted_roles, granted_roles);
943
+ WRITE_LIST_FIELD(grantee_roles, grantee_roles, grantee_roles);
944
+ WRITE_BOOL_FIELD(is_grant, is_grant, is_grant);
945
+ WRITE_BOOL_FIELD(admin_opt, admin_opt, admin_opt);
946
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, grantor, grantor, grantor);
947
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
948
+ }
949
+
950
+ static void
951
+ _outAlterDefaultPrivilegesStmt(OUT_TYPE(AlterDefaultPrivilegesStmt, AlterDefaultPrivilegesStmt) out, const AlterDefaultPrivilegesStmt *node)
952
+ {
953
+ WRITE_LIST_FIELD(options, options, options);
954
+ WRITE_SPECIFIC_NODE_PTR_FIELD(GrantStmt, grant_stmt, action, action, action);
955
+ }
956
+
957
+ static void
958
+ _outClosePortalStmt(OUT_TYPE(ClosePortalStmt, ClosePortalStmt) out, const ClosePortalStmt *node)
959
+ {
960
+ WRITE_STRING_FIELD(portalname, portalname, portalname);
961
+ }
962
+
963
+ static void
964
+ _outClusterStmt(OUT_TYPE(ClusterStmt, ClusterStmt) out, const ClusterStmt *node)
965
+ {
966
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
967
+ WRITE_STRING_FIELD(indexname, indexname, indexname);
968
+ WRITE_INT_FIELD(options, options, options);
969
+ }
970
+
971
+ static void
972
+ _outCopyStmt(OUT_TYPE(CopyStmt, CopyStmt) out, const CopyStmt *node)
973
+ {
974
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
975
+ WRITE_NODE_PTR_FIELD(query, query, query);
976
+ WRITE_LIST_FIELD(attlist, attlist, attlist);
977
+ WRITE_BOOL_FIELD(is_from, is_from, is_from);
978
+ WRITE_BOOL_FIELD(is_program, is_program, is_program);
979
+ WRITE_STRING_FIELD(filename, filename, filename);
980
+ WRITE_LIST_FIELD(options, options, options);
981
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
982
+ }
983
+
984
+ static void
985
+ _outCreateStmt(OUT_TYPE(CreateStmt, CreateStmt) out, const CreateStmt *node)
986
+ {
987
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
988
+ WRITE_LIST_FIELD(table_elts, tableElts, tableElts);
989
+ WRITE_LIST_FIELD(inh_relations, inhRelations, inhRelations);
990
+ WRITE_SPECIFIC_NODE_PTR_FIELD(PartitionBoundSpec, partition_bound_spec, partbound, partbound, partbound);
991
+ WRITE_SPECIFIC_NODE_PTR_FIELD(PartitionSpec, partition_spec, partspec, partspec, partspec);
992
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, of_typename, ofTypename, ofTypename);
993
+ WRITE_LIST_FIELD(constraints, constraints, constraints);
994
+ WRITE_LIST_FIELD(options, options, options);
995
+ WRITE_ENUM_FIELD(OnCommitAction, oncommit, oncommit, oncommit);
996
+ WRITE_STRING_FIELD(tablespacename, tablespacename, tablespacename);
997
+ WRITE_STRING_FIELD(access_method, accessMethod, accessMethod);
998
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
999
+ }
1000
+
1001
+ static void
1002
+ _outDefineStmt(OUT_TYPE(DefineStmt, DefineStmt) out, const DefineStmt *node)
1003
+ {
1004
+ WRITE_ENUM_FIELD(ObjectType, kind, kind, kind);
1005
+ WRITE_BOOL_FIELD(oldstyle, oldstyle, oldstyle);
1006
+ WRITE_LIST_FIELD(defnames, defnames, defnames);
1007
+ WRITE_LIST_FIELD(args, args, args);
1008
+ WRITE_LIST_FIELD(definition, definition, definition);
1009
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1010
+ WRITE_BOOL_FIELD(replace, replace, replace);
1011
+ }
1012
+
1013
+ static void
1014
+ _outDropStmt(OUT_TYPE(DropStmt, DropStmt) out, const DropStmt *node)
1015
+ {
1016
+ WRITE_LIST_FIELD(objects, objects, objects);
1017
+ WRITE_ENUM_FIELD(ObjectType, remove_type, removeType, removeType);
1018
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1019
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1020
+ WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
1021
+ }
1022
+
1023
+ static void
1024
+ _outTruncateStmt(OUT_TYPE(TruncateStmt, TruncateStmt) out, const TruncateStmt *node)
1025
+ {
1026
+ WRITE_LIST_FIELD(relations, relations, relations);
1027
+ WRITE_BOOL_FIELD(restart_seqs, restart_seqs, restart_seqs);
1028
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1029
+ }
1030
+
1031
+ static void
1032
+ _outCommentStmt(OUT_TYPE(CommentStmt, CommentStmt) out, const CommentStmt *node)
1033
+ {
1034
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1035
+ WRITE_NODE_PTR_FIELD(object, object, object);
1036
+ WRITE_STRING_FIELD(comment, comment, comment);
1037
+ }
1038
+
1039
+ static void
1040
+ _outFetchStmt(OUT_TYPE(FetchStmt, FetchStmt) out, const FetchStmt *node)
1041
+ {
1042
+ WRITE_ENUM_FIELD(FetchDirection, direction, direction, direction);
1043
+ WRITE_LONG_FIELD(how_many, howMany, howMany);
1044
+ WRITE_STRING_FIELD(portalname, portalname, portalname);
1045
+ WRITE_BOOL_FIELD(ismove, ismove, ismove);
1046
+ }
1047
+
1048
+ static void
1049
+ _outIndexStmt(OUT_TYPE(IndexStmt, IndexStmt) out, const IndexStmt *node)
1050
+ {
1051
+ WRITE_STRING_FIELD(idxname, idxname, idxname);
1052
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1053
+ WRITE_STRING_FIELD(access_method, accessMethod, accessMethod);
1054
+ WRITE_STRING_FIELD(table_space, tableSpace, tableSpace);
1055
+ WRITE_LIST_FIELD(index_params, indexParams, indexParams);
1056
+ WRITE_LIST_FIELD(index_including_params, indexIncludingParams, indexIncludingParams);
1057
+ WRITE_LIST_FIELD(options, options, options);
1058
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
1059
+ WRITE_LIST_FIELD(exclude_op_names, excludeOpNames, excludeOpNames);
1060
+ WRITE_STRING_FIELD(idxcomment, idxcomment, idxcomment);
1061
+ WRITE_UINT_FIELD(index_oid, indexOid, indexOid);
1062
+ WRITE_UINT_FIELD(old_node, oldNode, oldNode);
1063
+ WRITE_UINT_FIELD(old_create_subid, oldCreateSubid, oldCreateSubid);
1064
+ WRITE_UINT_FIELD(old_first_relfilenode_subid, oldFirstRelfilenodeSubid, oldFirstRelfilenodeSubid);
1065
+ WRITE_BOOL_FIELD(unique, unique, unique);
1066
+ WRITE_BOOL_FIELD(primary, primary, primary);
1067
+ WRITE_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1068
+ WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
1069
+ WRITE_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
1070
+ WRITE_BOOL_FIELD(transformed, transformed, transformed);
1071
+ WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
1072
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1073
+ WRITE_BOOL_FIELD(reset_default_tblspc, reset_default_tblspc, reset_default_tblspc);
1074
+ }
1075
+
1076
+ static void
1077
+ _outCreateFunctionStmt(OUT_TYPE(CreateFunctionStmt, CreateFunctionStmt) out, const CreateFunctionStmt *node)
1078
+ {
1079
+ WRITE_BOOL_FIELD(is_procedure, is_procedure, is_procedure);
1080
+ WRITE_BOOL_FIELD(replace, replace, replace);
1081
+ WRITE_LIST_FIELD(funcname, funcname, funcname);
1082
+ WRITE_LIST_FIELD(parameters, parameters, parameters);
1083
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, return_type, returnType, returnType);
1084
+ WRITE_LIST_FIELD(options, options, options);
1085
+ }
1086
+
1087
+ static void
1088
+ _outAlterFunctionStmt(OUT_TYPE(AlterFunctionStmt, AlterFunctionStmt) out, const AlterFunctionStmt *node)
1089
+ {
1090
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1091
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, func, func, func);
1092
+ WRITE_LIST_FIELD(actions, actions, actions);
1093
+ }
1094
+
1095
+ static void
1096
+ _outDoStmt(OUT_TYPE(DoStmt, DoStmt) out, const DoStmt *node)
1097
+ {
1098
+ WRITE_LIST_FIELD(args, args, args);
1099
+ }
1100
+
1101
+ static void
1102
+ _outRenameStmt(OUT_TYPE(RenameStmt, RenameStmt) out, const RenameStmt *node)
1103
+ {
1104
+ WRITE_ENUM_FIELD(ObjectType, rename_type, renameType, renameType);
1105
+ WRITE_ENUM_FIELD(ObjectType, relation_type, relationType, relationType);
1106
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1107
+ WRITE_NODE_PTR_FIELD(object, object, object);
1108
+ WRITE_STRING_FIELD(subname, subname, subname);
1109
+ WRITE_STRING_FIELD(newname, newname, newname);
1110
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1111
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1112
+ }
1113
+
1114
+ static void
1115
+ _outRuleStmt(OUT_TYPE(RuleStmt, RuleStmt) out, const RuleStmt *node)
1116
+ {
1117
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1118
+ WRITE_STRING_FIELD(rulename, rulename, rulename);
1119
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
1120
+ WRITE_ENUM_FIELD(CmdType, event, event, event);
1121
+ WRITE_BOOL_FIELD(instead, instead, instead);
1122
+ WRITE_LIST_FIELD(actions, actions, actions);
1123
+ WRITE_BOOL_FIELD(replace, replace, replace);
1124
+ }
1125
+
1126
+ static void
1127
+ _outNotifyStmt(OUT_TYPE(NotifyStmt, NotifyStmt) out, const NotifyStmt *node)
1128
+ {
1129
+ WRITE_STRING_FIELD(conditionname, conditionname, conditionname);
1130
+ WRITE_STRING_FIELD(payload, payload, payload);
1131
+ }
1132
+
1133
+ static void
1134
+ _outListenStmt(OUT_TYPE(ListenStmt, ListenStmt) out, const ListenStmt *node)
1135
+ {
1136
+ WRITE_STRING_FIELD(conditionname, conditionname, conditionname);
1137
+ }
1138
+
1139
+ static void
1140
+ _outUnlistenStmt(OUT_TYPE(UnlistenStmt, UnlistenStmt) out, const UnlistenStmt *node)
1141
+ {
1142
+ WRITE_STRING_FIELD(conditionname, conditionname, conditionname);
1143
+ }
1144
+
1145
+ static void
1146
+ _outTransactionStmt(OUT_TYPE(TransactionStmt, TransactionStmt) out, const TransactionStmt *node)
1147
+ {
1148
+ WRITE_ENUM_FIELD(TransactionStmtKind, kind, kind, kind);
1149
+ WRITE_LIST_FIELD(options, options, options);
1150
+ WRITE_STRING_FIELD(savepoint_name, savepoint_name, savepoint_name);
1151
+ WRITE_STRING_FIELD(gid, gid, gid);
1152
+ WRITE_BOOL_FIELD(chain, chain, chain);
1153
+ }
1154
+
1155
+ static void
1156
+ _outViewStmt(OUT_TYPE(ViewStmt, ViewStmt) out, const ViewStmt *node)
1157
+ {
1158
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, view, view, view);
1159
+ WRITE_LIST_FIELD(aliases, aliases, aliases);
1160
+ WRITE_NODE_PTR_FIELD(query, query, query);
1161
+ WRITE_BOOL_FIELD(replace, replace, replace);
1162
+ WRITE_LIST_FIELD(options, options, options);
1163
+ WRITE_ENUM_FIELD(ViewCheckOption, with_check_option, withCheckOption, withCheckOption);
1164
+ }
1165
+
1166
+ static void
1167
+ _outLoadStmt(OUT_TYPE(LoadStmt, LoadStmt) out, const LoadStmt *node)
1168
+ {
1169
+ WRITE_STRING_FIELD(filename, filename, filename);
1170
+ }
1171
+
1172
+ static void
1173
+ _outCreateDomainStmt(OUT_TYPE(CreateDomainStmt, CreateDomainStmt) out, const CreateDomainStmt *node)
1174
+ {
1175
+ WRITE_LIST_FIELD(domainname, domainname, domainname);
1176
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
1177
+ WRITE_SPECIFIC_NODE_PTR_FIELD(CollateClause, collate_clause, coll_clause, collClause, collClause);
1178
+ WRITE_LIST_FIELD(constraints, constraints, constraints);
1179
+ }
1180
+
1181
+ static void
1182
+ _outCreatedbStmt(OUT_TYPE(CreatedbStmt, CreatedbStmt) out, const CreatedbStmt *node)
1183
+ {
1184
+ WRITE_STRING_FIELD(dbname, dbname, dbname);
1185
+ WRITE_LIST_FIELD(options, options, options);
1186
+ }
1187
+
1188
+ static void
1189
+ _outDropdbStmt(OUT_TYPE(DropdbStmt, DropdbStmt) out, const DropdbStmt *node)
1190
+ {
1191
+ WRITE_STRING_FIELD(dbname, dbname, dbname);
1192
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1193
+ WRITE_LIST_FIELD(options, options, options);
1194
+ }
1195
+
1196
+ static void
1197
+ _outVacuumStmt(OUT_TYPE(VacuumStmt, VacuumStmt) out, const VacuumStmt *node)
1198
+ {
1199
+ WRITE_LIST_FIELD(options, options, options);
1200
+ WRITE_LIST_FIELD(rels, rels, rels);
1201
+ WRITE_BOOL_FIELD(is_vacuumcmd, is_vacuumcmd, is_vacuumcmd);
1202
+ }
1203
+
1204
+ static void
1205
+ _outExplainStmt(OUT_TYPE(ExplainStmt, ExplainStmt) out, const ExplainStmt *node)
1206
+ {
1207
+ WRITE_NODE_PTR_FIELD(query, query, query);
1208
+ WRITE_LIST_FIELD(options, options, options);
1209
+ }
1210
+
1211
+ static void
1212
+ _outCreateTableAsStmt(OUT_TYPE(CreateTableAsStmt, CreateTableAsStmt) out, const CreateTableAsStmt *node)
1213
+ {
1214
+ WRITE_NODE_PTR_FIELD(query, query, query);
1215
+ WRITE_SPECIFIC_NODE_PTR_FIELD(IntoClause, into_clause, into, into, into);
1216
+ WRITE_ENUM_FIELD(ObjectType, relkind, relkind, relkind);
1217
+ WRITE_BOOL_FIELD(is_select_into, is_select_into, is_select_into);
1218
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1219
+ }
1220
+
1221
+ static void
1222
+ _outCreateSeqStmt(OUT_TYPE(CreateSeqStmt, CreateSeqStmt) out, const CreateSeqStmt *node)
1223
+ {
1224
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, sequence, sequence, sequence);
1225
+ WRITE_LIST_FIELD(options, options, options);
1226
+ WRITE_UINT_FIELD(owner_id, ownerId, ownerId);
1227
+ WRITE_BOOL_FIELD(for_identity, for_identity, for_identity);
1228
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1229
+ }
1230
+
1231
+ static void
1232
+ _outAlterSeqStmt(OUT_TYPE(AlterSeqStmt, AlterSeqStmt) out, const AlterSeqStmt *node)
1233
+ {
1234
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, sequence, sequence, sequence);
1235
+ WRITE_LIST_FIELD(options, options, options);
1236
+ WRITE_BOOL_FIELD(for_identity, for_identity, for_identity);
1237
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1238
+ }
1239
+
1240
+ static void
1241
+ _outVariableSetStmt(OUT_TYPE(VariableSetStmt, VariableSetStmt) out, const VariableSetStmt *node)
1242
+ {
1243
+ WRITE_ENUM_FIELD(VariableSetKind, kind, kind, kind);
1244
+ WRITE_STRING_FIELD(name, name, name);
1245
+ WRITE_LIST_FIELD(args, args, args);
1246
+ WRITE_BOOL_FIELD(is_local, is_local, is_local);
1247
+ }
1248
+
1249
+ static void
1250
+ _outVariableShowStmt(OUT_TYPE(VariableShowStmt, VariableShowStmt) out, const VariableShowStmt *node)
1251
+ {
1252
+ WRITE_STRING_FIELD(name, name, name);
1253
+ }
1254
+
1255
+ static void
1256
+ _outDiscardStmt(OUT_TYPE(DiscardStmt, DiscardStmt) out, const DiscardStmt *node)
1257
+ {
1258
+ WRITE_ENUM_FIELD(DiscardMode, target, target, target);
1259
+ }
1260
+
1261
+ static void
1262
+ _outCreateTrigStmt(OUT_TYPE(CreateTrigStmt, CreateTrigStmt) out, const CreateTrigStmt *node)
1263
+ {
1264
+ WRITE_STRING_FIELD(trigname, trigname, trigname);
1265
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1266
+ WRITE_LIST_FIELD(funcname, funcname, funcname);
1267
+ WRITE_LIST_FIELD(args, args, args);
1268
+ WRITE_BOOL_FIELD(row, row, row);
1269
+ WRITE_INT_FIELD(timing, timing, timing);
1270
+ WRITE_INT_FIELD(events, events, events);
1271
+ WRITE_LIST_FIELD(columns, columns, columns);
1272
+ WRITE_NODE_PTR_FIELD(when_clause, whenClause, whenClause);
1273
+ WRITE_BOOL_FIELD(isconstraint, isconstraint, isconstraint);
1274
+ WRITE_LIST_FIELD(transition_rels, transitionRels, transitionRels);
1275
+ WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
1276
+ WRITE_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
1277
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, constrrel, constrrel, constrrel);
1278
+ }
1279
+
1280
+ static void
1281
+ _outCreatePLangStmt(OUT_TYPE(CreatePLangStmt, CreatePLangStmt) out, const CreatePLangStmt *node)
1282
+ {
1283
+ WRITE_BOOL_FIELD(replace, replace, replace);
1284
+ WRITE_STRING_FIELD(plname, plname, plname);
1285
+ WRITE_LIST_FIELD(plhandler, plhandler, plhandler);
1286
+ WRITE_LIST_FIELD(plinline, plinline, plinline);
1287
+ WRITE_LIST_FIELD(plvalidator, plvalidator, plvalidator);
1288
+ WRITE_BOOL_FIELD(pltrusted, pltrusted, pltrusted);
1289
+ }
1290
+
1291
+ static void
1292
+ _outCreateRoleStmt(OUT_TYPE(CreateRoleStmt, CreateRoleStmt) out, const CreateRoleStmt *node)
1293
+ {
1294
+ WRITE_ENUM_FIELD(RoleStmtType, stmt_type, stmt_type, stmt_type);
1295
+ WRITE_STRING_FIELD(role, role, role);
1296
+ WRITE_LIST_FIELD(options, options, options);
1297
+ }
1298
+
1299
+ static void
1300
+ _outAlterRoleStmt(OUT_TYPE(AlterRoleStmt, AlterRoleStmt) out, const AlterRoleStmt *node)
1301
+ {
1302
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, role, role, role);
1303
+ WRITE_LIST_FIELD(options, options, options);
1304
+ WRITE_INT_FIELD(action, action, action);
1305
+ }
1306
+
1307
+ static void
1308
+ _outDropRoleStmt(OUT_TYPE(DropRoleStmt, DropRoleStmt) out, const DropRoleStmt *node)
1309
+ {
1310
+ WRITE_LIST_FIELD(roles, roles, roles);
1311
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1312
+ }
1313
+
1314
+ static void
1315
+ _outLockStmt(OUT_TYPE(LockStmt, LockStmt) out, const LockStmt *node)
1316
+ {
1317
+ WRITE_LIST_FIELD(relations, relations, relations);
1318
+ WRITE_INT_FIELD(mode, mode, mode);
1319
+ WRITE_BOOL_FIELD(nowait, nowait, nowait);
1320
+ }
1321
+
1322
+ static void
1323
+ _outConstraintsSetStmt(OUT_TYPE(ConstraintsSetStmt, ConstraintsSetStmt) out, const ConstraintsSetStmt *node)
1324
+ {
1325
+ WRITE_LIST_FIELD(constraints, constraints, constraints);
1326
+ WRITE_BOOL_FIELD(deferred, deferred, deferred);
1327
+ }
1328
+
1329
+ static void
1330
+ _outReindexStmt(OUT_TYPE(ReindexStmt, ReindexStmt) out, const ReindexStmt *node)
1331
+ {
1332
+ WRITE_ENUM_FIELD(ReindexObjectType, kind, kind, kind);
1333
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1334
+ WRITE_STRING_FIELD(name, name, name);
1335
+ WRITE_INT_FIELD(options, options, options);
1336
+ WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
1337
+ }
1338
+
1339
+ static void
1340
+ _outCheckPointStmt(OUT_TYPE(CheckPointStmt, CheckPointStmt) out, const CheckPointStmt *node)
1341
+ {
1342
+ }
1343
+
1344
+ static void
1345
+ _outCreateSchemaStmt(OUT_TYPE(CreateSchemaStmt, CreateSchemaStmt) out, const CreateSchemaStmt *node)
1346
+ {
1347
+ WRITE_STRING_FIELD(schemaname, schemaname, schemaname);
1348
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, authrole, authrole, authrole);
1349
+ WRITE_LIST_FIELD(schema_elts, schemaElts, schemaElts);
1350
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1351
+ }
1352
+
1353
+ static void
1354
+ _outAlterDatabaseStmt(OUT_TYPE(AlterDatabaseStmt, AlterDatabaseStmt) out, const AlterDatabaseStmt *node)
1355
+ {
1356
+ WRITE_STRING_FIELD(dbname, dbname, dbname);
1357
+ WRITE_LIST_FIELD(options, options, options);
1358
+ }
1359
+
1360
+ static void
1361
+ _outAlterDatabaseSetStmt(OUT_TYPE(AlterDatabaseSetStmt, AlterDatabaseSetStmt) out, const AlterDatabaseSetStmt *node)
1362
+ {
1363
+ WRITE_STRING_FIELD(dbname, dbname, dbname);
1364
+ WRITE_SPECIFIC_NODE_PTR_FIELD(VariableSetStmt, variable_set_stmt, setstmt, setstmt, setstmt);
1365
+ }
1366
+
1367
+ static void
1368
+ _outAlterRoleSetStmt(OUT_TYPE(AlterRoleSetStmt, AlterRoleSetStmt) out, const AlterRoleSetStmt *node)
1369
+ {
1370
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, role, role, role);
1371
+ WRITE_STRING_FIELD(database, database, database);
1372
+ WRITE_SPECIFIC_NODE_PTR_FIELD(VariableSetStmt, variable_set_stmt, setstmt, setstmt, setstmt);
1373
+ }
1374
+
1375
+ static void
1376
+ _outCreateConversionStmt(OUT_TYPE(CreateConversionStmt, CreateConversionStmt) out, const CreateConversionStmt *node)
1377
+ {
1378
+ WRITE_LIST_FIELD(conversion_name, conversion_name, conversion_name);
1379
+ WRITE_STRING_FIELD(for_encoding_name, for_encoding_name, for_encoding_name);
1380
+ WRITE_STRING_FIELD(to_encoding_name, to_encoding_name, to_encoding_name);
1381
+ WRITE_LIST_FIELD(func_name, func_name, func_name);
1382
+ WRITE_BOOL_FIELD(def, def, def);
1383
+ }
1384
+
1385
+ static void
1386
+ _outCreateCastStmt(OUT_TYPE(CreateCastStmt, CreateCastStmt) out, const CreateCastStmt *node)
1387
+ {
1388
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, sourcetype, sourcetype, sourcetype);
1389
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, targettype, targettype, targettype);
1390
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, func, func, func);
1391
+ WRITE_ENUM_FIELD(CoercionContext, context, context, context);
1392
+ WRITE_BOOL_FIELD(inout, inout, inout);
1393
+ }
1394
+
1395
+ static void
1396
+ _outCreateOpClassStmt(OUT_TYPE(CreateOpClassStmt, CreateOpClassStmt) out, const CreateOpClassStmt *node)
1397
+ {
1398
+ WRITE_LIST_FIELD(opclassname, opclassname, opclassname);
1399
+ WRITE_LIST_FIELD(opfamilyname, opfamilyname, opfamilyname);
1400
+ WRITE_STRING_FIELD(amname, amname, amname);
1401
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, datatype, datatype, datatype);
1402
+ WRITE_LIST_FIELD(items, items, items);
1403
+ WRITE_BOOL_FIELD(is_default, isDefault, isDefault);
1404
+ }
1405
+
1406
+ static void
1407
+ _outCreateOpFamilyStmt(OUT_TYPE(CreateOpFamilyStmt, CreateOpFamilyStmt) out, const CreateOpFamilyStmt *node)
1408
+ {
1409
+ WRITE_LIST_FIELD(opfamilyname, opfamilyname, opfamilyname);
1410
+ WRITE_STRING_FIELD(amname, amname, amname);
1411
+ }
1412
+
1413
+ static void
1414
+ _outAlterOpFamilyStmt(OUT_TYPE(AlterOpFamilyStmt, AlterOpFamilyStmt) out, const AlterOpFamilyStmt *node)
1415
+ {
1416
+ WRITE_LIST_FIELD(opfamilyname, opfamilyname, opfamilyname);
1417
+ WRITE_STRING_FIELD(amname, amname, amname);
1418
+ WRITE_BOOL_FIELD(is_drop, isDrop, isDrop);
1419
+ WRITE_LIST_FIELD(items, items, items);
1420
+ }
1421
+
1422
+ static void
1423
+ _outPrepareStmt(OUT_TYPE(PrepareStmt, PrepareStmt) out, const PrepareStmt *node)
1424
+ {
1425
+ WRITE_STRING_FIELD(name, name, name);
1426
+ WRITE_LIST_FIELD(argtypes, argtypes, argtypes);
1427
+ WRITE_NODE_PTR_FIELD(query, query, query);
1428
+ }
1429
+
1430
+ static void
1431
+ _outExecuteStmt(OUT_TYPE(ExecuteStmt, ExecuteStmt) out, const ExecuteStmt *node)
1432
+ {
1433
+ WRITE_STRING_FIELD(name, name, name);
1434
+ WRITE_LIST_FIELD(params, params, params);
1435
+ }
1436
+
1437
+ static void
1438
+ _outDeallocateStmt(OUT_TYPE(DeallocateStmt, DeallocateStmt) out, const DeallocateStmt *node)
1439
+ {
1440
+ WRITE_STRING_FIELD(name, name, name);
1441
+ }
1442
+
1443
+ static void
1444
+ _outDeclareCursorStmt(OUT_TYPE(DeclareCursorStmt, DeclareCursorStmt) out, const DeclareCursorStmt *node)
1445
+ {
1446
+ WRITE_STRING_FIELD(portalname, portalname, portalname);
1447
+ WRITE_INT_FIELD(options, options, options);
1448
+ WRITE_NODE_PTR_FIELD(query, query, query);
1449
+ }
1450
+
1451
+ static void
1452
+ _outCreateTableSpaceStmt(OUT_TYPE(CreateTableSpaceStmt, CreateTableSpaceStmt) out, const CreateTableSpaceStmt *node)
1453
+ {
1454
+ WRITE_STRING_FIELD(tablespacename, tablespacename, tablespacename);
1455
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, owner, owner, owner);
1456
+ WRITE_STRING_FIELD(location, location, location);
1457
+ WRITE_LIST_FIELD(options, options, options);
1458
+ }
1459
+
1460
+ static void
1461
+ _outDropTableSpaceStmt(OUT_TYPE(DropTableSpaceStmt, DropTableSpaceStmt) out, const DropTableSpaceStmt *node)
1462
+ {
1463
+ WRITE_STRING_FIELD(tablespacename, tablespacename, tablespacename);
1464
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1465
+ }
1466
+
1467
+ static void
1468
+ _outAlterObjectDependsStmt(OUT_TYPE(AlterObjectDependsStmt, AlterObjectDependsStmt) out, const AlterObjectDependsStmt *node)
1469
+ {
1470
+ WRITE_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1471
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1472
+ WRITE_NODE_PTR_FIELD(object, object, object);
1473
+ WRITE_NODE_PTR_FIELD(extname, extname, extname);
1474
+ WRITE_BOOL_FIELD(remove, remove, remove);
1475
+ }
1476
+
1477
+ static void
1478
+ _outAlterObjectSchemaStmt(OUT_TYPE(AlterObjectSchemaStmt, AlterObjectSchemaStmt) out, const AlterObjectSchemaStmt *node)
1479
+ {
1480
+ WRITE_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1481
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1482
+ WRITE_NODE_PTR_FIELD(object, object, object);
1483
+ WRITE_STRING_FIELD(newschema, newschema, newschema);
1484
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1485
+ }
1486
+
1487
+ static void
1488
+ _outAlterOwnerStmt(OUT_TYPE(AlterOwnerStmt, AlterOwnerStmt) out, const AlterOwnerStmt *node)
1489
+ {
1490
+ WRITE_ENUM_FIELD(ObjectType, object_type, objectType, objectType);
1491
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1492
+ WRITE_NODE_PTR_FIELD(object, object, object);
1493
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, newowner, newowner, newowner);
1494
+ }
1495
+
1496
+ static void
1497
+ _outAlterOperatorStmt(OUT_TYPE(AlterOperatorStmt, AlterOperatorStmt) out, const AlterOperatorStmt *node)
1498
+ {
1499
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, opername, opername, opername);
1500
+ WRITE_LIST_FIELD(options, options, options);
1501
+ }
1502
+
1503
+ static void
1504
+ _outAlterTypeStmt(OUT_TYPE(AlterTypeStmt, AlterTypeStmt) out, const AlterTypeStmt *node)
1505
+ {
1506
+ WRITE_LIST_FIELD(type_name, typeName, typeName);
1507
+ WRITE_LIST_FIELD(options, options, options);
1508
+ }
1509
+
1510
+ static void
1511
+ _outDropOwnedStmt(OUT_TYPE(DropOwnedStmt, DropOwnedStmt) out, const DropOwnedStmt *node)
1512
+ {
1513
+ WRITE_LIST_FIELD(roles, roles, roles);
1514
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1515
+ }
1516
+
1517
+ static void
1518
+ _outReassignOwnedStmt(OUT_TYPE(ReassignOwnedStmt, ReassignOwnedStmt) out, const ReassignOwnedStmt *node)
1519
+ {
1520
+ WRITE_LIST_FIELD(roles, roles, roles);
1521
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, newrole, newrole, newrole);
1522
+ }
1523
+
1524
+ static void
1525
+ _outCompositeTypeStmt(OUT_TYPE(CompositeTypeStmt, CompositeTypeStmt) out, const CompositeTypeStmt *node)
1526
+ {
1527
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, typevar, typevar, typevar);
1528
+ WRITE_LIST_FIELD(coldeflist, coldeflist, coldeflist);
1529
+ }
1530
+
1531
+ static void
1532
+ _outCreateEnumStmt(OUT_TYPE(CreateEnumStmt, CreateEnumStmt) out, const CreateEnumStmt *node)
1533
+ {
1534
+ WRITE_LIST_FIELD(type_name, typeName, typeName);
1535
+ WRITE_LIST_FIELD(vals, vals, vals);
1536
+ }
1537
+
1538
+ static void
1539
+ _outCreateRangeStmt(OUT_TYPE(CreateRangeStmt, CreateRangeStmt) out, const CreateRangeStmt *node)
1540
+ {
1541
+ WRITE_LIST_FIELD(type_name, typeName, typeName);
1542
+ WRITE_LIST_FIELD(params, params, params);
1543
+ }
1544
+
1545
+ static void
1546
+ _outAlterEnumStmt(OUT_TYPE(AlterEnumStmt, AlterEnumStmt) out, const AlterEnumStmt *node)
1547
+ {
1548
+ WRITE_LIST_FIELD(type_name, typeName, typeName);
1549
+ WRITE_STRING_FIELD(old_val, oldVal, oldVal);
1550
+ WRITE_STRING_FIELD(new_val, newVal, newVal);
1551
+ WRITE_STRING_FIELD(new_val_neighbor, newValNeighbor, newValNeighbor);
1552
+ WRITE_BOOL_FIELD(new_val_is_after, newValIsAfter, newValIsAfter);
1553
+ WRITE_BOOL_FIELD(skip_if_new_val_exists, skipIfNewValExists, skipIfNewValExists);
1554
+ }
1555
+
1556
+ static void
1557
+ _outAlterTSDictionaryStmt(OUT_TYPE(AlterTSDictionaryStmt, AlterTSDictionaryStmt) out, const AlterTSDictionaryStmt *node)
1558
+ {
1559
+ WRITE_LIST_FIELD(dictname, dictname, dictname);
1560
+ WRITE_LIST_FIELD(options, options, options);
1561
+ }
1562
+
1563
+ static void
1564
+ _outAlterTSConfigurationStmt(OUT_TYPE(AlterTSConfigurationStmt, AlterTSConfigurationStmt) out, const AlterTSConfigurationStmt *node)
1565
+ {
1566
+ WRITE_ENUM_FIELD(AlterTSConfigType, kind, kind, kind);
1567
+ WRITE_LIST_FIELD(cfgname, cfgname, cfgname);
1568
+ WRITE_LIST_FIELD(tokentype, tokentype, tokentype);
1569
+ WRITE_LIST_FIELD(dicts, dicts, dicts);
1570
+ WRITE_BOOL_FIELD(override, override, override);
1571
+ WRITE_BOOL_FIELD(replace, replace, replace);
1572
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1573
+ }
1574
+
1575
+ static void
1576
+ _outCreateFdwStmt(OUT_TYPE(CreateFdwStmt, CreateFdwStmt) out, const CreateFdwStmt *node)
1577
+ {
1578
+ WRITE_STRING_FIELD(fdwname, fdwname, fdwname);
1579
+ WRITE_LIST_FIELD(func_options, func_options, func_options);
1580
+ WRITE_LIST_FIELD(options, options, options);
1581
+ }
1582
+
1583
+ static void
1584
+ _outAlterFdwStmt(OUT_TYPE(AlterFdwStmt, AlterFdwStmt) out, const AlterFdwStmt *node)
1585
+ {
1586
+ WRITE_STRING_FIELD(fdwname, fdwname, fdwname);
1587
+ WRITE_LIST_FIELD(func_options, func_options, func_options);
1588
+ WRITE_LIST_FIELD(options, options, options);
1589
+ }
1590
+
1591
+ static void
1592
+ _outCreateForeignServerStmt(OUT_TYPE(CreateForeignServerStmt, CreateForeignServerStmt) out, const CreateForeignServerStmt *node)
1593
+ {
1594
+ WRITE_STRING_FIELD(servername, servername, servername);
1595
+ WRITE_STRING_FIELD(servertype, servertype, servertype);
1596
+ WRITE_STRING_FIELD(version, version, version);
1597
+ WRITE_STRING_FIELD(fdwname, fdwname, fdwname);
1598
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1599
+ WRITE_LIST_FIELD(options, options, options);
1600
+ }
1601
+
1602
+ static void
1603
+ _outAlterForeignServerStmt(OUT_TYPE(AlterForeignServerStmt, AlterForeignServerStmt) out, const AlterForeignServerStmt *node)
1604
+ {
1605
+ WRITE_STRING_FIELD(servername, servername, servername);
1606
+ WRITE_STRING_FIELD(version, version, version);
1607
+ WRITE_LIST_FIELD(options, options, options);
1608
+ WRITE_BOOL_FIELD(has_version, has_version, has_version);
1609
+ }
1610
+
1611
+ static void
1612
+ _outCreateUserMappingStmt(OUT_TYPE(CreateUserMappingStmt, CreateUserMappingStmt) out, const CreateUserMappingStmt *node)
1613
+ {
1614
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, user, user, user);
1615
+ WRITE_STRING_FIELD(servername, servername, servername);
1616
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1617
+ WRITE_LIST_FIELD(options, options, options);
1618
+ }
1619
+
1620
+ static void
1621
+ _outAlterUserMappingStmt(OUT_TYPE(AlterUserMappingStmt, AlterUserMappingStmt) out, const AlterUserMappingStmt *node)
1622
+ {
1623
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, user, user, user);
1624
+ WRITE_STRING_FIELD(servername, servername, servername);
1625
+ WRITE_LIST_FIELD(options, options, options);
1626
+ }
1627
+
1628
+ static void
1629
+ _outDropUserMappingStmt(OUT_TYPE(DropUserMappingStmt, DropUserMappingStmt) out, const DropUserMappingStmt *node)
1630
+ {
1631
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RoleSpec, role_spec, user, user, user);
1632
+ WRITE_STRING_FIELD(servername, servername, servername);
1633
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1634
+ }
1635
+
1636
+ static void
1637
+ _outAlterTableSpaceOptionsStmt(OUT_TYPE(AlterTableSpaceOptionsStmt, AlterTableSpaceOptionsStmt) out, const AlterTableSpaceOptionsStmt *node)
1638
+ {
1639
+ WRITE_STRING_FIELD(tablespacename, tablespacename, tablespacename);
1640
+ WRITE_LIST_FIELD(options, options, options);
1641
+ WRITE_BOOL_FIELD(is_reset, isReset, isReset);
1642
+ }
1643
+
1644
+ static void
1645
+ _outAlterTableMoveAllStmt(OUT_TYPE(AlterTableMoveAllStmt, AlterTableMoveAllStmt) out, const AlterTableMoveAllStmt *node)
1646
+ {
1647
+ WRITE_STRING_FIELD(orig_tablespacename, orig_tablespacename, orig_tablespacename);
1648
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1649
+ WRITE_LIST_FIELD(roles, roles, roles);
1650
+ WRITE_STRING_FIELD(new_tablespacename, new_tablespacename, new_tablespacename);
1651
+ WRITE_BOOL_FIELD(nowait, nowait, nowait);
1652
+ }
1653
+
1654
+ static void
1655
+ _outSecLabelStmt(OUT_TYPE(SecLabelStmt, SecLabelStmt) out, const SecLabelStmt *node)
1656
+ {
1657
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1658
+ WRITE_NODE_PTR_FIELD(object, object, object);
1659
+ WRITE_STRING_FIELD(provider, provider, provider);
1660
+ WRITE_STRING_FIELD(label, label, label);
1661
+ }
1662
+
1663
+ static void
1664
+ _outCreateForeignTableStmt(OUT_TYPE(CreateForeignTableStmt, CreateForeignTableStmt) out, const CreateForeignTableStmt *node)
1665
+ {
1666
+ WRITE_SPECIFIC_NODE_FIELD(CreateStmt, create_stmt, base_stmt, base, base);
1667
+ WRITE_STRING_FIELD(servername, servername, servername);
1668
+ WRITE_LIST_FIELD(options, options, options);
1669
+ }
1670
+
1671
+ static void
1672
+ _outImportForeignSchemaStmt(OUT_TYPE(ImportForeignSchemaStmt, ImportForeignSchemaStmt) out, const ImportForeignSchemaStmt *node)
1673
+ {
1674
+ WRITE_STRING_FIELD(server_name, server_name, server_name);
1675
+ WRITE_STRING_FIELD(remote_schema, remote_schema, remote_schema);
1676
+ WRITE_STRING_FIELD(local_schema, local_schema, local_schema);
1677
+ WRITE_ENUM_FIELD(ImportForeignSchemaType, list_type, list_type, list_type);
1678
+ WRITE_LIST_FIELD(table_list, table_list, table_list);
1679
+ WRITE_LIST_FIELD(options, options, options);
1680
+ }
1681
+
1682
+ static void
1683
+ _outCreateExtensionStmt(OUT_TYPE(CreateExtensionStmt, CreateExtensionStmt) out, const CreateExtensionStmt *node)
1684
+ {
1685
+ WRITE_STRING_FIELD(extname, extname, extname);
1686
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1687
+ WRITE_LIST_FIELD(options, options, options);
1688
+ }
1689
+
1690
+ static void
1691
+ _outAlterExtensionStmt(OUT_TYPE(AlterExtensionStmt, AlterExtensionStmt) out, const AlterExtensionStmt *node)
1692
+ {
1693
+ WRITE_STRING_FIELD(extname, extname, extname);
1694
+ WRITE_LIST_FIELD(options, options, options);
1695
+ }
1696
+
1697
+ static void
1698
+ _outAlterExtensionContentsStmt(OUT_TYPE(AlterExtensionContentsStmt, AlterExtensionContentsStmt) out, const AlterExtensionContentsStmt *node)
1699
+ {
1700
+ WRITE_STRING_FIELD(extname, extname, extname);
1701
+ WRITE_INT_FIELD(action, action, action);
1702
+ WRITE_ENUM_FIELD(ObjectType, objtype, objtype, objtype);
1703
+ WRITE_NODE_PTR_FIELD(object, object, object);
1704
+ }
1705
+
1706
+ static void
1707
+ _outCreateEventTrigStmt(OUT_TYPE(CreateEventTrigStmt, CreateEventTrigStmt) out, const CreateEventTrigStmt *node)
1708
+ {
1709
+ WRITE_STRING_FIELD(trigname, trigname, trigname);
1710
+ WRITE_STRING_FIELD(eventname, eventname, eventname);
1711
+ WRITE_LIST_FIELD(whenclause, whenclause, whenclause);
1712
+ WRITE_LIST_FIELD(funcname, funcname, funcname);
1713
+ }
1714
+
1715
+ static void
1716
+ _outAlterEventTrigStmt(OUT_TYPE(AlterEventTrigStmt, AlterEventTrigStmt) out, const AlterEventTrigStmt *node)
1717
+ {
1718
+ WRITE_STRING_FIELD(trigname, trigname, trigname);
1719
+ WRITE_CHAR_FIELD(tgenabled, tgenabled, tgenabled);
1720
+ }
1721
+
1722
+ static void
1723
+ _outRefreshMatViewStmt(OUT_TYPE(RefreshMatViewStmt, RefreshMatViewStmt) out, const RefreshMatViewStmt *node)
1724
+ {
1725
+ WRITE_BOOL_FIELD(concurrent, concurrent, concurrent);
1726
+ WRITE_BOOL_FIELD(skip_data, skipData, skipData);
1727
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
1728
+ }
1729
+
1730
+ static void
1731
+ _outReplicaIdentityStmt(OUT_TYPE(ReplicaIdentityStmt, ReplicaIdentityStmt) out, const ReplicaIdentityStmt *node)
1732
+ {
1733
+ WRITE_CHAR_FIELD(identity_type, identity_type, identity_type);
1734
+ WRITE_STRING_FIELD(name, name, name);
1735
+ }
1736
+
1737
+ static void
1738
+ _outAlterSystemStmt(OUT_TYPE(AlterSystemStmt, AlterSystemStmt) out, const AlterSystemStmt *node)
1739
+ {
1740
+ WRITE_SPECIFIC_NODE_PTR_FIELD(VariableSetStmt, variable_set_stmt, setstmt, setstmt, setstmt);
1741
+ }
1742
+
1743
+ static void
1744
+ _outCreatePolicyStmt(OUT_TYPE(CreatePolicyStmt, CreatePolicyStmt) out, const CreatePolicyStmt *node)
1745
+ {
1746
+ WRITE_STRING_FIELD(policy_name, policy_name, policy_name);
1747
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, table, table, table);
1748
+ WRITE_STRING_FIELD(cmd_name, cmd_name, cmd_name);
1749
+ WRITE_BOOL_FIELD(permissive, permissive, permissive);
1750
+ WRITE_LIST_FIELD(roles, roles, roles);
1751
+ WRITE_NODE_PTR_FIELD(qual, qual, qual);
1752
+ WRITE_NODE_PTR_FIELD(with_check, with_check, with_check);
1753
+ }
1754
+
1755
+ static void
1756
+ _outAlterPolicyStmt(OUT_TYPE(AlterPolicyStmt, AlterPolicyStmt) out, const AlterPolicyStmt *node)
1757
+ {
1758
+ WRITE_STRING_FIELD(policy_name, policy_name, policy_name);
1759
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, table, table, table);
1760
+ WRITE_LIST_FIELD(roles, roles, roles);
1761
+ WRITE_NODE_PTR_FIELD(qual, qual, qual);
1762
+ WRITE_NODE_PTR_FIELD(with_check, with_check, with_check);
1763
+ }
1764
+
1765
+ static void
1766
+ _outCreateTransformStmt(OUT_TYPE(CreateTransformStmt, CreateTransformStmt) out, const CreateTransformStmt *node)
1767
+ {
1768
+ WRITE_BOOL_FIELD(replace, replace, replace);
1769
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, type_name, type_name);
1770
+ WRITE_STRING_FIELD(lang, lang, lang);
1771
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, fromsql, fromsql, fromsql);
1772
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, tosql, tosql, tosql);
1773
+ }
1774
+
1775
+ static void
1776
+ _outCreateAmStmt(OUT_TYPE(CreateAmStmt, CreateAmStmt) out, const CreateAmStmt *node)
1777
+ {
1778
+ WRITE_STRING_FIELD(amname, amname, amname);
1779
+ WRITE_LIST_FIELD(handler_name, handler_name, handler_name);
1780
+ WRITE_CHAR_FIELD(amtype, amtype, amtype);
1781
+ }
1782
+
1783
+ static void
1784
+ _outCreatePublicationStmt(OUT_TYPE(CreatePublicationStmt, CreatePublicationStmt) out, const CreatePublicationStmt *node)
1785
+ {
1786
+ WRITE_STRING_FIELD(pubname, pubname, pubname);
1787
+ WRITE_LIST_FIELD(options, options, options);
1788
+ WRITE_LIST_FIELD(tables, tables, tables);
1789
+ WRITE_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
1790
+ }
1791
+
1792
+ static void
1793
+ _outAlterPublicationStmt(OUT_TYPE(AlterPublicationStmt, AlterPublicationStmt) out, const AlterPublicationStmt *node)
1794
+ {
1795
+ WRITE_STRING_FIELD(pubname, pubname, pubname);
1796
+ WRITE_LIST_FIELD(options, options, options);
1797
+ WRITE_LIST_FIELD(tables, tables, tables);
1798
+ WRITE_BOOL_FIELD(for_all_tables, for_all_tables, for_all_tables);
1799
+ WRITE_ENUM_FIELD(DefElemAction, table_action, tableAction, tableAction);
1800
+ }
1801
+
1802
+ static void
1803
+ _outCreateSubscriptionStmt(OUT_TYPE(CreateSubscriptionStmt, CreateSubscriptionStmt) out, const CreateSubscriptionStmt *node)
1804
+ {
1805
+ WRITE_STRING_FIELD(subname, subname, subname);
1806
+ WRITE_STRING_FIELD(conninfo, conninfo, conninfo);
1807
+ WRITE_LIST_FIELD(publication, publication, publication);
1808
+ WRITE_LIST_FIELD(options, options, options);
1809
+ }
1810
+
1811
+ static void
1812
+ _outAlterSubscriptionStmt(OUT_TYPE(AlterSubscriptionStmt, AlterSubscriptionStmt) out, const AlterSubscriptionStmt *node)
1813
+ {
1814
+ WRITE_ENUM_FIELD(AlterSubscriptionType, kind, kind, kind);
1815
+ WRITE_STRING_FIELD(subname, subname, subname);
1816
+ WRITE_STRING_FIELD(conninfo, conninfo, conninfo);
1817
+ WRITE_LIST_FIELD(publication, publication, publication);
1818
+ WRITE_LIST_FIELD(options, options, options);
1819
+ }
1820
+
1821
+ static void
1822
+ _outDropSubscriptionStmt(OUT_TYPE(DropSubscriptionStmt, DropSubscriptionStmt) out, const DropSubscriptionStmt *node)
1823
+ {
1824
+ WRITE_STRING_FIELD(subname, subname, subname);
1825
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1826
+ WRITE_ENUM_FIELD(DropBehavior, behavior, behavior, behavior);
1827
+ }
1828
+
1829
+ static void
1830
+ _outCreateStatsStmt(OUT_TYPE(CreateStatsStmt, CreateStatsStmt) out, const CreateStatsStmt *node)
1831
+ {
1832
+ WRITE_LIST_FIELD(defnames, defnames, defnames);
1833
+ WRITE_LIST_FIELD(stat_types, stat_types, stat_types);
1834
+ WRITE_LIST_FIELD(exprs, exprs, exprs);
1835
+ WRITE_LIST_FIELD(relations, relations, relations);
1836
+ WRITE_STRING_FIELD(stxcomment, stxcomment, stxcomment);
1837
+ WRITE_BOOL_FIELD(if_not_exists, if_not_exists, if_not_exists);
1838
+ }
1839
+
1840
+ static void
1841
+ _outAlterCollationStmt(OUT_TYPE(AlterCollationStmt, AlterCollationStmt) out, const AlterCollationStmt *node)
1842
+ {
1843
+ WRITE_LIST_FIELD(collname, collname, collname);
1844
+ }
1845
+
1846
+ static void
1847
+ _outCallStmt(OUT_TYPE(CallStmt, CallStmt) out, const CallStmt *node)
1848
+ {
1849
+ WRITE_SPECIFIC_NODE_PTR_FIELD(FuncCall, func_call, funccall, funccall, funccall);
1850
+ WRITE_SPECIFIC_NODE_PTR_FIELD(FuncExpr, func_expr, funcexpr, funcexpr, funcexpr);
1851
+ }
1852
+
1853
+ static void
1854
+ _outAlterStatsStmt(OUT_TYPE(AlterStatsStmt, AlterStatsStmt) out, const AlterStatsStmt *node)
1855
+ {
1856
+ WRITE_LIST_FIELD(defnames, defnames, defnames);
1857
+ WRITE_INT_FIELD(stxstattarget, stxstattarget, stxstattarget);
1858
+ WRITE_BOOL_FIELD(missing_ok, missing_ok, missing_ok);
1859
+ }
1860
+
1861
+ static void
1862
+ _outAExpr(OUT_TYPE(A_Expr, AExpr) out, const A_Expr *node)
1863
+ {
1864
+ WRITE_ENUM_FIELD(A_Expr_Kind, kind, kind, kind);
1865
+ WRITE_LIST_FIELD(name, name, name);
1866
+ WRITE_NODE_PTR_FIELD(lexpr, lexpr, lexpr);
1867
+ WRITE_NODE_PTR_FIELD(rexpr, rexpr, rexpr);
1868
+ WRITE_INT_FIELD(location, location, location);
1869
+ }
1870
+
1871
+ static void
1872
+ _outColumnRef(OUT_TYPE(ColumnRef, ColumnRef) out, const ColumnRef *node)
1873
+ {
1874
+ WRITE_LIST_FIELD(fields, fields, fields);
1875
+ WRITE_INT_FIELD(location, location, location);
1876
+ }
1877
+
1878
+ static void
1879
+ _outParamRef(OUT_TYPE(ParamRef, ParamRef) out, const ParamRef *node)
1880
+ {
1881
+ WRITE_INT_FIELD(number, number, number);
1882
+ WRITE_INT_FIELD(location, location, location);
1883
+ }
1884
+
1885
+ static void
1886
+ _outAConst(OUT_TYPE(A_Const, AConst) out, const A_Const *node)
1887
+ {
1888
+ WRITE_NODE_FIELD(val, val, val);
1889
+ WRITE_INT_FIELD(location, location, location);
1890
+ }
1891
+
1892
+ static void
1893
+ _outFuncCall(OUT_TYPE(FuncCall, FuncCall) out, const FuncCall *node)
1894
+ {
1895
+ WRITE_LIST_FIELD(funcname, funcname, funcname);
1896
+ WRITE_LIST_FIELD(args, args, args);
1897
+ WRITE_LIST_FIELD(agg_order, agg_order, agg_order);
1898
+ WRITE_NODE_PTR_FIELD(agg_filter, agg_filter, agg_filter);
1899
+ WRITE_BOOL_FIELD(agg_within_group, agg_within_group, agg_within_group);
1900
+ WRITE_BOOL_FIELD(agg_star, agg_star, agg_star);
1901
+ WRITE_BOOL_FIELD(agg_distinct, agg_distinct, agg_distinct);
1902
+ WRITE_BOOL_FIELD(func_variadic, func_variadic, func_variadic);
1903
+ WRITE_SPECIFIC_NODE_PTR_FIELD(WindowDef, window_def, over, over, over);
1904
+ WRITE_INT_FIELD(location, location, location);
1905
+ }
1906
+
1907
+ static void
1908
+ _outAStar(OUT_TYPE(A_Star, AStar) out, const A_Star *node)
1909
+ {
1910
+ }
1911
+
1912
+ static void
1913
+ _outAIndices(OUT_TYPE(A_Indices, AIndices) out, const A_Indices *node)
1914
+ {
1915
+ WRITE_BOOL_FIELD(is_slice, is_slice, is_slice);
1916
+ WRITE_NODE_PTR_FIELD(lidx, lidx, lidx);
1917
+ WRITE_NODE_PTR_FIELD(uidx, uidx, uidx);
1918
+ }
1919
+
1920
+ static void
1921
+ _outAIndirection(OUT_TYPE(A_Indirection, AIndirection) out, const A_Indirection *node)
1922
+ {
1923
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
1924
+ WRITE_LIST_FIELD(indirection, indirection, indirection);
1925
+ }
1926
+
1927
+ static void
1928
+ _outAArrayExpr(OUT_TYPE(A_ArrayExpr, AArrayExpr) out, const A_ArrayExpr *node)
1929
+ {
1930
+ WRITE_LIST_FIELD(elements, elements, elements);
1931
+ WRITE_INT_FIELD(location, location, location);
1932
+ }
1933
+
1934
+ static void
1935
+ _outResTarget(OUT_TYPE(ResTarget, ResTarget) out, const ResTarget *node)
1936
+ {
1937
+ WRITE_STRING_FIELD(name, name, name);
1938
+ WRITE_LIST_FIELD(indirection, indirection, indirection);
1939
+ WRITE_NODE_PTR_FIELD(val, val, val);
1940
+ WRITE_INT_FIELD(location, location, location);
1941
+ }
1942
+
1943
+ static void
1944
+ _outMultiAssignRef(OUT_TYPE(MultiAssignRef, MultiAssignRef) out, const MultiAssignRef *node)
1945
+ {
1946
+ WRITE_NODE_PTR_FIELD(source, source, source);
1947
+ WRITE_INT_FIELD(colno, colno, colno);
1948
+ WRITE_INT_FIELD(ncolumns, ncolumns, ncolumns);
1949
+ }
1950
+
1951
+ static void
1952
+ _outTypeCast(OUT_TYPE(TypeCast, TypeCast) out, const TypeCast *node)
1953
+ {
1954
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
1955
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
1956
+ WRITE_INT_FIELD(location, location, location);
1957
+ }
1958
+
1959
+ static void
1960
+ _outCollateClause(OUT_TYPE(CollateClause, CollateClause) out, const CollateClause *node)
1961
+ {
1962
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
1963
+ WRITE_LIST_FIELD(collname, collname, collname);
1964
+ WRITE_INT_FIELD(location, location, location);
1965
+ }
1966
+
1967
+ static void
1968
+ _outSortBy(OUT_TYPE(SortBy, SortBy) out, const SortBy *node)
1969
+ {
1970
+ WRITE_NODE_PTR_FIELD(node, node, node);
1971
+ WRITE_ENUM_FIELD(SortByDir, sortby_dir, sortby_dir, sortby_dir);
1972
+ WRITE_ENUM_FIELD(SortByNulls, sortby_nulls, sortby_nulls, sortby_nulls);
1973
+ WRITE_LIST_FIELD(use_op, useOp, useOp);
1974
+ WRITE_INT_FIELD(location, location, location);
1975
+ }
1976
+
1977
+ static void
1978
+ _outWindowDef(OUT_TYPE(WindowDef, WindowDef) out, const WindowDef *node)
1979
+ {
1980
+ WRITE_STRING_FIELD(name, name, name);
1981
+ WRITE_STRING_FIELD(refname, refname, refname);
1982
+ WRITE_LIST_FIELD(partition_clause, partitionClause, partitionClause);
1983
+ WRITE_LIST_FIELD(order_clause, orderClause, orderClause);
1984
+ WRITE_INT_FIELD(frame_options, frameOptions, frameOptions);
1985
+ WRITE_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
1986
+ WRITE_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
1987
+ WRITE_INT_FIELD(location, location, location);
1988
+ }
1989
+
1990
+ static void
1991
+ _outRangeSubselect(OUT_TYPE(RangeSubselect, RangeSubselect) out, const RangeSubselect *node)
1992
+ {
1993
+ WRITE_BOOL_FIELD(lateral, lateral, lateral);
1994
+ WRITE_NODE_PTR_FIELD(subquery, subquery, subquery);
1995
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
1996
+ }
1997
+
1998
+ static void
1999
+ _outRangeFunction(OUT_TYPE(RangeFunction, RangeFunction) out, const RangeFunction *node)
2000
+ {
2001
+ WRITE_BOOL_FIELD(lateral, lateral, lateral);
2002
+ WRITE_BOOL_FIELD(ordinality, ordinality, ordinality);
2003
+ WRITE_BOOL_FIELD(is_rowsfrom, is_rowsfrom, is_rowsfrom);
2004
+ WRITE_LIST_FIELD(functions, functions, functions);
2005
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
2006
+ WRITE_LIST_FIELD(coldeflist, coldeflist, coldeflist);
2007
+ }
2008
+
2009
+ static void
2010
+ _outRangeTableSample(OUT_TYPE(RangeTableSample, RangeTableSample) out, const RangeTableSample *node)
2011
+ {
2012
+ WRITE_NODE_PTR_FIELD(relation, relation, relation);
2013
+ WRITE_LIST_FIELD(method, method, method);
2014
+ WRITE_LIST_FIELD(args, args, args);
2015
+ WRITE_NODE_PTR_FIELD(repeatable, repeatable, repeatable);
2016
+ WRITE_INT_FIELD(location, location, location);
2017
+ }
2018
+
2019
+ static void
2020
+ _outRangeTableFunc(OUT_TYPE(RangeTableFunc, RangeTableFunc) out, const RangeTableFunc *node)
2021
+ {
2022
+ WRITE_BOOL_FIELD(lateral, lateral, lateral);
2023
+ WRITE_NODE_PTR_FIELD(docexpr, docexpr, docexpr);
2024
+ WRITE_NODE_PTR_FIELD(rowexpr, rowexpr, rowexpr);
2025
+ WRITE_LIST_FIELD(namespaces, namespaces, namespaces);
2026
+ WRITE_LIST_FIELD(columns, columns, columns);
2027
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
2028
+ WRITE_INT_FIELD(location, location, location);
2029
+ }
2030
+
2031
+ static void
2032
+ _outRangeTableFuncCol(OUT_TYPE(RangeTableFuncCol, RangeTableFuncCol) out, const RangeTableFuncCol *node)
2033
+ {
2034
+ WRITE_STRING_FIELD(colname, colname, colname);
2035
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2036
+ WRITE_BOOL_FIELD(for_ordinality, for_ordinality, for_ordinality);
2037
+ WRITE_BOOL_FIELD(is_not_null, is_not_null, is_not_null);
2038
+ WRITE_NODE_PTR_FIELD(colexpr, colexpr, colexpr);
2039
+ WRITE_NODE_PTR_FIELD(coldefexpr, coldefexpr, coldefexpr);
2040
+ WRITE_INT_FIELD(location, location, location);
2041
+ }
2042
+
2043
+ static void
2044
+ _outTypeName(OUT_TYPE(TypeName, TypeName) out, const TypeName *node)
2045
+ {
2046
+ WRITE_LIST_FIELD(names, names, names);
2047
+ WRITE_UINT_FIELD(type_oid, typeOid, typeOid);
2048
+ WRITE_BOOL_FIELD(setof, setof, setof);
2049
+ WRITE_BOOL_FIELD(pct_type, pct_type, pct_type);
2050
+ WRITE_LIST_FIELD(typmods, typmods, typmods);
2051
+ WRITE_INT_FIELD(typemod, typemod, typemod);
2052
+ WRITE_LIST_FIELD(array_bounds, arrayBounds, arrayBounds);
2053
+ WRITE_INT_FIELD(location, location, location);
2054
+ }
2055
+
2056
+ static void
2057
+ _outColumnDef(OUT_TYPE(ColumnDef, ColumnDef) out, const ColumnDef *node)
2058
+ {
2059
+ WRITE_STRING_FIELD(colname, colname, colname);
2060
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2061
+ WRITE_INT_FIELD(inhcount, inhcount, inhcount);
2062
+ WRITE_BOOL_FIELD(is_local, is_local, is_local);
2063
+ WRITE_BOOL_FIELD(is_not_null, is_not_null, is_not_null);
2064
+ WRITE_BOOL_FIELD(is_from_type, is_from_type, is_from_type);
2065
+ WRITE_CHAR_FIELD(storage, storage, storage);
2066
+ WRITE_NODE_PTR_FIELD(raw_default, raw_default, raw_default);
2067
+ WRITE_NODE_PTR_FIELD(cooked_default, cooked_default, cooked_default);
2068
+ WRITE_CHAR_FIELD(identity, identity, identity);
2069
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, identity_sequence, identitySequence, identitySequence);
2070
+ WRITE_CHAR_FIELD(generated, generated, generated);
2071
+ WRITE_SPECIFIC_NODE_PTR_FIELD(CollateClause, collate_clause, coll_clause, collClause, collClause);
2072
+ WRITE_UINT_FIELD(coll_oid, collOid, collOid);
2073
+ WRITE_LIST_FIELD(constraints, constraints, constraints);
2074
+ WRITE_LIST_FIELD(fdwoptions, fdwoptions, fdwoptions);
2075
+ WRITE_INT_FIELD(location, location, location);
2076
+ }
2077
+
2078
+ static void
2079
+ _outIndexElem(OUT_TYPE(IndexElem, IndexElem) out, const IndexElem *node)
2080
+ {
2081
+ WRITE_STRING_FIELD(name, name, name);
2082
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
2083
+ WRITE_STRING_FIELD(indexcolname, indexcolname, indexcolname);
2084
+ WRITE_LIST_FIELD(collation, collation, collation);
2085
+ WRITE_LIST_FIELD(opclass, opclass, opclass);
2086
+ WRITE_LIST_FIELD(opclassopts, opclassopts, opclassopts);
2087
+ WRITE_ENUM_FIELD(SortByDir, ordering, ordering, ordering);
2088
+ WRITE_ENUM_FIELD(SortByNulls, nulls_ordering, nulls_ordering, nulls_ordering);
2089
+ }
2090
+
2091
+ static void
2092
+ _outConstraint(OUT_TYPE(Constraint, Constraint) out, const Constraint *node)
2093
+ {
2094
+ WRITE_ENUM_FIELD(ConstrType, contype, contype, contype);
2095
+ WRITE_STRING_FIELD(conname, conname, conname);
2096
+ WRITE_BOOL_FIELD(deferrable, deferrable, deferrable);
2097
+ WRITE_BOOL_FIELD(initdeferred, initdeferred, initdeferred);
2098
+ WRITE_INT_FIELD(location, location, location);
2099
+ WRITE_BOOL_FIELD(is_no_inherit, is_no_inherit, is_no_inherit);
2100
+ WRITE_NODE_PTR_FIELD(raw_expr, raw_expr, raw_expr);
2101
+ WRITE_STRING_FIELD(cooked_expr, cooked_expr, cooked_expr);
2102
+ WRITE_CHAR_FIELD(generated_when, generated_when, generated_when);
2103
+ WRITE_LIST_FIELD(keys, keys, keys);
2104
+ WRITE_LIST_FIELD(including, including, including);
2105
+ WRITE_LIST_FIELD(exclusions, exclusions, exclusions);
2106
+ WRITE_LIST_FIELD(options, options, options);
2107
+ WRITE_STRING_FIELD(indexname, indexname, indexname);
2108
+ WRITE_STRING_FIELD(indexspace, indexspace, indexspace);
2109
+ WRITE_BOOL_FIELD(reset_default_tblspc, reset_default_tblspc, reset_default_tblspc);
2110
+ WRITE_STRING_FIELD(access_method, access_method, access_method);
2111
+ WRITE_NODE_PTR_FIELD(where_clause, where_clause, where_clause);
2112
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, pktable, pktable, pktable);
2113
+ WRITE_LIST_FIELD(fk_attrs, fk_attrs, fk_attrs);
2114
+ WRITE_LIST_FIELD(pk_attrs, pk_attrs, pk_attrs);
2115
+ WRITE_CHAR_FIELD(fk_matchtype, fk_matchtype, fk_matchtype);
2116
+ WRITE_CHAR_FIELD(fk_upd_action, fk_upd_action, fk_upd_action);
2117
+ WRITE_CHAR_FIELD(fk_del_action, fk_del_action, fk_del_action);
2118
+ WRITE_LIST_FIELD(old_conpfeqop, old_conpfeqop, old_conpfeqop);
2119
+ WRITE_UINT_FIELD(old_pktable_oid, old_pktable_oid, old_pktable_oid);
2120
+ WRITE_BOOL_FIELD(skip_validation, skip_validation, skip_validation);
2121
+ WRITE_BOOL_FIELD(initially_valid, initially_valid, initially_valid);
2122
+ }
2123
+
2124
+ static void
2125
+ _outDefElem(OUT_TYPE(DefElem, DefElem) out, const DefElem *node)
2126
+ {
2127
+ WRITE_STRING_FIELD(defnamespace, defnamespace, defnamespace);
2128
+ WRITE_STRING_FIELD(defname, defname, defname);
2129
+ WRITE_NODE_PTR_FIELD(arg, arg, arg);
2130
+ WRITE_ENUM_FIELD(DefElemAction, defaction, defaction, defaction);
2131
+ WRITE_INT_FIELD(location, location, location);
2132
+ }
2133
+
2134
+ static void
2135
+ _outRangeTblEntry(OUT_TYPE(RangeTblEntry, RangeTblEntry) out, const RangeTblEntry *node)
2136
+ {
2137
+ WRITE_ENUM_FIELD(RTEKind, rtekind, rtekind, rtekind);
2138
+ WRITE_UINT_FIELD(relid, relid, relid);
2139
+ WRITE_CHAR_FIELD(relkind, relkind, relkind);
2140
+ WRITE_INT_FIELD(rellockmode, rellockmode, rellockmode);
2141
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TableSampleClause, table_sample_clause, tablesample, tablesample, tablesample);
2142
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Query, query, subquery, subquery, subquery);
2143
+ WRITE_BOOL_FIELD(security_barrier, security_barrier, security_barrier);
2144
+ WRITE_ENUM_FIELD(JoinType, jointype, jointype, jointype);
2145
+ WRITE_INT_FIELD(joinmergedcols, joinmergedcols, joinmergedcols);
2146
+ WRITE_LIST_FIELD(joinaliasvars, joinaliasvars, joinaliasvars);
2147
+ WRITE_LIST_FIELD(joinleftcols, joinleftcols, joinleftcols);
2148
+ WRITE_LIST_FIELD(joinrightcols, joinrightcols, joinrightcols);
2149
+ WRITE_LIST_FIELD(functions, functions, functions);
2150
+ WRITE_BOOL_FIELD(funcordinality, funcordinality, funcordinality);
2151
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TableFunc, table_func, tablefunc, tablefunc, tablefunc);
2152
+ WRITE_LIST_FIELD(values_lists, values_lists, values_lists);
2153
+ WRITE_STRING_FIELD(ctename, ctename, ctename);
2154
+ WRITE_UINT_FIELD(ctelevelsup, ctelevelsup, ctelevelsup);
2155
+ WRITE_BOOL_FIELD(self_reference, self_reference, self_reference);
2156
+ WRITE_LIST_FIELD(coltypes, coltypes, coltypes);
2157
+ WRITE_LIST_FIELD(coltypmods, coltypmods, coltypmods);
2158
+ WRITE_LIST_FIELD(colcollations, colcollations, colcollations);
2159
+ WRITE_STRING_FIELD(enrname, enrname, enrname);
2160
+ WRITE_FLOAT_FIELD(enrtuples, enrtuples, enrtuples);
2161
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, alias, alias, alias);
2162
+ WRITE_SPECIFIC_NODE_PTR_FIELD(Alias, alias, eref, eref, eref);
2163
+ WRITE_BOOL_FIELD(lateral, lateral, lateral);
2164
+ WRITE_BOOL_FIELD(inh, inh, inh);
2165
+ WRITE_BOOL_FIELD(in_from_cl, inFromCl, inFromCl);
2166
+ WRITE_UINT_FIELD(required_perms, requiredPerms, requiredPerms);
2167
+ WRITE_UINT_FIELD(check_as_user, checkAsUser, checkAsUser);
2168
+ WRITE_BITMAPSET_FIELD(selected_cols, selectedCols, selectedCols);
2169
+ WRITE_BITMAPSET_FIELD(inserted_cols, insertedCols, insertedCols);
2170
+ WRITE_BITMAPSET_FIELD(updated_cols, updatedCols, updatedCols);
2171
+ WRITE_BITMAPSET_FIELD(extra_updated_cols, extraUpdatedCols, extraUpdatedCols);
2172
+ WRITE_LIST_FIELD(security_quals, securityQuals, securityQuals);
2173
+ }
2174
+
2175
+ static void
2176
+ _outRangeTblFunction(OUT_TYPE(RangeTblFunction, RangeTblFunction) out, const RangeTblFunction *node)
2177
+ {
2178
+ WRITE_NODE_PTR_FIELD(funcexpr, funcexpr, funcexpr);
2179
+ WRITE_INT_FIELD(funccolcount, funccolcount, funccolcount);
2180
+ WRITE_LIST_FIELD(funccolnames, funccolnames, funccolnames);
2181
+ WRITE_LIST_FIELD(funccoltypes, funccoltypes, funccoltypes);
2182
+ WRITE_LIST_FIELD(funccoltypmods, funccoltypmods, funccoltypmods);
2183
+ WRITE_LIST_FIELD(funccolcollations, funccolcollations, funccolcollations);
2184
+ WRITE_BITMAPSET_FIELD(funcparams, funcparams, funcparams);
2185
+ }
2186
+
2187
+ static void
2188
+ _outTableSampleClause(OUT_TYPE(TableSampleClause, TableSampleClause) out, const TableSampleClause *node)
2189
+ {
2190
+ WRITE_UINT_FIELD(tsmhandler, tsmhandler, tsmhandler);
2191
+ WRITE_LIST_FIELD(args, args, args);
2192
+ WRITE_NODE_PTR_FIELD(repeatable, repeatable, repeatable);
2193
+ }
2194
+
2195
+ static void
2196
+ _outWithCheckOption(OUT_TYPE(WithCheckOption, WithCheckOption) out, const WithCheckOption *node)
2197
+ {
2198
+ WRITE_ENUM_FIELD(WCOKind, kind, kind, kind);
2199
+ WRITE_STRING_FIELD(relname, relname, relname);
2200
+ WRITE_STRING_FIELD(polname, polname, polname);
2201
+ WRITE_NODE_PTR_FIELD(qual, qual, qual);
2202
+ WRITE_BOOL_FIELD(cascaded, cascaded, cascaded);
2203
+ }
2204
+
2205
+ static void
2206
+ _outSortGroupClause(OUT_TYPE(SortGroupClause, SortGroupClause) out, const SortGroupClause *node)
2207
+ {
2208
+ WRITE_UINT_FIELD(tle_sort_group_ref, tleSortGroupRef, tleSortGroupRef);
2209
+ WRITE_UINT_FIELD(eqop, eqop, eqop);
2210
+ WRITE_UINT_FIELD(sortop, sortop, sortop);
2211
+ WRITE_BOOL_FIELD(nulls_first, nulls_first, nulls_first);
2212
+ WRITE_BOOL_FIELD(hashable, hashable, hashable);
2213
+ }
2214
+
2215
+ static void
2216
+ _outGroupingSet(OUT_TYPE(GroupingSet, GroupingSet) out, const GroupingSet *node)
2217
+ {
2218
+ WRITE_ENUM_FIELD(GroupingSetKind, kind, kind, kind);
2219
+ WRITE_LIST_FIELD(content, content, content);
2220
+ WRITE_INT_FIELD(location, location, location);
2221
+ }
2222
+
2223
+ static void
2224
+ _outWindowClause(OUT_TYPE(WindowClause, WindowClause) out, const WindowClause *node)
2225
+ {
2226
+ WRITE_STRING_FIELD(name, name, name);
2227
+ WRITE_STRING_FIELD(refname, refname, refname);
2228
+ WRITE_LIST_FIELD(partition_clause, partitionClause, partitionClause);
2229
+ WRITE_LIST_FIELD(order_clause, orderClause, orderClause);
2230
+ WRITE_INT_FIELD(frame_options, frameOptions, frameOptions);
2231
+ WRITE_NODE_PTR_FIELD(start_offset, startOffset, startOffset);
2232
+ WRITE_NODE_PTR_FIELD(end_offset, endOffset, endOffset);
2233
+ WRITE_UINT_FIELD(start_in_range_func, startInRangeFunc, startInRangeFunc);
2234
+ WRITE_UINT_FIELD(end_in_range_func, endInRangeFunc, endInRangeFunc);
2235
+ WRITE_UINT_FIELD(in_range_coll, inRangeColl, inRangeColl);
2236
+ WRITE_BOOL_FIELD(in_range_asc, inRangeAsc, inRangeAsc);
2237
+ WRITE_BOOL_FIELD(in_range_nulls_first, inRangeNullsFirst, inRangeNullsFirst);
2238
+ WRITE_UINT_FIELD(winref, winref, winref);
2239
+ WRITE_BOOL_FIELD(copied_order, copiedOrder, copiedOrder);
2240
+ }
2241
+
2242
+ static void
2243
+ _outObjectWithArgs(OUT_TYPE(ObjectWithArgs, ObjectWithArgs) out, const ObjectWithArgs *node)
2244
+ {
2245
+ WRITE_LIST_FIELD(objname, objname, objname);
2246
+ WRITE_LIST_FIELD(objargs, objargs, objargs);
2247
+ WRITE_BOOL_FIELD(args_unspecified, args_unspecified, args_unspecified);
2248
+ }
2249
+
2250
+ static void
2251
+ _outAccessPriv(OUT_TYPE(AccessPriv, AccessPriv) out, const AccessPriv *node)
2252
+ {
2253
+ WRITE_STRING_FIELD(priv_name, priv_name, priv_name);
2254
+ WRITE_LIST_FIELD(cols, cols, cols);
2255
+ }
2256
+
2257
+ static void
2258
+ _outCreateOpClassItem(OUT_TYPE(CreateOpClassItem, CreateOpClassItem) out, const CreateOpClassItem *node)
2259
+ {
2260
+ WRITE_INT_FIELD(itemtype, itemtype, itemtype);
2261
+ WRITE_SPECIFIC_NODE_PTR_FIELD(ObjectWithArgs, object_with_args, name, name, name);
2262
+ WRITE_INT_FIELD(number, number, number);
2263
+ WRITE_LIST_FIELD(order_family, order_family, order_family);
2264
+ WRITE_LIST_FIELD(class_args, class_args, class_args);
2265
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, storedtype, storedtype, storedtype);
2266
+ }
2267
+
2268
+ static void
2269
+ _outTableLikeClause(OUT_TYPE(TableLikeClause, TableLikeClause) out, const TableLikeClause *node)
2270
+ {
2271
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
2272
+ WRITE_UINT_FIELD(options, options, options);
2273
+ }
2274
+
2275
+ static void
2276
+ _outFunctionParameter(OUT_TYPE(FunctionParameter, FunctionParameter) out, const FunctionParameter *node)
2277
+ {
2278
+ WRITE_STRING_FIELD(name, name, name);
2279
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, arg_type, argType, argType);
2280
+ WRITE_ENUM_FIELD(FunctionParameterMode, mode, mode, mode);
2281
+ WRITE_NODE_PTR_FIELD(defexpr, defexpr, defexpr);
2282
+ }
2283
+
2284
+ static void
2285
+ _outLockingClause(OUT_TYPE(LockingClause, LockingClause) out, const LockingClause *node)
2286
+ {
2287
+ WRITE_LIST_FIELD(locked_rels, lockedRels, lockedRels);
2288
+ WRITE_ENUM_FIELD(LockClauseStrength, strength, strength, strength);
2289
+ WRITE_ENUM_FIELD(LockWaitPolicy, wait_policy, waitPolicy, waitPolicy);
2290
+ }
2291
+
2292
+ static void
2293
+ _outRowMarkClause(OUT_TYPE(RowMarkClause, RowMarkClause) out, const RowMarkClause *node)
2294
+ {
2295
+ WRITE_UINT_FIELD(rti, rti, rti);
2296
+ WRITE_ENUM_FIELD(LockClauseStrength, strength, strength, strength);
2297
+ WRITE_ENUM_FIELD(LockWaitPolicy, wait_policy, waitPolicy, waitPolicy);
2298
+ WRITE_BOOL_FIELD(pushed_down, pushedDown, pushedDown);
2299
+ }
2300
+
2301
+ static void
2302
+ _outXmlSerialize(OUT_TYPE(XmlSerialize, XmlSerialize) out, const XmlSerialize *node)
2303
+ {
2304
+ WRITE_ENUM_FIELD(XmlOptionType, xmloption, xmloption, xmloption);
2305
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
2306
+ WRITE_SPECIFIC_NODE_PTR_FIELD(TypeName, type_name, type_name, typeName, typeName);
2307
+ WRITE_INT_FIELD(location, location, location);
2308
+ }
2309
+
2310
+ static void
2311
+ _outWithClause(OUT_TYPE(WithClause, WithClause) out, const WithClause *node)
2312
+ {
2313
+ WRITE_LIST_FIELD(ctes, ctes, ctes);
2314
+ WRITE_BOOL_FIELD(recursive, recursive, recursive);
2315
+ WRITE_INT_FIELD(location, location, location);
2316
+ }
2317
+
2318
+ static void
2319
+ _outInferClause(OUT_TYPE(InferClause, InferClause) out, const InferClause *node)
2320
+ {
2321
+ WRITE_LIST_FIELD(index_elems, indexElems, indexElems);
2322
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
2323
+ WRITE_STRING_FIELD(conname, conname, conname);
2324
+ WRITE_INT_FIELD(location, location, location);
2325
+ }
2326
+
2327
+ static void
2328
+ _outOnConflictClause(OUT_TYPE(OnConflictClause, OnConflictClause) out, const OnConflictClause *node)
2329
+ {
2330
+ WRITE_ENUM_FIELD(OnConflictAction, action, action, action);
2331
+ WRITE_SPECIFIC_NODE_PTR_FIELD(InferClause, infer_clause, infer, infer, infer);
2332
+ WRITE_LIST_FIELD(target_list, targetList, targetList);
2333
+ WRITE_NODE_PTR_FIELD(where_clause, whereClause, whereClause);
2334
+ WRITE_INT_FIELD(location, location, location);
2335
+ }
2336
+
2337
+ static void
2338
+ _outCommonTableExpr(OUT_TYPE(CommonTableExpr, CommonTableExpr) out, const CommonTableExpr *node)
2339
+ {
2340
+ WRITE_STRING_FIELD(ctename, ctename, ctename);
2341
+ WRITE_LIST_FIELD(aliascolnames, aliascolnames, aliascolnames);
2342
+ WRITE_ENUM_FIELD(CTEMaterialize, ctematerialized, ctematerialized, ctematerialized);
2343
+ WRITE_NODE_PTR_FIELD(ctequery, ctequery, ctequery);
2344
+ WRITE_INT_FIELD(location, location, location);
2345
+ WRITE_BOOL_FIELD(cterecursive, cterecursive, cterecursive);
2346
+ WRITE_INT_FIELD(cterefcount, cterefcount, cterefcount);
2347
+ WRITE_LIST_FIELD(ctecolnames, ctecolnames, ctecolnames);
2348
+ WRITE_LIST_FIELD(ctecoltypes, ctecoltypes, ctecoltypes);
2349
+ WRITE_LIST_FIELD(ctecoltypmods, ctecoltypmods, ctecoltypmods);
2350
+ WRITE_LIST_FIELD(ctecolcollations, ctecolcollations, ctecolcollations);
2351
+ }
2352
+
2353
+ static void
2354
+ _outRoleSpec(OUT_TYPE(RoleSpec, RoleSpec) out, const RoleSpec *node)
2355
+ {
2356
+ WRITE_ENUM_FIELD(RoleSpecType, roletype, roletype, roletype);
2357
+ WRITE_STRING_FIELD(rolename, rolename, rolename);
2358
+ WRITE_INT_FIELD(location, location, location);
2359
+ }
2360
+
2361
+ static void
2362
+ _outTriggerTransition(OUT_TYPE(TriggerTransition, TriggerTransition) out, const TriggerTransition *node)
2363
+ {
2364
+ WRITE_STRING_FIELD(name, name, name);
2365
+ WRITE_BOOL_FIELD(is_new, isNew, isNew);
2366
+ WRITE_BOOL_FIELD(is_table, isTable, isTable);
2367
+ }
2368
+
2369
+ static void
2370
+ _outPartitionElem(OUT_TYPE(PartitionElem, PartitionElem) out, const PartitionElem *node)
2371
+ {
2372
+ WRITE_STRING_FIELD(name, name, name);
2373
+ WRITE_NODE_PTR_FIELD(expr, expr, expr);
2374
+ WRITE_LIST_FIELD(collation, collation, collation);
2375
+ WRITE_LIST_FIELD(opclass, opclass, opclass);
2376
+ WRITE_INT_FIELD(location, location, location);
2377
+ }
2378
+
2379
+ static void
2380
+ _outPartitionSpec(OUT_TYPE(PartitionSpec, PartitionSpec) out, const PartitionSpec *node)
2381
+ {
2382
+ WRITE_STRING_FIELD(strategy, strategy, strategy);
2383
+ WRITE_LIST_FIELD(part_params, partParams, partParams);
2384
+ WRITE_INT_FIELD(location, location, location);
2385
+ }
2386
+
2387
+ static void
2388
+ _outPartitionBoundSpec(OUT_TYPE(PartitionBoundSpec, PartitionBoundSpec) out, const PartitionBoundSpec *node)
2389
+ {
2390
+ WRITE_CHAR_FIELD(strategy, strategy, strategy);
2391
+ WRITE_BOOL_FIELD(is_default, is_default, is_default);
2392
+ WRITE_INT_FIELD(modulus, modulus, modulus);
2393
+ WRITE_INT_FIELD(remainder, remainder, remainder);
2394
+ WRITE_LIST_FIELD(listdatums, listdatums, listdatums);
2395
+ WRITE_LIST_FIELD(lowerdatums, lowerdatums, lowerdatums);
2396
+ WRITE_LIST_FIELD(upperdatums, upperdatums, upperdatums);
2397
+ WRITE_INT_FIELD(location, location, location);
2398
+ }
2399
+
2400
+ static void
2401
+ _outPartitionRangeDatum(OUT_TYPE(PartitionRangeDatum, PartitionRangeDatum) out, const PartitionRangeDatum *node)
2402
+ {
2403
+ WRITE_ENUM_FIELD(PartitionRangeDatumKind, kind, kind, kind);
2404
+ WRITE_NODE_PTR_FIELD(value, value, value);
2405
+ WRITE_INT_FIELD(location, location, location);
2406
+ }
2407
+
2408
+ static void
2409
+ _outPartitionCmd(OUT_TYPE(PartitionCmd, PartitionCmd) out, const PartitionCmd *node)
2410
+ {
2411
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, name, name, name);
2412
+ WRITE_SPECIFIC_NODE_PTR_FIELD(PartitionBoundSpec, partition_bound_spec, bound, bound, bound);
2413
+ }
2414
+
2415
+ static void
2416
+ _outVacuumRelation(OUT_TYPE(VacuumRelation, VacuumRelation) out, const VacuumRelation *node)
2417
+ {
2418
+ WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, range_var, relation, relation, relation);
2419
+ WRITE_UINT_FIELD(oid, oid, oid);
2420
+ WRITE_LIST_FIELD(va_cols, va_cols, va_cols);
2421
+ }
2422
+
2423
+ static void
2424
+ _outInlineCodeBlock(OUT_TYPE(InlineCodeBlock, InlineCodeBlock) out, const InlineCodeBlock *node)
2425
+ {
2426
+ WRITE_STRING_FIELD(source_text, source_text, source_text);
2427
+ WRITE_UINT_FIELD(lang_oid, langOid, langOid);
2428
+ WRITE_BOOL_FIELD(lang_is_trusted, langIsTrusted, langIsTrusted);
2429
+ WRITE_BOOL_FIELD(atomic, atomic, atomic);
2430
+ }
2431
+
2432
+ static void
2433
+ _outCallContext(OUT_TYPE(CallContext, CallContext) out, const CallContext *node)
2434
+ {
2435
+ WRITE_BOOL_FIELD(atomic, atomic, atomic);
2436
+ }
2437
+