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
  * prototypes for costsize.c and clausesel.c.
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/optimizer/cost.h
@@ -20,7 +20,7 @@
20
20
 
21
21
  /* defaults for costsize.c's Cost parameters */
22
22
  /* NB: cost-estimation code should use the variables, not these constants! */
23
- /* If you change these, update backend/utils/misc/postgresql.sample.conf */
23
+ /* If you change these, update backend/utils/misc/postgresql.conf.sample */
24
24
  #define DEFAULT_SEQ_PAGE_COST 1.0
25
25
  #define DEFAULT_RANDOM_PAGE_COST 4.0
26
26
  #define DEFAULT_CPU_TUPLE_COST 0.01
@@ -29,6 +29,8 @@
29
29
  #define DEFAULT_PARALLEL_TUPLE_COST 0.1
30
30
  #define DEFAULT_PARALLEL_SETUP_COST 1000.0
31
31
 
32
+ /* defaults for non-Cost parameters */
33
+ #define DEFAULT_RECURSIVE_WORKTABLE_FACTOR 10.0
32
34
  #define DEFAULT_EFFECTIVE_CACHE_SIZE 524288 /* measured in pages */
33
35
 
34
36
  typedef enum
@@ -57,6 +59,7 @@ extern PGDLLIMPORT bool enable_incremental_sort;
57
59
  extern PGDLLIMPORT bool enable_hashagg;
58
60
  extern PGDLLIMPORT bool enable_nestloop;
59
61
  extern PGDLLIMPORT bool enable_material;
62
+ extern PGDLLIMPORT bool enable_memoize;
60
63
  extern PGDLLIMPORT bool enable_mergejoin;
61
64
  extern PGDLLIMPORT bool enable_hashjoin;
62
65
  extern PGDLLIMPORT bool enable_gathermerge;
@@ -65,6 +68,8 @@ extern PGDLLIMPORT bool enable_partitionwise_aggregate;
65
68
  extern PGDLLIMPORT bool enable_parallel_append;
66
69
  extern PGDLLIMPORT bool enable_parallel_hash;
67
70
  extern PGDLLIMPORT bool enable_partition_pruning;
71
+ extern PGDLLIMPORT bool enable_presorted_aggregate;
72
+ extern PGDLLIMPORT bool enable_async_append;
68
73
  extern PGDLLIMPORT int constraint_exclusion;
69
74
 
70
75
  extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
@@ -83,8 +88,12 @@ extern void cost_bitmap_or_node(BitmapOrPath *path, PlannerInfo *root);
83
88
  extern void cost_bitmap_tree_node(Path *path, Cost *cost, Selectivity *selec);
84
89
  extern void cost_tidscan(Path *path, PlannerInfo *root,
85
90
  RelOptInfo *baserel, List *tidquals, ParamPathInfo *param_info);
91
+ extern void cost_tidrangescan(Path *path, PlannerInfo *root,
92
+ RelOptInfo *baserel, List *tidrangequals,
93
+ ParamPathInfo *param_info);
86
94
  extern void cost_subqueryscan(SubqueryScanPath *path, PlannerInfo *root,
87
- RelOptInfo *baserel, ParamPathInfo *param_info);
95
+ RelOptInfo *baserel, ParamPathInfo *param_info,
96
+ bool trivial_pathtarget);
88
97
  extern void cost_functionscan(Path *path, PlannerInfo *root,
89
98
  RelOptInfo *baserel, ParamPathInfo *param_info);
