pg_query 2.0.3 → 5.1.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 (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Definitions for tagged nodes.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, 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,499 +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_ResultRelInfo,
39
- T_EState,
40
- T_TupleTableSlot,
41
-
42
- /*
43
- * TAGS FOR PLAN NODES (plannodes.h)
44
- */
45
- T_Plan,
46
- T_Result,
47
- T_ProjectSet,
48
- T_ModifyTable,
49
- T_Append,
50
- T_MergeAppend,
51
- T_RecursiveUnion,
52
- T_BitmapAnd,
53
- T_BitmapOr,
54
- T_Scan,
55
- T_SeqScan,
56
- T_SampleScan,
57
- T_IndexScan,
58
- T_IndexOnlyScan,
59
- T_BitmapIndexScan,
60
- T_BitmapHeapScan,
61
- T_TidScan,
62
- T_SubqueryScan,
63
- T_FunctionScan,
64
- T_ValuesScan,
65
- T_TableFuncScan,
66
- T_CteScan,
67
- T_NamedTuplestoreScan,
68
- T_WorkTableScan,
69
- T_ForeignScan,
70
- T_CustomScan,
71
- T_Join,
72
- T_NestLoop,
73
- T_MergeJoin,
74
- T_HashJoin,
75
- T_Material,
76
- T_Sort,
77
- T_IncrementalSort,
78
- T_Group,
79
- T_Agg,
80
- T_WindowAgg,
81
- T_Unique,
82
- T_Gather,
83
- T_GatherMerge,
84
- T_Hash,
85
- T_SetOp,
86
- T_LockRows,
87
- T_Limit,
88
- /* these aren't subclasses of Plan: */
89
- T_NestLoopParam,
90
- T_PlanRowMark,
91
- T_PartitionPruneInfo,
92
- T_PartitionedRelPruneInfo,
93
- T_PartitionPruneStepOp,
94
- T_PartitionPruneStepCombine,
95
- T_PlanInvalItem,
96
-
97
- /*
98
- * TAGS FOR PLAN STATE NODES (execnodes.h)
99
- *
100
- * These should correspond one-to-one with Plan node types.
101
- */
102
- T_PlanState,
103
- T_ResultState,
104
- T_ProjectSetState,
105
- T_ModifyTableState,
106
- T_AppendState,
107
- T_MergeAppendState,
108
- T_RecursiveUnionState,
109
- T_BitmapAndState,
110
- T_BitmapOrState,
111
- T_ScanState,
112
- T_SeqScanState,
113
- T_SampleScanState,
114
- T_IndexScanState,
115
- T_IndexOnlyScanState,
116
- T_BitmapIndexScanState,
117
- T_BitmapHeapScanState,
118
- T_TidScanState,
119
- T_SubqueryScanState,
120
- T_FunctionScanState,
121
- T_TableFuncScanState,
122
- T_ValuesScanState,
123
- T_CteScanState,
124
- T_NamedTuplestoreScanState,
125
- T_WorkTableScanState,
126
- T_ForeignScanState,
127
- T_CustomScanState,
128
- T_JoinState,
129
- T_NestLoopState,
130
- T_MergeJoinState,
131
- T_HashJoinState,
132
- T_MaterialState,
133
- T_SortState,
134
- T_IncrementalSortState,
135
- T_GroupState,
136
- T_AggState,
137
- T_WindowAggState,
138
- T_UniqueState,
139
- T_GatherState,
140
- T_GatherMergeState,
141
- T_HashState,
142
- T_SetOpState,
143
- T_LockRowsState,
144
- T_LimitState,
145
-
146
- /*
147
- * TAGS FOR PRIMITIVE NODES (primnodes.h)
148
- */
149
- T_Alias,
150
- T_RangeVar,
151
- T_TableFunc,
152
- T_Expr,
153
- T_Var,
154
- T_Const,
155
- T_Param,
156
- T_Aggref,
157
- T_GroupingFunc,
158
- T_WindowFunc,
159
- T_SubscriptingRef,
160
- T_FuncExpr,
161
- T_NamedArgExpr,
162
- T_OpExpr,
163
- T_DistinctExpr,
164
- T_NullIfExpr,
165
- T_ScalarArrayOpExpr,
166
- T_BoolExpr,
167
- T_SubLink,
168
- T_SubPlan,
169
- T_AlternativeSubPlan,
170
- T_FieldSelect,
171
- T_FieldStore,
172
- T_RelabelType,
173
- T_CoerceViaIO,
174
- T_ArrayCoerceExpr,
175
- T_ConvertRowtypeExpr,
176
- T_CollateExpr,
177
- T_CaseExpr,
178
- T_CaseWhen,
179
- T_CaseTestExpr,
180
- T_ArrayExpr,
181
- T_RowExpr,
182
- T_RowCompareExpr,
183
- T_CoalesceExpr,
184
- T_MinMaxExpr,
185
- T_SQLValueFunction,
186
- T_XmlExpr,
187
- T_NullTest,
188
- T_BooleanTest,
189
- T_CoerceToDomain,
190
- T_CoerceToDomainValue,
191
- T_SetToDefault,
192
- T_CurrentOfExpr,
193
- T_NextValueExpr,
194
- T_InferenceElem,
195
- T_TargetEntry,
196
- T_RangeTblRef,
197
- T_JoinExpr,
198
- T_FromExpr,
199
- T_OnConflictExpr,
200
- T_IntoClause,
201
-
202
- /*
203
- * TAGS FOR EXPRESSION STATE NODES (execnodes.h)
204
- *
205
- * ExprState represents the evaluation state for a whole expression tree.
206
- * Most Expr-based plan nodes do not have a corresponding expression state
207
- * node, they're fully handled within execExpr* - but sometimes the state
208
- * needs to be shared with other parts of the executor, as for example
209
- * with AggrefExprState, which nodeAgg.c has to modify.
210
- */
211
- T_ExprState,
212
- T_AggrefExprState,
213
- T_WindowFuncExprState,
214
- T_SetExprState,
215
- T_SubPlanState,
216
- T_AlternativeSubPlanState,
217
- T_DomainConstraintState,
218
-
219
- /*
220
- * TAGS FOR PLANNER NODES (pathnodes.h)
221
- */
222
- T_PlannerInfo,
223
- T_PlannerGlobal,
224
- T_RelOptInfo,
225
- T_IndexOptInfo,
226
- T_ForeignKeyOptInfo,
227
- T_ParamPathInfo,
228
- T_Path,
229
- T_IndexPath,
230
- T_BitmapHeapPath,
231
- T_BitmapAndPath,
232
- T_BitmapOrPath,
233
- T_TidPath,
234
- T_SubqueryScanPath,
235
- T_ForeignPath,
236
- T_CustomPath,
237
- T_NestPath,
238
- T_MergePath,
239
- T_HashPath,
240
- T_AppendPath,
241
- T_MergeAppendPath,
242
- T_GroupResultPath,
243
- T_MaterialPath,
244
- T_UniquePath,
245
- T_GatherPath,
246
- T_GatherMergePath,
247
- T_ProjectionPath,
248
- T_ProjectSetPath,
249
- T_SortPath,
250
- T_IncrementalSortPath,
251
- T_GroupPath,
252
- T_UpperUniquePath,
253
- T_AggPath,
254
- T_GroupingSetsPath,
255
- T_MinMaxAggPath,
256
- T_WindowAggPath,
257
- T_SetOpPath,
258
- T_RecursiveUnionPath,
259
- T_LockRowsPath,
260
- T_ModifyTablePath,
261
- T_LimitPath,
262
- /* these aren't subclasses of Path: */
263
- T_EquivalenceClass,
264
- T_EquivalenceMember,
265
- T_PathKey,
266
- T_PathTarget,
267
- T_RestrictInfo,
268
- T_IndexClause,
269
- T_PlaceHolderVar,
270
- T_SpecialJoinInfo,
271
- T_AppendRelInfo,
272
- T_PlaceHolderInfo,
273
- T_MinMaxAggInfo,
274
- T_PlannerParamItem,
275
- T_RollupData,
276
- T_GroupingSetData,
277
- T_StatisticExtInfo,
278
-
279
- /*
280
- * TAGS FOR MEMORY NODES (memnodes.h)
281
- */
282
- T_MemoryContext,
283
- T_AllocSetContext,
284
- T_SlabContext,
285
- T_GenerationContext,
286
-
287
- /*
288
- * TAGS FOR VALUE NODES (value.h)
289
- */
290
- T_Value,
291
- T_Integer,
292
- T_Float,
293
- T_String,
294
- T_BitString,
295
- T_Null,
296
-
297
- /*
298
- * TAGS FOR LIST NODES (pg_list.h)
299
- */
300
- T_List,
301
- T_IntList,
302
- T_OidList,
303
-
304
- /*
305
- * TAGS FOR EXTENSIBLE NODES (extensible.h)
306
- */
307
- T_ExtensibleNode,
308
-
309
- /*
310
- * TAGS FOR STATEMENT NODES (mostly in parsenodes.h)
311
- */
312
- T_RawStmt,
313
- T_Query,
314
- T_PlannedStmt,
315
- T_InsertStmt,
316
- T_DeleteStmt,
317
- T_UpdateStmt,
318
- T_SelectStmt,
319
- T_AlterTableStmt,
320
- T_AlterTableCmd,
321
- T_AlterDomainStmt,
322
- T_SetOperationStmt,
323
- T_GrantStmt,
324
- T_GrantRoleStmt,
325
- T_AlterDefaultPrivilegesStmt,
326
- T_ClosePortalStmt,
327
- T_ClusterStmt,
328
- T_CopyStmt,
329
- T_CreateStmt,
330
- T_DefineStmt,
331
- T_DropStmt,
332
- T_TruncateStmt,
333
- T_CommentStmt,
334
- T_FetchStmt,
335
- T_IndexStmt,
336
- T_CreateFunctionStmt,
337
- T_AlterFunctionStmt,
338
- T_DoStmt,
339
- T_RenameStmt,
340
- T_RuleStmt,
341
- T_NotifyStmt,
342
- T_ListenStmt,
343
- T_UnlistenStmt,
344
- T_TransactionStmt,
345
- T_ViewStmt,
346
- T_LoadStmt,
347
- T_CreateDomainStmt,
348
- T_CreatedbStmt,
349
- T_DropdbStmt,
350
- T_VacuumStmt,
351
- T_ExplainStmt,
352
- T_CreateTableAsStmt,
353
- T_CreateSeqStmt,
354
- T_AlterSeqStmt,
355
- T_VariableSetStmt,
356
- T_VariableShowStmt,
357
- T_DiscardStmt,
358
- T_CreateTrigStmt,
359
- T_CreatePLangStmt,
360
- T_CreateRoleStmt,
361
- T_AlterRoleStmt,
362
- T_DropRoleStmt,
363
- T_LockStmt,
364
- T_ConstraintsSetStmt,
365
- T_ReindexStmt,
366
- T_CheckPointStmt,
367
- T_CreateSchemaStmt,
368
- T_AlterDatabaseStmt,
369
- T_AlterDatabaseSetStmt,
370
- T_AlterRoleSetStmt,
371
- T_CreateConversionStmt,
372
- T_CreateCastStmt,
373
- T_CreateOpClassStmt,
374
- T_CreateOpFamilyStmt,
375
- T_AlterOpFamilyStmt,
376
- T_PrepareStmt,
377
- T_ExecuteStmt,
378
- T_DeallocateStmt,
379
- T_DeclareCursorStmt,
380
- T_CreateTableSpaceStmt,
381
- T_DropTableSpaceStmt,
382
- T_AlterObjectDependsStmt,
383
- T_AlterObjectSchemaStmt,
384
- T_AlterOwnerStmt,
385
- T_AlterOperatorStmt,
386
- T_AlterTypeStmt,
387
- T_DropOwnedStmt,
388
- T_ReassignOwnedStmt,
389
- T_CompositeTypeStmt,
390
- T_CreateEnumStmt,
391
- T_CreateRangeStmt,
392
- T_AlterEnumStmt,
393
- T_AlterTSDictionaryStmt,
394
- T_AlterTSConfigurationStmt,
395
- T_CreateFdwStmt,
396
- T_AlterFdwStmt,
397
- T_CreateForeignServerStmt,
398
- T_AlterForeignServerStmt,
399
- T_CreateUserMappingStmt,
400
- T_AlterUserMappingStmt,
401
- T_DropUserMappingStmt,
402
- T_AlterTableSpaceOptionsStmt,
403
- T_AlterTableMoveAllStmt,
404
- T_SecLabelStmt,
405
- T_CreateForeignTableStmt,
406
- T_ImportForeignSchemaStmt,
407
- T_CreateExtensionStmt,
408
- T_AlterExtensionStmt,
409
- T_AlterExtensionContentsStmt,
410
- T_CreateEventTrigStmt,
411
- T_AlterEventTrigStmt,
412
- T_RefreshMatViewStmt,
413
- T_ReplicaIdentityStmt,
414
- T_AlterSystemStmt,
415
- T_CreatePolicyStmt,
416
- T_AlterPolicyStmt,
417
- T_CreateTransformStmt,
418
- T_CreateAmStmt,
419
- T_CreatePublicationStmt,
420
- T_AlterPublicationStmt,
421
- T_CreateSubscriptionStmt,
422
- T_AlterSubscriptionStmt,
423
- T_DropSubscriptionStmt,
424
- T_CreateStatsStmt,
425
- T_AlterCollationStmt,
426
- T_CallStmt,
427
- T_AlterStatsStmt,
428
-
429
- /*
430
- * TAGS FOR PARSE TREE NODES (parsenodes.h)
431
- */
432
- T_A_Expr,
433
- T_ColumnRef,
434
- T_ParamRef,
435
- T_A_Const,
436
- T_FuncCall,
437
- T_A_Star,
438
- T_A_Indices,
439
- T_A_Indirection,
440
- T_A_ArrayExpr,
441
- T_ResTarget,
442
- T_MultiAssignRef,
443
- T_TypeCast,
444
- T_CollateClause,
445
- T_SortBy,
446
- T_WindowDef,
447
- T_RangeSubselect,
448
- T_RangeFunction,
449
- T_RangeTableSample,
450
- T_RangeTableFunc,
451
- T_RangeTableFuncCol,
452
- T_TypeName,
453
- T_ColumnDef,
454
- T_IndexElem,
455
- T_Constraint,
456
- T_DefElem,
457
- T_RangeTblEntry,
458
- T_RangeTblFunction,
459
- T_TableSampleClause,
460
- T_WithCheckOption,
461
- T_SortGroupClause,
462
- T_GroupingSet,
463
- T_WindowClause,
464
- T_ObjectWithArgs,
465
- T_AccessPriv,
466
- T_CreateOpClassItem,
467
- T_TableLikeClause,
468
- T_FunctionParameter,
469
- T_LockingClause,
470
- T_RowMarkClause,
471
- T_XmlSerialize,
472
- T_WithClause,
473
- T_InferClause,
474
- T_OnConflictClause,
475
- T_CommonTableExpr,
476
- T_RoleSpec,
477
- T_TriggerTransition,
478
- T_PartitionElem,
479
- T_PartitionSpec,
480
- T_PartitionBoundSpec,
481
- T_PartitionRangeDatum,
482
- T_PartitionCmd,
483
- T_VacuumRelation,
484
-
485
- /*
486
- * TAGS FOR REPLICATION GRAMMAR PARSE NODES (replnodes.h)
487
- */
488
- T_IdentifySystemCmd,
489
- T_BaseBackupCmd,
490
- T_CreateReplicationSlotCmd,
491
- T_DropReplicationSlotCmd,
492
- T_StartReplicationCmd,
493
- T_TimeLineHistoryCmd,
494
- T_SQLCmd,
495
-
496
- /*
497
- * TAGS FOR RANDOM OTHER STUFF
498
- *
499
- * These are objects that aren't part of parse/plan/execute node tree
500
- * structures, but we give them NodeTags anyway for identification
501
- * purposes (usually because they are involved in APIs where we want to
502
- * pass multiple object types through the same pointer).
503
- */
504
- T_TriggerData, /* in commands/trigger.h */
505
- T_EventTriggerData, /* in commands/event_trigger.h */
506
- T_ReturnSetInfo, /* in nodes/execnodes.h */
507
- T_WindowObjectData, /* private in nodeWindowAgg.c */
508
- T_TIDBitmap, /* in nodes/tidbitmap.h */
509
- T_InlineCodeBlock, /* in nodes/parsenodes.h */
510
- T_FdwRoutine, /* in foreign/fdwapi.h */
511
- T_IndexAmRoutine, /* in access/amapi.h */
512
- T_TableAmRoutine, /* in access/tableam.h */
513
- T_TsmRoutine, /* in access/tsmapi.h */
514
- T_ForeignKeyCacheInfo, /* in utils/rel.h */
515
- T_CallContext, /* in nodes/parsenodes.h */
516
- T_SupportRequestSimplify, /* in nodes/supportnodes.h */
517
- T_SupportRequestSelectivity, /* in nodes/supportnodes.h */
518
- T_SupportRequestCost, /* in nodes/supportnodes.h */
519
- T_SupportRequestRows, /* in nodes/supportnodes.h */
520
- T_SupportRequestIndexCondition /* in nodes/supportnodes.h */
30
+ #include "nodes/nodetags.h"
521
31
  } NodeTag;
