pg_query 4.2.3 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/README.md +6 -8
  4. data/Rakefile +3 -3
  5. data/ext/pg_query/extconf.rb +1 -3
  6. data/ext/pg_query/include/access/amapi.h +3 -1
  7. data/ext/pg_query/include/access/attmap.h +5 -3
  8. data/ext/pg_query/include/access/attnum.h +1 -1
  9. data/ext/pg_query/include/access/clog.h +1 -1
  10. data/ext/pg_query/include/access/commit_ts.h +1 -1
  11. data/ext/pg_query/include/access/detoast.h +1 -1
  12. data/ext/pg_query/include/access/genam.h +7 -5
  13. data/ext/pg_query/include/access/gin.h +16 -3
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +6 -2
  16. data/ext/pg_query/include/access/itup.h +61 -58
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +1 -1
  21. data/ext/pg_query/include/access/rmgrlist.h +2 -2
  22. data/ext/pg_query/include/access/sdir.h +12 -3
  23. data/ext/pg_query/include/access/skey.h +1 -1
  24. data/ext/pg_query/include/access/stratnum.h +1 -1
  25. data/ext/pg_query/include/access/sysattr.h +1 -1
  26. data/ext/pg_query/include/access/table.h +1 -1
  27. data/ext/pg_query/include/access/tableam.h +68 -45
  28. data/ext/pg_query/include/access/toast_compression.h +1 -1
  29. data/ext/pg_query/include/access/transam.h +1 -1
  30. data/ext/pg_query/include/access/tsmapi.h +82 -0
  31. data/ext/pg_query/include/access/tupconvert.h +5 -2
  32. data/ext/pg_query/include/access/tupdesc.h +2 -2
  33. data/ext/pg_query/include/access/tupmacs.h +58 -98
  34. data/ext/pg_query/include/access/twophase.h +2 -2
  35. data/ext/pg_query/include/access/xact.h +25 -18
  36. data/ext/pg_query/include/access/xlog.h +15 -16
  37. data/ext/pg_query/include/access/xlog_internal.h +100 -62
  38. data/ext/pg_query/include/access/xlogbackup.h +41 -0
  39. data/ext/pg_query/include/access/xlogdefs.h +6 -25
  40. data/ext/pg_query/include/access/xlogprefetcher.h +1 -1
  41. data/ext/pg_query/include/access/xlogreader.h +7 -6
  42. data/ext/pg_query/include/access/xlogrecord.h +17 -5
  43. data/ext/pg_query/include/access/xlogrecovery.h +4 -3
  44. data/ext/pg_query/include/archive/archive_module.h +59 -0
  45. data/ext/pg_query/include/c.h +144 -156
  46. data/ext/pg_query/include/catalog/catalog.h +4 -3
  47. data/ext/pg_query/include/catalog/catversion.h +6 -2
  48. data/ext/pg_query/include/catalog/dependency.h +5 -4
  49. data/ext/pg_query/include/catalog/genbki.h +7 -6
  50. data/ext/pg_query/include/catalog/index.h +4 -4
  51. data/ext/pg_query/include/catalog/indexing.h +1 -1
  52. data/ext/pg_query/include/catalog/namespace.h +2 -2
  53. data/ext/pg_query/include/catalog/objectaccess.h +10 -8
  54. data/ext/pg_query/include/catalog/objectaddress.h +3 -3
  55. data/ext/pg_query/include/catalog/pg_aggregate.h +1 -1
  56. data/ext/pg_query/include/catalog/pg_aggregate_d.h +1 -1
  57. data/ext/pg_query/include/catalog/pg_am.h +1 -1
  58. data/ext/pg_query/include/catalog/pg_am_d.h +1 -1
  59. data/ext/pg_query/include/catalog/pg_attribute.h +19 -17
  60. data/ext/pg_query/include/catalog/pg_attribute_d.h +19 -19
  61. data/ext/pg_query/include/catalog/pg_authid.h +1 -1
  62. data/ext/pg_query/include/catalog/pg_authid_d.h +3 -1
  63. data/ext/pg_query/include/catalog/pg_class.h +1 -1
  64. data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
  65. data/ext/pg_query/include/catalog/pg_collation.h +3 -1
  66. data/ext/pg_query/include/catalog/pg_collation_d.h +4 -3
  67. data/ext/pg_query/include/catalog/pg_constraint.h +2 -2
  68. data/ext/pg_query/include/catalog/pg_constraint_d.h +1 -1
  69. data/ext/pg_query/include/catalog/pg_control.h +9 -1
  70. data/ext/pg_query/include/catalog/pg_conversion.h +2 -2
  71. data/ext/pg_query/include/catalog/pg_conversion_d.h +1 -1
  72. data/ext/pg_query/include/catalog/pg_database.h +124 -0
  73. data/ext/pg_query/include/catalog/pg_database_d.h +52 -0
  74. data/ext/pg_query/include/catalog/pg_depend.h +1 -1
  75. data/ext/pg_query/include/catalog/pg_depend_d.h +1 -1
  76. data/ext/pg_query/include/catalog/pg_event_trigger.h +1 -1
  77. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +1 -1
  78. data/ext/pg_query/include/catalog/pg_index.h +1 -1
  79. data/ext/pg_query/include/catalog/pg_index_d.h +1 -1
  80. data/ext/pg_query/include/catalog/pg_language.h +1 -1
  81. data/ext/pg_query/include/catalog/pg_language_d.h +1 -1
  82. data/ext/pg_query/include/catalog/pg_namespace.h +1 -1
  83. data/ext/pg_query/include/catalog/pg_namespace_d.h +1 -1
  84. data/ext/pg_query/include/catalog/pg_opclass.h +1 -1
  85. data/ext/pg_query/include/catalog/pg_opclass_d.h +1 -1
  86. data/ext/pg_query/include/catalog/pg_operator.h +1 -1
  87. data/ext/pg_query/include/catalog/pg_operator_d.h +1 -1
  88. data/ext/pg_query/include/catalog/pg_opfamily.h +3 -2
  89. data/ext/pg_query/include/catalog/pg_opfamily_d.h +4 -2
  90. data/ext/pg_query/include/catalog/pg_partitioned_table.h +1 -1
  91. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +1 -1
  92. data/ext/pg_query/include/catalog/pg_proc.h +1 -1
  93. data/ext/pg_query/include/catalog/pg_proc_d.h +1 -1
  94. data/ext/pg_query/include/catalog/pg_publication.h +2 -5
  95. data/ext/pg_query/include/catalog/pg_publication_d.h +1 -1
  96. data/ext/pg_query/include/catalog/pg_replication_origin.h +1 -1
  97. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +1 -1
  98. data/ext/pg_query/include/catalog/pg_statistic.h +1 -1
  99. data/ext/pg_query/include/catalog/pg_statistic_d.h +1 -1
  100. data/ext/pg_query/include/catalog/pg_statistic_ext.h +1 -1
  101. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +1 -1
  102. data/ext/pg_query/include/catalog/pg_transform.h +1 -1
  103. data/ext/pg_query/include/catalog/pg_transform_d.h +1 -1
  104. data/ext/pg_query/include/catalog/pg_trigger.h +1 -1
  105. data/ext/pg_query/include/catalog/pg_trigger_d.h +1 -1
  106. data/ext/pg_query/include/catalog/pg_ts_config.h +1 -1
  107. data/ext/pg_query/include/catalog/pg_ts_config_d.h +1 -1
  108. data/ext/pg_query/include/catalog/pg_ts_dict.h +1 -1
  109. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +1 -1
  110. data/ext/pg_query/include/catalog/pg_ts_parser.h +1 -1
  111. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +1 -1
  112. data/ext/pg_query/include/catalog/pg_ts_template.h +1 -1
  113. data/ext/pg_query/include/catalog/pg_ts_template_d.h +1 -1
  114. data/ext/pg_query/include/catalog/pg_type.h +1 -1
  115. data/ext/pg_query/include/catalog/pg_type_d.h +1 -1
  116. data/ext/pg_query/include/catalog/storage.h +6 -6
  117. data/ext/pg_query/include/commands/async.h +1 -1
  118. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  119. data/ext/pg_query/include/commands/defrem.h +2 -1
  120. data/ext/pg_query/include/commands/event_trigger.h +1 -1
  121. data/ext/pg_query/include/commands/explain.h +3 -1
  122. data/ext/pg_query/include/commands/prepare.h +1 -1
  123. data/ext/pg_query/include/commands/tablespace.h +4 -4
  124. data/ext/pg_query/include/commands/trigger.h +15 -14
  125. data/ext/pg_query/include/commands/user.h +9 -3
  126. data/ext/pg_query/include/commands/vacuum.h +60 -14
  127. data/ext/pg_query/include/common/cryptohash.h +39 -0
  128. data/ext/pg_query/include/common/file_perm.h +1 -1
  129. data/ext/pg_query/include/common/hashfn.h +1 -1
  130. data/ext/pg_query/include/common/int.h +437 -0
  131. data/ext/pg_query/include/common/ip.h +4 -2
  132. data/ext/pg_query/include/common/keywords.h +1 -1
  133. data/ext/pg_query/include/common/kwlookup.h +2 -2
  134. data/ext/pg_query/include/common/pg_prng.h +3 -2
  135. data/ext/pg_query/include/common/relpath.h +20 -13
  136. data/ext/pg_query/include/common/scram-common.h +70 -0
  137. data/ext/pg_query/include/common/sha2.h +32 -0
  138. data/ext/pg_query/include/common/string.h +5 -3
  139. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +10 -10
  140. data/ext/pg_query/include/common/{unicode_combining_table.h → unicode_nonspacing_table.h} +31 -13
  141. data/ext/pg_query/include/copyfuncs.funcs.c +5013 -0
  142. data/ext/pg_query/include/copyfuncs.switch.c +938 -0
  143. data/ext/pg_query/include/datatype/timestamp.h +11 -4
  144. data/ext/pg_query/include/equalfuncs.funcs.c +3097 -0
  145. data/ext/pg_query/include/equalfuncs.switch.c +785 -0
  146. data/ext/pg_query/include/executor/execdesc.h +1 -1
  147. data/ext/pg_query/include/executor/executor.h +34 -17
  148. data/ext/pg_query/include/executor/functions.h +1 -1
  149. data/ext/pg_query/include/executor/instrument.h +1 -1
  150. data/ext/pg_query/include/executor/spi.h +2 -2
  151. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  152. data/ext/pg_query/include/executor/tuptable.h +18 -11
  153. data/ext/pg_query/include/fmgr.h +21 -2
  154. data/ext/pg_query/include/foreign/fdwapi.h +294 -0
  155. data/ext/pg_query/include/funcapi.h +12 -12
  156. data/ext/pg_query/include/gram.h +1127 -0
  157. data/ext/pg_query/include/{parser/gramparse.h → gramparse.h} +4 -4
  158. data/ext/pg_query/include/jit/jit.h +2 -2
  159. data/ext/pg_query/include/kwlist_d.h +534 -510
  160. data/ext/pg_query/include/lib/dshash.h +4 -1
  161. data/ext/pg_query/include/lib/ilist.h +435 -22
  162. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  163. data/ext/pg_query/include/lib/simplehash.h +9 -9
  164. data/ext/pg_query/include/lib/sort_template.h +1 -1
  165. data/ext/pg_query/include/lib/stringinfo.h +3 -3
  166. data/ext/pg_query/include/libpq/auth.h +8 -2
  167. data/ext/pg_query/include/libpq/crypt.h +1 -1
  168. data/ext/pg_query/include/libpq/hba.h +24 -17
  169. data/ext/pg_query/include/libpq/libpq-be.h +36 -25
  170. data/ext/pg_query/include/libpq/libpq.h +1 -1
  171. data/ext/pg_query/include/libpq/pqcomm.h +10 -41
  172. data/ext/pg_query/include/libpq/pqformat.h +2 -2
  173. data/ext/pg_query/include/libpq/pqsignal.h +22 -10
  174. data/ext/pg_query/include/libpq/sasl.h +136 -0
  175. data/ext/pg_query/include/libpq/scram.h +37 -0
  176. data/ext/pg_query/include/mb/pg_wchar.h +35 -18
  177. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  178. data/ext/pg_query/include/miscadmin.h +26 -14
  179. data/ext/pg_query/include/nodes/bitmapset.h +11 -7
  180. data/ext/pg_query/include/nodes/execnodes.h +83 -30
  181. data/ext/pg_query/include/nodes/extensible.h +5 -3
  182. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  183. data/ext/pg_query/include/nodes/makefuncs.h +14 -2
  184. data/ext/pg_query/include/nodes/memnodes.h +7 -4
  185. data/ext/pg_query/include/nodes/miscnodes.h +56 -0
  186. data/ext/pg_query/include/nodes/nodeFuncs.h +89 -29
  187. data/ext/pg_query/include/nodes/nodes.h +95 -510
  188. data/ext/pg_query/include/nodes/nodetags.h +471 -0
  189. data/ext/pg_query/include/nodes/params.h +3 -3
  190. data/ext/pg_query/include/nodes/parsenodes.h +377 -139
  191. data/ext/pg_query/include/nodes/pathnodes.h +1090 -440
  192. data/ext/pg_query/include/nodes/pg_list.h +30 -7
  193. data/ext/pg_query/include/nodes/plannodes.h +367 -124
  194. data/ext/pg_query/include/nodes/primnodes.h +670 -222
  195. data/ext/pg_query/include/nodes/print.h +1 -1
  196. data/ext/pg_query/include/{utils → nodes}/queryjumble.h +5 -7
  197. data/ext/pg_query/include/nodes/replnodes.h +111 -0
  198. data/ext/pg_query/include/nodes/supportnodes.h +346 -0
  199. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  200. data/ext/pg_query/include/nodes/value.h +12 -2
  201. data/ext/pg_query/include/optimizer/cost.h +6 -4
  202. data/ext/pg_query/include/optimizer/geqo.h +1 -1
  203. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  204. data/ext/pg_query/include/optimizer/optimizer.h +8 -8
  205. data/ext/pg_query/include/optimizer/paths.h +16 -7
  206. data/ext/pg_query/include/optimizer/planmain.h +3 -6
  207. data/ext/pg_query/include/parser/analyze.h +4 -3
  208. data/ext/pg_query/include/parser/kwlist.h +12 -1
  209. data/ext/pg_query/include/parser/parse_agg.h +4 -2
  210. data/ext/pg_query/include/parser/parse_coerce.h +3 -1
  211. data/ext/pg_query/include/parser/parse_expr.h +1 -1
  212. data/ext/pg_query/include/parser/parse_func.h +1 -1
  213. data/ext/pg_query/include/parser/parse_node.h +22 -4
  214. data/ext/pg_query/include/parser/parse_oper.h +3 -3
  215. data/ext/pg_query/include/parser/parse_relation.h +8 -3
  216. data/ext/pg_query/include/parser/parse_type.h +4 -3
  217. data/ext/pg_query/include/parser/parser.h +1 -1
  218. data/ext/pg_query/include/parser/parsetree.h +1 -1
  219. data/ext/pg_query/include/parser/scanner.h +2 -2
  220. data/ext/pg_query/include/parser/scansup.h +1 -1
  221. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  222. data/ext/pg_query/include/pg_config.h +21 -216
  223. data/ext/pg_query/include/pg_config_manual.h +8 -46
  224. data/ext/pg_query/include/pg_getopt.h +1 -1
  225. data/ext/pg_query/include/pg_query.h +27 -3
  226. data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
  227. data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
  228. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
  229. data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
  230. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
  231. data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
  232. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
  233. data/ext/pg_query/include/pg_trace.h +1 -1
  234. data/ext/pg_query/include/pgstat.h +172 -93
  235. data/ext/pg_query/include/pgtime.h +3 -3
  236. data/ext/pg_query/include/pl_gram.h +64 -62
  237. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  238. data/ext/pg_query/include/pl_reserved_kwlist_d.h +1 -1
  239. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -1
  240. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +48 -46
  241. data/ext/pg_query/include/plpgsql.h +17 -22
  242. data/ext/pg_query/include/port/atomics/arch-arm.h +3 -3
  243. data/ext/pg_query/include/port/atomics/arch-ppc.h +21 -21
  244. data/ext/pg_query/include/port/atomics/arch-x86.h +2 -2
  245. data/ext/pg_query/include/port/atomics/fallback.h +3 -3
  246. data/ext/pg_query/include/port/atomics/generic-gcc.h +1 -1
  247. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  248. data/ext/pg_query/include/port/atomics.h +2 -7
  249. data/ext/pg_query/include/port/pg_bitutils.h +62 -25
  250. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  251. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  252. data/ext/pg_query/include/port/simd.h +375 -0
  253. data/ext/pg_query/include/port.h +42 -75
  254. data/ext/pg_query/include/portability/instr_time.h +81 -140
  255. data/ext/pg_query/include/postgres.h +205 -434
  256. data/ext/pg_query/include/postgres_ext.h +0 -1
  257. data/ext/pg_query/include/postmaster/autovacuum.h +1 -4
  258. data/ext/pg_query/include/postmaster/auxprocess.h +1 -1
  259. data/ext/pg_query/include/postmaster/bgworker.h +2 -2
  260. data/ext/pg_query/include/postmaster/bgworker_internals.h +1 -1
  261. data/ext/pg_query/include/postmaster/bgwriter.h +2 -2
  262. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  263. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  264. data/ext/pg_query/include/postmaster/pgarch.h +1 -38
  265. data/ext/pg_query/include/postmaster/postmaster.h +5 -2
  266. data/ext/pg_query/include/postmaster/startup.h +3 -1
  267. data/ext/pg_query/include/postmaster/syslogger.h +2 -2
  268. data/ext/pg_query/include/postmaster/walwriter.h +3 -1
  269. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
  270. data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
  271. data/ext/pg_query/include/regex/regex.h +9 -6
  272. data/ext/pg_query/include/replication/logicallauncher.h +6 -1
  273. data/ext/pg_query/include/replication/logicalproto.h +30 -10
  274. data/ext/pg_query/include/replication/logicalworker.h +14 -1
  275. data/ext/pg_query/include/replication/origin.h +4 -4
  276. data/ext/pg_query/include/replication/reorderbuffer.h +113 -45
  277. data/ext/pg_query/include/replication/slot.h +25 -6
  278. data/ext/pg_query/include/replication/syncrep.h +2 -8
  279. data/ext/pg_query/include/replication/walreceiver.h +15 -9
  280. data/ext/pg_query/include/replication/walsender.h +13 -13
  281. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  282. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -4
  283. data/ext/pg_query/include/rewrite/rewriteManip.h +11 -2
  284. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  285. data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +5321 -0
  286. data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +3354 -0
  287. data/ext/pg_query/include/storage/backendid.h +1 -1
  288. data/ext/pg_query/include/storage/block.h +24 -31
  289. data/ext/pg_query/include/storage/buf.h +1 -1
  290. data/ext/pg_query/include/storage/bufmgr.h +183 -87
  291. data/ext/pg_query/include/storage/bufpage.h +146 -93
  292. data/ext/pg_query/include/storage/condition_variable.h +2 -2
  293. data/ext/pg_query/include/storage/dsm.h +3 -6
  294. data/ext/pg_query/include/storage/dsm_impl.h +4 -1
  295. data/ext/pg_query/include/storage/fd.h +24 -20
  296. data/ext/pg_query/include/storage/fileset.h +1 -1
  297. data/ext/pg_query/include/storage/ipc.h +1 -1
  298. data/ext/pg_query/include/storage/item.h +1 -1
  299. data/ext/pg_query/include/storage/itemid.h +1 -1
  300. data/ext/pg_query/include/storage/itemptr.h +94 -57
  301. data/ext/pg_query/include/storage/large_object.h +1 -1
  302. data/ext/pg_query/include/storage/latch.h +9 -1
  303. data/ext/pg_query/include/storage/lmgr.h +6 -1
  304. data/ext/pg_query/include/storage/lock.h +21 -13
  305. data/ext/pg_query/include/storage/lockdefs.h +3 -3
  306. data/ext/pg_query/include/storage/lwlock.h +16 -2
  307. data/ext/pg_query/include/storage/off.h +1 -1
  308. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  309. data/ext/pg_query/include/storage/pg_shmem.h +1 -1
  310. data/ext/pg_query/include/storage/pmsignal.h +1 -1
  311. data/ext/pg_query/include/storage/predicate.h +2 -2
  312. data/ext/pg_query/include/storage/proc.h +22 -17
  313. data/ext/pg_query/include/storage/procarray.h +3 -2
  314. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  315. data/ext/pg_query/include/storage/procsignal.h +3 -1
  316. data/ext/pg_query/include/storage/relfilelocator.h +99 -0
  317. data/ext/pg_query/include/storage/s_lock.h +66 -309
  318. data/ext/pg_query/include/storage/sharedfileset.h +1 -1
  319. data/ext/pg_query/include/storage/shm_mq.h +1 -1
  320. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  321. data/ext/pg_query/include/storage/shmem.h +1 -23
  322. data/ext/pg_query/include/storage/sinval.h +3 -3
  323. data/ext/pg_query/include/storage/sinvaladt.h +4 -2
  324. data/ext/pg_query/include/storage/smgr.h +12 -10
  325. data/ext/pg_query/include/storage/spin.h +1 -1
  326. data/ext/pg_query/include/storage/standby.h +9 -8
  327. data/ext/pg_query/include/storage/standbydefs.h +1 -1
  328. data/ext/pg_query/include/storage/sync.h +3 -3
  329. data/ext/pg_query/include/tcop/cmdtag.h +7 -2
  330. data/ext/pg_query/include/tcop/cmdtaglist.h +1 -1
  331. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  332. data/ext/pg_query/include/tcop/dest.h +1 -3
  333. data/ext/pg_query/include/tcop/fastpath.h +1 -1
  334. data/ext/pg_query/include/tcop/pquery.h +1 -1
  335. data/ext/pg_query/include/tcop/tcopprot.h +1 -4
  336. data/ext/pg_query/include/tcop/utility.h +1 -1
  337. data/ext/pg_query/include/tsearch/ts_cache.h +2 -4
  338. data/ext/pg_query/include/utils/acl.h +26 -81
  339. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  340. data/ext/pg_query/include/utils/array.h +19 -1
  341. data/ext/pg_query/include/utils/backend_progress.h +2 -1
  342. data/ext/pg_query/include/utils/backend_status.h +24 -3
  343. data/ext/pg_query/include/utils/builtins.h +14 -5
  344. data/ext/pg_query/include/utils/bytea.h +1 -1
  345. data/ext/pg_query/include/utils/catcache.h +1 -1
  346. data/ext/pg_query/include/utils/date.h +37 -9
  347. data/ext/pg_query/include/utils/datetime.h +41 -21
  348. data/ext/pg_query/include/utils/datum.h +1 -1
  349. data/ext/pg_query/include/utils/dsa.h +5 -1
  350. data/ext/pg_query/include/utils/elog.h +101 -26
  351. data/ext/pg_query/include/utils/expandeddatum.h +14 -3
  352. data/ext/pg_query/include/utils/expandedrecord.h +14 -4
  353. data/ext/pg_query/include/utils/float.h +7 -6
  354. data/ext/pg_query/include/utils/fmgroids.h +54 -1
  355. data/ext/pg_query/include/utils/fmgrprotos.h +45 -3
  356. data/ext/pg_query/include/utils/fmgrtab.h +1 -1
  357. data/ext/pg_query/include/utils/guc.h +55 -82
  358. data/ext/pg_query/include/utils/guc_hooks.h +163 -0
  359. data/ext/pg_query/include/utils/guc_tables.h +49 -3
  360. data/ext/pg_query/include/utils/hsearch.h +1 -1
  361. data/ext/pg_query/include/utils/inval.h +3 -3
  362. data/ext/pg_query/include/utils/logtape.h +77 -0
  363. data/ext/pg_query/include/utils/lsyscache.h +5 -1
  364. data/ext/pg_query/include/utils/memdebug.h +1 -1
  365. data/ext/pg_query/include/utils/memutils.h +5 -49
  366. data/ext/pg_query/include/utils/memutils_internal.h +136 -0
  367. data/ext/pg_query/include/utils/memutils_memorychunk.h +237 -0
  368. data/ext/pg_query/include/utils/numeric.h +20 -5
  369. data/ext/pg_query/include/utils/palloc.h +8 -1
  370. data/ext/pg_query/include/utils/partcache.h +3 -2
  371. data/ext/pg_query/include/utils/pg_locale.h +22 -14
  372. data/ext/pg_query/include/utils/pgstat_internal.h +37 -7
  373. data/ext/pg_query/include/utils/pidfile.h +1 -1
  374. data/ext/pg_query/include/utils/plancache.h +1 -1
  375. data/ext/pg_query/include/utils/portal.h +1 -1
  376. data/ext/pg_query/include/utils/probes.h +6 -6
  377. data/ext/pg_query/include/utils/ps_status.h +23 -1
  378. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  379. data/ext/pg_query/include/utils/regproc.h +3 -3
  380. data/ext/pg_query/include/utils/rel.h +60 -43
  381. data/ext/pg_query/include/utils/relcache.h +13 -8
  382. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  383. data/ext/pg_query/include/utils/resowner.h +1 -1
  384. data/ext/pg_query/include/utils/ruleutils.h +6 -1
  385. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  386. data/ext/pg_query/include/utils/snapmgr.h +4 -2
  387. data/ext/pg_query/include/utils/snapshot.h +1 -1
  388. data/ext/pg_query/include/utils/sortsupport.h +2 -2
  389. data/ext/pg_query/include/utils/syscache.h +4 -1
  390. data/ext/pg_query/include/utils/timeout.h +1 -1
  391. data/ext/pg_query/include/utils/timestamp.h +41 -11
  392. data/ext/pg_query/include/utils/tuplesort.h +189 -35
  393. data/ext/pg_query/include/utils/tuplestore.h +1 -1
  394. data/ext/pg_query/include/utils/typcache.h +1 -1
  395. data/ext/pg_query/include/utils/varlena.h +13 -1
  396. data/ext/pg_query/include/utils/wait_event.h +9 -4
  397. data/ext/pg_query/include/utils/xml.h +15 -5
  398. data/ext/pg_query/include/varatt.h +358 -0
  399. data/ext/pg_query/pg_query.c +1 -1
  400. data/ext/pg_query/pg_query.pb-c.c +19755 -17757
  401. data/ext/pg_query/pg_query_fingerprint.c +8 -3
  402. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  403. data/ext/pg_query/pg_query_internal.h +1 -1
  404. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  405. data/ext/pg_query/pg_query_normalize.c +1 -1
  406. data/ext/pg_query/pg_query_outfuncs_protobuf.c +2 -2
  407. data/ext/pg_query/pg_query_parse.c +46 -4
  408. data/ext/pg_query/pg_query_parse_plpgsql.c +1 -1
  409. data/ext/pg_query/pg_query_scan.c +1 -1
  410. data/ext/pg_query/pg_query_split.c +2 -2
  411. data/ext/pg_query/postgres_deparse.c +503 -105
  412. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  413. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  414. data/ext/pg_query/src_backend_commands_define.c +1 -1
  415. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  416. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  417. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  418. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  419. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  420. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  421. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  422. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  423. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  424. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  425. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  426. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  427. data/ext/pg_query/src_backend_postmaster_postmaster.c +129 -110
  428. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  429. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  430. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  431. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  432. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  433. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  434. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  435. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  436. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  437. data/ext/pg_query/src_backend_utils_error_elog.c +354 -97
  438. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  439. data/ext/pg_query/src_backend_utils_init_globals.c +5 -2
  440. data/ext/pg_query/src_backend_utils_mb_mbutils.c +13 -4
  441. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +494 -0
  442. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  443. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  444. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  445. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  446. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  447. data/ext/pg_query/src_common_encnames.c +4 -1
  448. data/ext/pg_query/src_common_hashfn.c +1 -1
  449. data/ext/pg_query/src_common_keywords.c +1 -1
  450. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  451. data/ext/pg_query/src_common_kwlookup.c +1 -1
  452. data/ext/pg_query/src_common_psprintf.c +1 -1
  453. data/ext/pg_query/src_common_stringinfo.c +4 -4
  454. data/ext/pg_query/src_common_wchar.c +9 -8
  455. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  456. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  457. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  458. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  459. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  460. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  461. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  462. data/ext/pg_query/src_port_pg_bitutils.c +1 -1
  463. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  464. data/ext/pg_query/src_port_snprintf.c +3 -7
  465. data/ext/pg_query/src_port_strerror.c +1 -1
  466. data/ext/pg_query/src_port_strnlen.c +1 -1
  467. data/lib/pg_query/pg_query_pb.rb +166 -3191
  468. data/lib/pg_query/treewalker.rb +7 -2
  469. data/lib/pg_query/version.rb +1 -1
  470. metadata +43 -24
  471. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  472. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  473. data/ext/pg_query/include/commands/variable.h +0 -38
  474. data/ext/pg_query/include/getaddrinfo.h +0 -162
  475. data/ext/pg_query/include/parser/gram.h +0 -1101
  476. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  477. data/ext/pg_query/include/utils/dynahash.h +0 -20
  478. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  479. data/ext/pg_query/include/utils/rls.h +0 -50
  480. data/ext/pg_query/include/utils/tzparser.h +0 -39
  481. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  482. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  483. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  484. data/ext/pg_query/src_common_pg_prng.c +0 -152
  485. data/ext/pg_query/src_common_string.c +0 -92
  486. data/ext/pg_query/src_port_pgsleep.c +0 -69