90
99
  extern void cost_valuesscan(Path *path, PlannerInfo *root,
@@ -107,7 +116,7 @@ extern void cost_incremental_sort(Path *path,
107
116
  Cost input_startup_cost, Cost input_total_cost,
108
117
  double input_tuples, int width, Cost comparison_cost, int sort_mem,
109
118
  double limit_tuples);
110
- extern void cost_append(AppendPath *path);
119
+ extern void cost_append(AppendPath *apath);
111
120
  extern void cost_merge_append(Path *path, PlannerInfo *root,
112
121
  List *pathkeys, int n_streams,
113
122
  Cost input_startup_cost, Cost input_total_cost,
@@ -159,7 +168,7 @@ extern void final_cost_hashjoin(PlannerInfo *root, HashPath *path,
159
168
  JoinCostWorkspace *workspace,
160
169
  JoinPathExtraData *extra);
161
170
  extern void cost_gather(GatherPath *path, PlannerInfo *root,
162
- RelOptInfo *baserel, ParamPathInfo *param_info, double *rows);
171
+ RelOptInfo *rel, ParamPathInfo *param_info, double *rows);
163
172
  extern void cost_gather_merge(GatherMergePath *path, PlannerInfo *root,
164
173
  RelOptInfo *rel, ParamPathInfo *param_info,
165
174
  Cost input_startup_cost, Cost input_total_cost,
@@ -3,7 +3,7 @@
3
3
  * geqo.h
4
4
  * prototypes for various files in optimizer/geqo
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/optimizer/geqo.h
@@ -22,6 +22,7 @@
22
22
  #ifndef GEQO_H
23
23
  #define GEQO_H
24
24
 
25
+ #include "common/pg_prng.h"
25
26
  #include "nodes/pathnodes.h"
26
27
  #include "optimizer/geqo_gene.h"
27
28
 
@@ -48,23 +49,24 @@
48
49
  *
49
50
  * If you change these, update backend/utils/misc/postgresql.conf.sample
50
51
  */
51
- extern int Geqo_effort; /* 1 .. 10, knob for adjustment of defaults */
52
+ extern PGDLLIMPORT int Geqo_effort; /* 1 .. 10, knob for adjustment of
53
+ * defaults */
52
54
 
53
55
  #define DEFAULT_GEQO_EFFORT 5
54
56
  #define MIN_GEQO_EFFORT 1
55
57
  #define MAX_GEQO_EFFORT 10
56
58
 
57
- extern int Geqo_pool_size; /* 2 .. inf, or 0 to use default */
59
+ extern PGDLLIMPORT int Geqo_pool_size; /* 2 .. inf, or 0 to use default */
58
60
 
59
- extern int Geqo_generations; /* 1 .. inf, or 0 to use default */
61
+ extern PGDLLIMPORT int Geqo_generations; /* 1 .. inf, or 0 to use default */
60
62
 
61
- extern double Geqo_selection_bias;
63
+ extern PGDLLIMPORT double Geqo_selection_bias;
62
64
 
63
65
  #define DEFAULT_GEQO_SELECTION_BIAS 2.0
64
66
  #define MIN_GEQO_SELECTION_BIAS 1.5
65
67
  #define MAX_GEQO_SELECTION_BIAS 2.0
66
68
 
67
- extern double Geqo_seed; /* 0 .. 1 */
69
+ extern PGDLLIMPORT double Geqo_seed; /* 0 .. 1 */
68
70
 
69
71
 
70
72
  /*
@@ -73,7 +75,7 @@ extern double Geqo_seed; /* 0 .. 1 */
73
75
  typedef struct
74
76
  {
75
77
  List *initial_rels; /* the base relations we are joining */
76
- unsigned short random_state[3]; /* state for pg_erand48() */
78
+ pg_prng_state random_state; /* PRNG state */
77
79
  } GeqoPrivateData;
78
80
 
79
81
 
@@ -3,7 +3,7 @@
3
3
  * geqo_gene.h
4
4
  * genome representation in optimizer/geqo
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/optimizer/geqo_gene.h
@@ -12,7 +12,7 @@
12
12
  * example. For the most part, however, code outside the core planner
13
13
  * should not need to include any optimizer/ header except this one.
14
14
  *
15
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
15
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
16
16
  * Portions Copyright (c) 1994, Regents of the University of California
17
17
  *
18
18
  * src/include/optimizer/optimizer.h
@@ -24,11 +24,6 @@
24
24
 
25
25
  #include "nodes/parsenodes.h"
26
26
 
27
- /* Test if an expression node represents a SRF call. Beware multiple eval! */
28
- #define IS_SRF_CALL(node) \
29
- ((IsA(node, FuncExpr) && ((FuncExpr *) (node))->funcretset) || \
30
- (IsA(node, OpExpr) && ((OpExpr *) (node))->opretset))
31
-
32
27
  /*
33
28
  * We don't want to include nodes/pathnodes.h here, because non-planner
34
29
  * code should generally treat PlannerInfo as an opaque typedef.
@@ -63,17 +58,23 @@ extern Selectivity clause_selectivity(PlannerInfo *root,
63
58
  int varRelid,
64
59
  JoinType jointype,
65
60
  SpecialJoinInfo *sjinfo);
66
- extern Selectivity clauselist_selectivity_simple(PlannerInfo *root,
67
- List *clauses,
68
- int varRelid,
69
- JoinType jointype,
70
- SpecialJoinInfo *sjinfo,
71
- Bitmapset *estimatedclauses);
61
+ extern Selectivity clause_selectivity_ext(PlannerInfo *root,
62
+ Node *clause,
63
+ int varRelid,
64
+ JoinType jointype,
65
+ SpecialJoinInfo *sjinfo,
66
+ bool use_extended_stats);
72
67
  extern Selectivity clauselist_selectivity(PlannerInfo *root,
73
68
  List *clauses,
74
69
  int varRelid,
75
70
  JoinType jointype,
76
71
  SpecialJoinInfo *sjinfo);
72
+ extern Selectivity clauselist_selectivity_ext(PlannerInfo *root,
73
+ List *clauses,
74
+ int varRelid,
75
+ JoinType jointype,
76
+ SpecialJoinInfo *sjinfo,
77
+ bool use_extended_stats);
77
78
 
78
79
  /* in path/costsize.c: */
79
80
 
@@ -85,29 +86,30 @@ extern PGDLLIMPORT double cpu_index_tuple_cost;
85
86
  extern PGDLLIMPORT double cpu_operator_cost;
86
87
  extern PGDLLIMPORT double parallel_tuple_cost;
87
88
  extern PGDLLIMPORT double parallel_setup_cost;
89
+ extern PGDLLIMPORT double recursive_worktable_factor;
88
90
  extern PGDLLIMPORT int effective_cache_size;
89
91
 
90
92
  extern double clamp_row_est(double nrows);
93
+ extern long clamp_cardinality_to_long(Cardinality x);
91
94
 
92
95
  /* in path/indxpath.c: */
93
96
 
94
- extern bool is_pseudo_constant_for_index(Node *expr, IndexOptInfo *index);
95
- extern bool is_pseudo_constant_for_index_new(PlannerInfo *root, Node *expr,
96
- IndexOptInfo *index);
97
+ extern bool is_pseudo_constant_for_index(PlannerInfo *root, Node *expr,
98
+ IndexOptInfo *index);
97
99
 
98
100
  /* in plan/planner.c: */
99
101
 
100
- /* possible values for force_parallel_mode */
102
+ /* possible values for debug_parallel_query */
101
103
  typedef enum
102
104
  {
103
- FORCE_PARALLEL_OFF,
104
- FORCE_PARALLEL_ON,
105
- FORCE_PARALLEL_REGRESS
106
- } ForceParallelMode;
105
+ DEBUG_PARALLEL_OFF,
106
+ DEBUG_PARALLEL_ON,
107
+ DEBUG_PARALLEL_REGRESS
108
+ } DebugParallelMode;
107
109
 
108
110
  /* GUC parameters */
109
- extern int force_parallel_mode;
110
- extern bool parallel_leader_participation;
111
+ extern PGDLLIMPORT int debug_parallel_query;
112
+ extern PGDLLIMPORT bool parallel_leader_participation;
111
113
 
112
114
  extern struct PlannedStmt *planner(Query *parse, const char *query_string,
113
115
  int cursorOptions,
@@ -141,12 +143,15 @@ extern bool contain_volatile_functions_not_nextval(Node *clause);
141
143
 
142
144
  extern Node *eval_const_expressions(PlannerInfo *root, Node *node);
143
145
 
146
+ extern void convert_saop_to_hashed_saop(Node *node);
147
+
144
148
  extern Node *estimate_expression_value(PlannerInfo *root, Node *node);
145
149
 
146
150
  extern Expr *evaluate_expr(Expr *expr, Oid result_type, int32 result_typmod,
147
151
  Oid result_collation);
148
152
 
149
- extern List *expand_function_arguments(List *args, Oid result_type,
153
+ extern List *expand_function_arguments(List *args, bool include_out_arguments,
154
+ Oid result_type,
150
155
  struct HeapTupleData *func_tuple);
151
156
 
152
157
  /* in util/predtest.c: */
@@ -184,16 +189,14 @@ extern SortGroupClause *get_sortgroupref_clause_noerr(Index sortref,
184
189
  #define PVC_RECURSE_PLACEHOLDERS 0x0020 /* recurse into PlaceHolderVar
185
190
  * arguments */
186
191
 
187
- extern Bitmapset *pull_varnos(Node *node);
188
- extern Bitmapset *pull_varnos_of_level(Node *node, int levelsup);
189
- extern Bitmapset *pull_varnos_new(PlannerInfo *root, Node *node);
190
- extern Bitmapset *pull_varnos_of_level_new(PlannerInfo *root, Node *node, int levelsup);
192
+ extern Bitmapset *pull_varnos(PlannerInfo *root, Node *node);
193
+ extern Bitmapset *pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup);
191
194
  extern void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos);
192
195
  extern List *pull_vars_of_level(Node *node, int levelsup);
193
196
  extern bool contain_var_clause(Node *node);
194
197
  extern bool contain_vars_of_level(Node *node, int levelsup);
195
198
  extern int locate_var_of_level(Node *node, int levelsup);
196
199
  extern List *pull_var_clause(Node *node, int flags);
197
- extern Node *flatten_join_alias_vars(Query *query, Node *node);
200
+ extern Node *flatten_join_alias_vars(PlannerInfo *root, Query *query, Node *node);
198
201
 
199
202
  #endif /* OPTIMIZER_H */
@@ -4,7 +4,7 @@
4
4
  * prototypes for various files in optimizer/path
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/optimizer/paths.h
@@ -104,6 +104,9 @@ extern void add_paths_to_joinrel(PlannerInfo *root, RelOptInfo *joinrel,
104
104
  extern void join_search_one_level(PlannerInfo *root, int level);
105
105
  extern RelOptInfo *make_join_rel(PlannerInfo *root,
106
106
  RelOptInfo *rel1, RelOptInfo *rel2);
107
+ extern Relids add_outer_joins_to_relids(PlannerInfo *root, Relids input_relids,
108
+ SpecialJoinInfo *sjinfo,
109
+ List **pushed_down_joins);
107
110
  extern bool have_join_order_restriction(PlannerInfo *root,
108
111
  RelOptInfo *rel1, RelOptInfo *rel2);
109
112
  extern bool have_dangerous_phv(PlannerInfo *root,
@@ -122,29 +125,35 @@ typedef bool (*ec_matches_callback_type) (PlannerInfo *root,
122
125
 
123
126
  extern bool process_equivalence(PlannerInfo *root,
124
127
  RestrictInfo **p_restrictinfo,
125
- bool below_outer_join);
128
+ JoinDomain *jdomain);
126
129
  extern Expr *canonicalize_ec_expression(Expr *expr,
127
130
  Oid req_type, Oid req_collation);
128
131
  extern void reconsider_outer_join_clauses(PlannerInfo *root);
129
132
  extern EquivalenceClass *get_eclass_for_sort_expr(PlannerInfo *root,
130
133
  Expr *expr,
131
- Relids nullable_relids,
132
134
  List *opfamilies,
133
135
  Oid opcintype,
134
136
  Oid collation,
135
137
  Index sortref,
136
138
  Relids rel,
137
139
  bool create_it);
138
- extern Expr *find_em_expr_for_rel(EquivalenceClass *ec, RelOptInfo *rel);
139
- extern Expr *find_em_expr_usable_for_sorting_rel(PlannerInfo *root,
140
- EquivalenceClass *ec,
141
- RelOptInfo *rel,
142
- bool require_parallel_safe);
140
+ extern EquivalenceMember *find_ec_member_matching_expr(EquivalenceClass *ec,
141
+ Expr *expr,
142
+ Relids relids);
143
+ extern EquivalenceMember *find_computable_ec_member(PlannerInfo *root,
144
+ EquivalenceClass *ec,
145
+ List *exprs,
146
+ Relids relids,
147
+ bool require_parallel_safe);
148
+ extern bool relation_can_be_sorted_early(PlannerInfo *root, RelOptInfo *rel,
149
+ EquivalenceClass *ec,
150
+ bool require_parallel_safe);
143
151
  extern void generate_base_implied_equalities(PlannerInfo *root);
144
152
  extern List *generate_join_implied_equalities(PlannerInfo *root,
145
153
  Relids join_relids,
146
154
  Relids outer_relids,
147
- RelOptInfo *inner_rel);
155
+ RelOptInfo *inner_rel,
156
+ SpecialJoinInfo *sjinfo);
148
157
  extern List *generate_join_implied_equalities_for_ecs(PlannerInfo *root,
149
158
  List *eclasses,
150
159
  Relids join_relids,
@@ -154,6 +163,8 @@ extern bool exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2);
154
163
  extern EquivalenceClass *match_eclasses_to_foreign_key_col(PlannerInfo *root,
155
164
  ForeignKeyOptInfo *fkinfo,
156
165
  int colno);
166
+ extern RestrictInfo *find_derived_clause_for_ec_member(EquivalenceClass *ec,
167
+ EquivalenceMember *em);
157
168
  extern void add_child_rel_equivalences(PlannerInfo *root,
158
169
  AppendRelInfo *appinfo,
159
170
  RelOptInfo *parent_rel,
@@ -161,8 +172,8 @@ extern void add_child_rel_equivalences(PlannerInfo *root,
161
172
  extern void add_child_join_rel_equivalences(PlannerInfo *root,
162
173
  int nappinfos,
163
174
  AppendRelInfo **appinfos,
164
- RelOptInfo *parent_rel,
165
- RelOptInfo *child_rel);
175
+ RelOptInfo *parent_joinrel,
176
+ RelOptInfo *child_joinrel);
166
177
  extern List *generate_implied_equalities_for_column(PlannerInfo *root,
167
178
  RelOptInfo *rel,
168
179
  ec_matches_callback_type callback,
@@ -208,7 +219,7 @@ extern List *build_index_pathkeys(PlannerInfo *root, IndexOptInfo *index,
208
219
  extern List *build_partition_pathkeys(PlannerInfo *root, RelOptInfo *partrel,
209
220
  ScanDirection scandir, bool *partialkeys);
210
221
  extern List *build_expression_pathkey(PlannerInfo *root, Expr *expr,
211
- Relids nullable_relids, Oid opno,
222
+ Oid opno,
212
223
  Relids rel, bool create_it);
213
224
  extern List *convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
214
225
  List *subquery_pathkeys,
@@ -220,6 +231,11 @@ extern List *build_join_pathkeys(PlannerInfo *root,
220
231
  extern List *make_pathkeys_for_sortclauses(PlannerInfo *root,
221
232
  List *sortclauses,
222
233
  List *tlist);
234
+ extern List *make_pathkeys_for_sortclauses_extended(PlannerInfo *root,
235
+ List **sortclauses,
236
+ List *tlist,
237
+ bool remove_redundant,
238
+ bool *sortable);
223
239
  extern void initialize_mergeclause_eclasses(PlannerInfo *root,
224
240
  RestrictInfo *restrictinfo);
225
241
  extern void update_mergeclause_eclasses(PlannerInfo *root,
@@ -240,6 +256,7 @@ extern List *truncate_useless_pathkeys(PlannerInfo *root,
240
256
  RelOptInfo *rel,
241
257
  List *pathkeys);
242
258
  extern bool has_useful_pathkeys(PlannerInfo *root, RelOptInfo *rel);
259
+ extern List *append_pathkeys(List *target, List *source);
243
260
  extern PathKey *make_canonical_pathkey(PlannerInfo *root,
244
261
  EquivalenceClass *eclass, Oid opfamily,
245
262
  int strategy, bool nulls_first);
@@ -4,7 +4,7 @@
4
4
  * prototypes for various files in optimizer/plan
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/optimizer/planmain.h
@@ -19,7 +19,7 @@
19
19
 
20
20
  /* GUC parameters */
21
21
  #define DEFAULT_CURSOR_TUPLE_FRACTION 0.1
22
- extern double cursor_tuple_fraction;
22
+ extern PGDLLIMPORT double cursor_tuple_fraction;
23
23
 
24
24
  /* query_planner callback to compute query_pathkeys */
25
25
  typedef void (*query_pathkeys_callback) (PlannerInfo *root, void *extra);
@@ -64,36 +64,33 @@ extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount,
64
64
  /*
65
65
  * prototypes for plan/initsplan.c
66
66
  */
67
- extern int from_collapse_limit;
68
- extern int join_collapse_limit;
67
+ extern PGDLLIMPORT int from_collapse_limit;
68
+ extern PGDLLIMPORT int join_collapse_limit;
69
69
 
70
70
  extern void add_base_rels_to_query(PlannerInfo *root, Node *jtnode);
71
71
  extern void add_other_rels_to_query(PlannerInfo *root);
72
72
  extern void build_base_rel_tlists(PlannerInfo *root, List *final_tlist);
73
73
  extern void add_vars_to_targetlist(PlannerInfo *root, List *vars,
74
- Relids where_needed, bool create_new_ph);
74
+ Relids where_needed);
75
75
  extern void find_lateral_references(PlannerInfo *root);
76
76
  extern void create_lateral_join_info(PlannerInfo *root);
77
77
  extern List *deconstruct_jointree(PlannerInfo *root);
78
78
  extern void distribute_restrictinfo_to_rels(PlannerInfo *root,
79
79
  RestrictInfo *restrictinfo);
80
- extern void process_implied_equality(PlannerInfo *root,
81
- Oid opno,
82
- Oid collation,
83
- Expr *item1,
84
- Expr *item2,
85
- Relids qualscope,
86
- Relids nullable_relids,
87
- Index security_level,
88
- bool below_outer_join,
89
- bool both_const);
80
+ extern RestrictInfo *process_implied_equality(PlannerInfo *root,
81
+ Oid opno,
82
+ Oid collation,
83
+ Expr *item1,
84
+ Expr *item2,
85
+ Relids qualscope,
86
+ Index security_level,
87
+ bool both_const);
90
88
  extern RestrictInfo *build_implied_join_equality(PlannerInfo *root,
91
89
  Oid opno,
92
90
  Oid collation,
93
91
  Expr *item1,
94
92
  Expr *item2,
95
93
  Relids qualscope,
96
- Relids nullable_relids,
97
94
  Index security_level);
98
95
  extern void match_foreign_keys_to_quals(PlannerInfo *root);
99
96
 
@@ -112,8 +109,9 @@ extern bool innerrel_is_unique(PlannerInfo *root,
112
109
  * prototypes for plan/setrefs.c
113
110
  */
114
111
  extern Plan *set_plan_references(PlannerInfo *root, Plan *plan);
112
+ extern bool trivial_subqueryscan(SubqueryScan *plan);
115
113
  extern void record_plan_function_dependency(PlannerInfo *root, Oid funcid);
116
114
  extern void record_plan_type_dependency(PlannerInfo *root, Oid typid);
117
- extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *root);
115
+ extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *context);
118
116
 
119
117
  #endif /* PLANMAIN_H */
@@ -4,7 +4,7 @@
4
4
  * parse analysis for optimizable statements
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/parser/analyze.h
@@ -14,27 +14,40 @@
14
14
  #ifndef ANALYZE_H
15
15
  #define ANALYZE_H
16
16
 
17
+ #include "nodes/params.h"
18
+ #include "nodes/queryjumble.h"
17
19
  #include "parser/parse_node.h"
18
20
 
19
21
  /* Hook for plugins to get control at end of parse analysis */
20
22
  typedef void (*post_parse_analyze_hook_type) (ParseState *pstate,
21
- Query *query);
23
+ Query *query,
24
+ JumbleState *jstate);
22
25
  extern PGDLLIMPORT post_parse_analyze_hook_type post_parse_analyze_hook;
23
26
 
24
27
 
25
- extern Query *parse_analyze(RawStmt *parseTree, const char *sourceText,
26
- Oid *paramTypes, int numParams, QueryEnvironment *queryEnv);
28
+ extern Query *parse_analyze_fixedparams(RawStmt *parseTree, const char *sourceText,
29
+ const Oid *paramTypes, int numParams, QueryEnvironment *queryEnv);
27
30
  extern Query *parse_analyze_varparams(RawStmt *parseTree, const char *sourceText,
28
- Oid **paramTypes, int *numParams);
31
+ Oid **paramTypes, int *numParams, QueryEnvironment *queryEnv);
32
+ extern Query *parse_analyze_withcb(RawStmt *parseTree, const char *sourceText,
33
+ ParserSetupHook parserSetup,
34
+ void *parserSetupArg,
35
+ QueryEnvironment *queryEnv);
29
36
 
30
37
  extern Query *parse_sub_analyze(Node *parseTree, ParseState *parentParseState,
31
38
  CommonTableExpr *parentCTE,
32
39
  bool locked_from_parent,
33
40
  bool resolve_unknowns);
34
41
 
42
+ extern List *transformInsertRow(ParseState *pstate, List *exprlist,
43
+ List *stmtcols, List *icolumns, List *attrnos,
44
+ bool strip_indirection);
45
+ extern List *transformUpdateTargetList(ParseState *pstate,
46
+ List *origTlist);
35
47
  extern Query *transformTopLevelStmt(ParseState *pstate, RawStmt *parseTree);
36
48
  extern Query *transformStmt(ParseState *pstate, Node *parseTree);
37
49
 
50
+ extern bool stmt_requires_parse_analysis(RawStmt *parseTree);
38
51
  extern bool analyze_requires_snapshot(RawStmt *parseTree);
39
52
 
40
53
  extern const char *LCS_asString(LockClauseStrength strength);
@@ -46,4 +59,6 @@ extern void applyLockingClause(Query *qry, Index rtindex,
46
59
  extern List *BuildOnConflictExcludedTargetlist(Relation targetrel,
47
60
  Index exclRelIndex);
48
61
 
62
+ extern SortGroupClause *makeSortGroupClauseForSetOp(Oid rescoltype, bool require_hash);
63
+
49
64
  #endif /* ANALYZE_H */