522
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
+
523
122
  /*
524
123
  * The first field of a node of any type is guaranteed to be the NodeTag.
525
124
  * Hence the type of any node can be gotten by casting it to Node. Declaring
@@ -562,7 +161,7 @@ typedef struct Node
562
161
  * Fortunately, this macro isn't recursive so we just define
563
162
  * a global variable for this purpose.
564
163
  */
565
- extern PGDLLIMPORT Node *newNodeMacroHolder;
164
+ extern PGDLLIMPORT __thread Node *newNodeMacroHolder;
566
165
 
567
166
  #define newNode(size, tag) \
568
167
  ( \
@@ -636,7 +235,7 @@ extern int16 *readAttrNumberCols(int numCols);
636
235
  /*
637
236
  * nodes/copyfuncs.c
638
237
  */
639
- extern void *copyObjectImpl(const void *obj);
238
+ extern void *copyObjectImpl(const void *from);
640
239
 
641
240
  /* cast result back to argument type, if supported by compiler */
642
241
  #ifdef HAVE_TYPEOF
@@ -661,6 +260,8 @@ extern bool equal(const void *a, const void *b);
661
260
  */
662
261
  typedef double Selectivity; /* fraction of tuples a qualifier will pass */
663
262
  typedef double Cost; /* execution cost (in page-access units) */
263
+ typedef double Cardinality; /* (estimated) number of rows or other integer
264
+ * count */
664
265
 
665
266
 
666
267
  /*
@@ -675,7 +276,8 @@ typedef enum CmdType
675
276
  CMD_SELECT, /* select stmt */
676
277
  CMD_UPDATE, /* update stmt */
677
278
  CMD_INSERT, /* insert stmt */
678
- CMD_DELETE,
279
+ CMD_DELETE, /* delete stmt */
280
+ CMD_MERGE, /* merge stmt */
679
281
  CMD_UTILITY, /* cmds like create, destroy, copy, vacuum,
680
282
  * etc. */
681
283
  CMD_NOTHING /* dummy command for instead nothing rules
@@ -715,6 +317,7 @@ typedef enum JoinType
715
317
  */
716
318
  JOIN_SEMI, /* 1 copy of each LHS row that has match(es) */
717
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 */
718
321
 
719
322
  /*
720
323
  * These codes are used internally in the planner, but are not supported
@@ -747,7 +350,8 @@ typedef enum JoinType
747
350
  ((1 << JOIN_LEFT) | \
748
351
  (1 << JOIN_FULL) | \
749
352
  (1 << JOIN_RIGHT) | \
750
- (1 << JOIN_ANTI))) != 0)
353
+ (1 << JOIN_ANTI) | \
354
+ (1 << JOIN_RIGHT_ANTI))) != 0)
751
355
 
752
356
  /*
753
357
  * AggStrategy -