@@ -4,7 +4,7 @@
4
4
  * Definitions for tagged nodes.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/nodes/nodes.h
@@ -27,515 +27,98 @@ typedef enum NodeTag
27
27
  {
28
28
  T_Invalid = 0,
29
29
 
30
- /*
31
- * TAGS FOR EXECUTOR NODES (execnodes.h)
32
- */
33
- T_IndexInfo,
34
- T_ExprContext,
35
- T_ProjectionInfo,
36
- T_JunkFilter,
37
- T_OnConflictSetState,
38
- T_MergeActionState,
39
- T_ResultRelInfo,
40
- T_EState,
41
- T_TupleTableSlot,
42
-
43
- /*
44
- * TAGS FOR PLAN NODES (plannodes.h)
45
- */
46
- T_Plan,
47
- T_Result,
48
- T_ProjectSet,
49
- T_ModifyTable,
50
- T_Append,
51
- T_MergeAppend,
52
- T_RecursiveUnion,
53
- T_BitmapAnd,
54
- T_BitmapOr,
55
- T_Scan,
56
- T_SeqScan,
57
- T_SampleScan,
58
- T_IndexScan,
59
- T_IndexOnlyScan,
60
- T_BitmapIndexScan,
61
- T_BitmapHeapScan,
62
- T_TidScan,
63
- T_TidRangeScan,
64
- T_SubqueryScan,
65
- T_FunctionScan,
66
- T_ValuesScan,
67
- T_TableFuncScan,
68
- T_CteScan,
69
- T_NamedTuplestoreScan,
70
- T_WorkTableScan,
71
- T_ForeignScan,
72
- T_CustomScan,
73
- T_Join,
74
- T_NestLoop,
75
- T_MergeJoin,
76
- T_HashJoin,
77
- T_Material,
78
- T_Memoize,
79
- T_Sort,
80
- T_IncrementalSort,
81
- T_Group,
82
- T_Agg,
83
- T_WindowAgg,
84
- T_Unique,
85
- T_Gather,
86
- T_GatherMerge,
87
- T_Hash,
88
- T_SetOp,
89
- T_LockRows,
90
- T_Limit,
91
- /* these aren't subclasses of Plan: */
92
- T_NestLoopParam,
93
- T_PlanRowMark,
94
- T_PartitionPruneInfo,
95
- T_PartitionedRelPruneInfo,
96
- T_PartitionPruneStepOp,
97
- T_PartitionPruneStepCombine,
98
- T_PlanInvalItem,
99
-
100
- /*
101
- * TAGS FOR PLAN STATE NODES (execnodes.h)
102
- *
103
- * These should correspond one-to-one with Plan node types.
104
- */
105
- T_PlanState,
106
- T_ResultState,
107
- T_ProjectSetState,
108
- T_ModifyTableState,
109
- T_AppendState,
110
- T_MergeAppendState,
111
- T_RecursiveUnionState,
112
- T_BitmapAndState,
113
- T_BitmapOrState,
114
- T_ScanState,
115
- T_SeqScanState,
116
- T_SampleScanState,
117
- T_IndexScanState,
118
- T_IndexOnlyScanState,
119
- T_BitmapIndexScanState,
120
- T_BitmapHeapScanState,
121
- T_TidScanState,
122
- T_TidRangeScanState,
123
- T_SubqueryScanState,
124
- T_FunctionScanState,
125
- T_TableFuncScanState,
126
- T_ValuesScanState,
127
- T_CteScanState,
128
- T_NamedTuplestoreScanState,
129
- T_WorkTableScanState,
130
- T_ForeignScanState,
131
- T_CustomScanState,
132
- T_JoinState,
133
- T_NestLoopState,
134
- T_MergeJoinState,
135
- T_HashJoinState,
136
- T_MaterialState,
137
- T_MemoizeState,
138
- T_SortState,
139
- T_IncrementalSortState,
140
- T_GroupState,
141
- T_AggState,
142
- T_WindowAggState,
143
- T_UniqueState,
144
- T_GatherState,
145
- T_GatherMergeState,
146
- T_HashState,
147
- T_SetOpState,
148
- T_LockRowsState,
149
- T_LimitState,
150
-
151
- /*
152
- * TAGS FOR PRIMITIVE NODES (primnodes.h)
153
- */
154
- T_Alias,
155
- T_RangeVar,
156
- T_TableFunc,
157
- T_Var,
158
- T_Const,
159
- T_Param,
160
- T_Aggref,
161
- T_GroupingFunc,
162
- T_WindowFunc,
163
- T_SubscriptingRef,
164
- T_FuncExpr,
165
- T_NamedArgExpr,
166
- T_OpExpr,
167
- T_DistinctExpr,
168
- T_NullIfExpr,
169
- T_ScalarArrayOpExpr,
170
- T_BoolExpr,
171
- T_SubLink,
172
- T_SubPlan,
173
- T_AlternativeSubPlan,
174
- T_FieldSelect,
175
- T_FieldStore,
176
- T_RelabelType,
177
- T_CoerceViaIO,
178
- T_ArrayCoerceExpr,
179
- T_ConvertRowtypeExpr,
180
- T_CollateExpr,
181
- T_CaseExpr,
182
- T_CaseWhen,
183
- T_CaseTestExpr,
184
- T_ArrayExpr,
185
- T_RowExpr,
186
- T_RowCompareExpr,
187
- T_CoalesceExpr,
188
- T_MinMaxExpr,
189
- T_SQLValueFunction,
190
- T_XmlExpr,
191
- T_NullTest,
192
- T_BooleanTest,
193
- T_CoerceToDomain,
194
- T_CoerceToDomainValue,
195
- T_SetToDefault,
196
- T_CurrentOfExpr,
197
- T_NextValueExpr,
198
- T_InferenceElem,
199
- T_TargetEntry,
200
- T_RangeTblRef,
201
- T_JoinExpr,
202
- T_FromExpr,
203
- T_OnConflictExpr,
204
- T_IntoClause,
205
-
206
- /*
207
- * TAGS FOR EXPRESSION STATE NODES (execnodes.h)
208
- *
209
- * ExprState represents the evaluation state for a whole expression tree.
210
- * Most Expr-based plan nodes do not have a corresponding expression state
211
- * node, they're fully handled within execExpr* - but sometimes the state
212
- * needs to be shared with other parts of the executor, as for example
213
- * with SubPlanState, which nodeSubplan.c has to modify.
214
- */
215
- T_ExprState,
216
- T_WindowFuncExprState,
217
- T_SetExprState,
218
- T_SubPlanState,
219
- T_DomainConstraintState,
220
-
221
- /*
222
- * TAGS FOR PLANNER NODES (pathnodes.h)
223
- */
224
- T_PlannerInfo,
225
- T_PlannerGlobal,
226
- T_RelOptInfo,
227
- T_IndexOptInfo,
228
- T_ForeignKeyOptInfo,
229
- T_ParamPathInfo,
230
- T_Path,
231
- T_IndexPath,
232
- T_BitmapHeapPath,
233
- T_BitmapAndPath,
234
- T_BitmapOrPath,
235
- T_TidPath,
236
- T_TidRangePath,
237
- T_SubqueryScanPath,
238
- T_ForeignPath,
239
- T_CustomPath,
240
- T_NestPath,
241
- T_MergePath,
242
- T_HashPath,
243
- T_AppendPath,
244
- T_MergeAppendPath,
245
- T_GroupResultPath,
246
- T_MaterialPath,
247
- T_MemoizePath,
248
- T_UniquePath,
249
- T_GatherPath,
250
- T_GatherMergePath,
251
- T_ProjectionPath,
252
- T_ProjectSetPath,
253
- T_SortPath,
254
- T_IncrementalSortPath,
255
- T_GroupPath,
256
- T_UpperUniquePath,
257
- T_AggPath,
258
- T_GroupingSetsPath,
259
- T_MinMaxAggPath,
260
- T_WindowAggPath,
261
- T_SetOpPath,
262
- T_RecursiveUnionPath,
263
- T_LockRowsPath,
264
- T_ModifyTablePath,
265
- T_LimitPath,
266
- /* these aren't subclasses of Path: */
267
- T_EquivalenceClass,
268
- T_EquivalenceMember,
269
- T_PathKey,
270
- T_PathKeyInfo,
271
- T_PathTarget,
272
- T_RestrictInfo,
273
- T_IndexClause,
274
- T_PlaceHolderVar,
275
- T_SpecialJoinInfo,
276
- T_AppendRelInfo,
277
- T_RowIdentityVarInfo,
278
- T_PlaceHolderInfo,
279
- T_MinMaxAggInfo,
280
- T_PlannerParamItem,
281
- T_RollupData,
282
- T_GroupingSetData,
283
- T_StatisticExtInfo,
284
- T_MergeAction,
285
-
286
- /*
287
- * TAGS FOR MEMORY NODES (memnodes.h)
288
- */
289
- T_AllocSetContext,
290
- T_SlabContext,
291
- T_GenerationContext,
292
-
293
- /*
294
- * TAGS FOR VALUE NODES (value.h)
295
- */
296
- T_Integer,
297
- T_Float,
298
- T_Boolean,
299
- T_String,
300
- T_BitString,
301
-
302
- /*
303
- * TAGS FOR LIST NODES (pg_list.h)
304
- */
305
- T_List,
306
- T_IntList,
307
- T_OidList,
308
-
309
- /*
310
- * TAGS FOR EXTENSIBLE NODES (extensible.h)
311
- */
312
- T_ExtensibleNode,
313
-
314
- /*
315
- * TAGS FOR STATEMENT NODES (mostly in parsenodes.h)
316
- */
317
- T_RawStmt,
318
- T_Query,
319
- T_PlannedStmt,
320
- T_InsertStmt,
321
- T_DeleteStmt,
322
- T_UpdateStmt,
323
- T_MergeStmt,
324
- T_SelectStmt,
325
- T_ReturnStmt,
326
- T_PLAssignStmt,
327
- T_AlterTableStmt,
328
- T_AlterTableCmd,
329
- T_AlterDomainStmt,
330
- T_SetOperationStmt,
331
- T_GrantStmt,
332
- T_GrantRoleStmt,
333
- T_AlterDefaultPrivilegesStmt,
334
- T_ClosePortalStmt,
335
- T_ClusterStmt,
336
- T_CopyStmt,
337
- T_CreateStmt,
338
- T_DefineStmt,
339
- T_DropStmt,
340
- T_TruncateStmt,
341
- T_CommentStmt,
342
- T_FetchStmt,
343
- T_IndexStmt,
344
- T_CreateFunctionStmt,
345
- T_AlterFunctionStmt,
346
- T_DoStmt,
347
- T_RenameStmt,
348
- T_RuleStmt,
349
- T_NotifyStmt,
350
- T_ListenStmt,
351
- T_UnlistenStmt,
352
- T_TransactionStmt,
353
- T_ViewStmt,
354
- T_LoadStmt,
355
- T_CreateDomainStmt,
356
- T_CreatedbStmt,
357
- T_DropdbStmt,
358
- T_VacuumStmt,
359
- T_ExplainStmt,
360
- T_CreateTableAsStmt,
361
- T_CreateSeqStmt,
362
- T_AlterSeqStmt,
363
- T_VariableSetStmt,
364
- T_VariableShowStmt,
365
- T_DiscardStmt,
366
- T_CreateTrigStmt,
367
- T_CreatePLangStmt,
368
- T_CreateRoleStmt,
369
- T_AlterRoleStmt,
370
- T_DropRoleStmt,
371
- T_LockStmt,
372
- T_ConstraintsSetStmt,
373
- T_ReindexStmt,
374
- T_CheckPointStmt,
375
- T_CreateSchemaStmt,
376
- T_AlterDatabaseStmt,
377
- T_AlterDatabaseRefreshCollStmt,
378
- T_AlterDatabaseSetStmt,
379
- T_AlterRoleSetStmt,
380
- T_CreateConversionStmt,
381
- T_CreateCastStmt,
382
- T_CreateOpClassStmt,
383
- T_CreateOpFamilyStmt,
384
- T_AlterOpFamilyStmt,
385
- T_PrepareStmt,
386
- T_ExecuteStmt,
387
- T_DeallocateStmt,
388
- T_DeclareCursorStmt,
389
- T_CreateTableSpaceStmt,
390
- T_DropTableSpaceStmt,
391
- T_AlterObjectDependsStmt,
392
- T_AlterObjectSchemaStmt,
393
- T_AlterOwnerStmt,
394
- T_AlterOperatorStmt,
395
- T_AlterTypeStmt,
396
- T_DropOwnedStmt,
397
- T_ReassignOwnedStmt,
398
- T_CompositeTypeStmt,
399
- T_CreateEnumStmt,
400
- T_CreateRangeStmt,
401
- T_AlterEnumStmt,
402
- T_AlterTSDictionaryStmt,
403
- T_AlterTSConfigurationStmt,
404
- T_CreateFdwStmt,
405
- T_AlterFdwStmt,
406
- T_CreateForeignServerStmt,
407
- T_AlterForeignServerStmt,
408
- T_CreateUserMappingStmt,
409
- T_AlterUserMappingStmt,
410
- T_DropUserMappingStmt,
411
- T_AlterTableSpaceOptionsStmt,
412
- T_AlterTableMoveAllStmt,
413
- T_SecLabelStmt,
414
- T_CreateForeignTableStmt,
415
- T_ImportForeignSchemaStmt,
416
- T_CreateExtensionStmt,
417
- T_AlterExtensionStmt,
418
- T_AlterExtensionContentsStmt,
419
- T_CreateEventTrigStmt,
420
- T_AlterEventTrigStmt,
421
- T_RefreshMatViewStmt,
422
- T_ReplicaIdentityStmt,
423
- T_AlterSystemStmt,
424
- T_CreatePolicyStmt,
425
- T_AlterPolicyStmt,
426
- T_CreateTransformStmt,
427
- T_CreateAmStmt,
428
- T_CreatePublicationStmt,
429
- T_AlterPublicationStmt,
430
- T_CreateSubscriptionStmt,
431
- T_AlterSubscriptionStmt,
432
- T_DropSubscriptionStmt,
433
- T_CreateStatsStmt,
434
- T_AlterCollationStmt,
435
- T_CallStmt,
436
- T_AlterStatsStmt,
437
-
438
- /*
439
- * TAGS FOR PARSE TREE NODES (parsenodes.h)
440
- */
441
- T_A_Expr,
442
- T_ColumnRef,
443
- T_ParamRef,
444
- T_A_Const,
445
- T_FuncCall,
446
- T_A_Star,
447
- T_A_Indices,
448
- T_A_Indirection,
449
- T_A_ArrayExpr,
450
- T_ResTarget,
451
- T_MultiAssignRef,
452
- T_TypeCast,
453
- T_CollateClause,
454
- T_SortBy,
455
- T_WindowDef,
456
- T_RangeSubselect,
457
- T_RangeFunction,
458
- T_RangeTableSample,
459
- T_RangeTableFunc,
460
- T_RangeTableFuncCol,
461
- T_TypeName,
462
- T_ColumnDef,
463
- T_IndexElem,
464
- T_StatsElem,
465
- T_Constraint,
466
- T_DefElem,
467
- T_RangeTblEntry,
468
- T_RangeTblFunction,
469
- T_TableSampleClause,
470
- T_WithCheckOption,
471
- T_SortGroupClause,
472
- T_GroupingSet,
473
- T_WindowClause,
474
- T_ObjectWithArgs,
475
- T_AccessPriv,
476
- T_CreateOpClassItem,
477
- T_TableLikeClause,
478
- T_FunctionParameter,
479
- T_LockingClause,
480
- T_RowMarkClause,
481
- T_XmlSerialize,
482
- T_WithClause,
483
- T_InferClause,
484
- T_OnConflictClause,
485
- T_CTESearchClause,
486
- T_CTECycleClause,
487
- T_CommonTableExpr,
488
- T_MergeWhenClause,
489
- T_RoleSpec,
490
- T_TriggerTransition,
491
- T_PartitionElem,
492
- T_PartitionSpec,
493
- T_PartitionBoundSpec,
494
- T_PartitionRangeDatum,
495
- T_PartitionCmd,
496
- T_VacuumRelation,
497
- T_PublicationObjSpec,
498
- T_PublicationTable,
499
-
500
- /*
501
- * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h)
502
- */
503
- T_IdentifySystemCmd,
504
- T_BaseBackupCmd,
505
- T_CreateReplicationSlotCmd,
506
- T_DropReplicationSlotCmd,
507
- T_ReadReplicationSlotCmd,
508
- T_StartReplicationCmd,
509
- T_TimeLineHistoryCmd,
510
-
511
- /*
512
- * TAGS FOR RANDOM OTHER STUFF
513
- *
514
- * These are objects that aren't part of parse/plan/execute node tree
515
- * structures, but we give them NodeTags anyway for identification
516
- * purposes (usually because they are involved in APIs where we want to
517
- * pass multiple object types through the same pointer).
518
- */
519
- T_TriggerData, /* in commands/trigger.h */
520
- T_EventTriggerData, /* in commands/event_trigger.h */
521
- T_ReturnSetInfo, /* in nodes/execnodes.h */
522
- T_WindowObjectData, /* private in nodeWindowAgg.c */
523
- T_TIDBitmap, /* in nodes/tidbitmap.h */
524
- T_InlineCodeBlock, /* in nodes/parsenodes.h */
525
- T_FdwRoutine, /* in foreign/fdwapi.h */
526
- T_IndexAmRoutine, /* in access/amapi.h */
527
- T_TableAmRoutine, /* in access/tableam.h */
528
- T_TsmRoutine, /* in access/tsmapi.h */
529
- T_ForeignKeyCacheInfo, /* in utils/rel.h */
530
- T_CallContext, /* in nodes/parsenodes.h */
531
- T_SupportRequestSimplify, /* in nodes/supportnodes.h */
532
- T_SupportRequestSelectivity, /* in nodes/supportnodes.h */
533
- T_SupportRequestCost, /* in nodes/supportnodes.h */
534
- T_SupportRequestRows, /* in nodes/supportnodes.h */
535
- T_SupportRequestIndexCondition, /* in nodes/supportnodes.h */
536
- T_SupportRequestWFuncMonotonic /* in nodes/supportnodes.h */
30
+ #include "nodes/nodetags.h"
537
31
  } NodeTag;
538
32
 
33
+ /*
34
+ * pg_node_attr() - Used in node definitions to set extra information for
35
+ * gen_node_support.pl
36
+ *
37
+ * Attributes can be attached to a node as a whole (place the attribute
38
+ * specification on the first line after the struct's opening brace)
39
+ * or to a specific field (place it at the end of that field's line). The
40
+ * argument is a comma-separated list of attributes. Unrecognized attributes
41
+ * cause an error.
42
+ *
43
+ * Valid node attributes:
44
+ *
45
+ * - abstract: Abstract types are types that cannot be instantiated but that
46
+ * can be supertypes of other types. We track their fields, so that
47
+ * subtypes can use them, but we don't emit a node tag, so you can't
48
+ * instantiate them.
49
+ *
50
+ * - custom_copy_equal: Has custom implementations in copyfuncs.c and
51
+ * equalfuncs.c.
52
+ *
53
+ * - custom_read_write: Has custom implementations in outfuncs.c and
54
+ * readfuncs.c.
55
+ *
56
+ * - custom_query_jumble: Has custom implementation in queryjumblefuncs.c.
57
+ *
58
+ * - no_copy: Does not support copyObject() at all.
59
+ *
60
+ * - no_equal: Does not support equal() at all.
61
+ *
62
+ * - no_copy_equal: Shorthand for both no_copy and no_equal.
63
+ *
64
+ * - no_query_jumble: Does not support JumbleQuery() at all.
65
+ *
66
+ * - no_read: Does not support nodeRead() at all.
67
+ *
68
+ * - nodetag_only: Does not support copyObject(), equal(), jumbleQuery()
69
+ * outNode() or nodeRead().
70
+ *
71
+ * - special_read_write: Has special treatment in outNode() and nodeRead().
72
+ *
73
+ * - nodetag_number(VALUE): assign the specified nodetag number instead of
74
+ * an auto-generated number. Typically this would only be used in stable
75
+ * branches, to give a newly-added node type a number without breaking ABI
76
+ * by changing the numbers of existing node types.
77
+ *
78
+ * Node types can be supertypes of other types whether or not they are marked
79
+ * abstract: if a node struct appears as the first field of another struct
80
+ * type, then it is the supertype of that type. The no_copy, no_equal,
81
+ * no_query_jumble and no_read node attributes are automatically inherited
82
+ * from the supertype. (Notice that nodetag_only does not inherit, so it's
83
+ * not quite equivalent to a combination of other attributes.)
84
+ *
85
+ * Valid node field attributes:
86
+ *
87
+ * - array_size(OTHERFIELD): This field is a dynamically allocated array with
88
+ * size indicated by the mentioned other field. The other field is either a
89
+ * scalar or a list, in which case the length of the list is used.
90
+ *
91
+ * - copy_as(VALUE): In copyObject(), replace the field's value with VALUE.
92
+ *
93
+ * - copy_as_scalar: In copyObject(), copy the field as a scalar value
94
+ * (e.g. a pointer) even if it is a node-type pointer.
95
+ *
96
+ * - equal_as_scalar: In equal(), compare the field as a scalar value
97
+ * even if it is a node-type pointer.
98
+ *
99
+ * - equal_ignore: Ignore the field for equality.
100
+ *
101
+ * - equal_ignore_if_zero: Ignore the field for equality if it is zero.
102
+ * (Otherwise, compare normally.)
103
+ *
104
+ * - query_jumble_ignore: Ignore the field for the query jumbling. Note
105
+ * that typmod and collation information are usually irrelevant for the
106
+ * query jumbling.
107
+ *
108
+ * - query_jumble_location: Mark the field as a location to track. This is
109
+ * only allowed for integer fields that include "location" in their name.
110
+ *
111
+ * - read_as(VALUE): In nodeRead(), replace the field's value with VALUE.
112
+ *
113
+ * - read_write_ignore: Ignore the field for read/write. This is only allowed
114
+ * if the node type is marked no_read or read_as() is also specified.
115
+ *
116
+ * - write_only_relids, write_only_nondefault_pathtarget, write_only_req_outer:
117
+ * Special handling for Path struct; see there.
118
+ *
119
+ */
120
+ #define pg_node_attr(...)
121
+
539
122
  /*
540
123
  * The first field of a node of any type is guaranteed to be the NodeTag.
541
124
  * Hence the type of any node can be gotten by casting it to Node. Declaring
@@ -652,7 +235,7 @@ extern int16 *readAttrNumberCols(int numCols);
652
235
  /*
653
236
  * nodes/copyfuncs.c
654
237
  */
655
- extern void *copyObjectImpl(const void *obj);
238
+ extern void *copyObjectImpl(const void *from);
656
239
 
657
240
  /* cast result back to argument type, if supported by compiler */
658
241
  #ifdef HAVE_TYPEOF
@@ -734,6 +317,7 @@ typedef enum JoinType
734
317
  */
735
318
  JOIN_SEMI, /* 1 copy of each LHS row that has match(es) */
736
319
  JOIN_ANTI, /* 1 copy of each LHS row that has no match */
320
+ JOIN_RIGHT_ANTI, /* 1 copy of each RHS row that has no match */
737
321
 
738
322
  /*
739
323
  * These codes are used internally in the planner, but are not supported
@@ -766,7 +350,8 @@ typedef enum JoinType
766
350
  ((1 << JOIN_LEFT) | \
767
351
  (1 << JOIN_FULL) | \
768
352
  (1 << JOIN_RIGHT) | \
769
- (1 << JOIN_ANTI))) != 0)
353
+ (1 << JOIN_ANTI) | \
354
+ (1 << JOIN_RIGHT_ANTI))) != 0)
770
355
 
771
356
  /*
772
357
  * AggStrategy -