pg_query 5.1.0 → 6.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 (490) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/Rakefile +4 -4
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +20 -6
  11. data/ext/pg_query/include/pg_query.h +4 -3
  12. data/ext/pg_query/include/pg_query_enum_defs.c +424 -154
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +68 -4
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +2952 -1845
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +51 -3
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +210 -23
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +17 -1
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +271 -52
  19. data/ext/pg_query/include/postgres/access/amapi.h +14 -3
  20. data/ext/pg_query/include/postgres/access/attmap.h +1 -1
  21. data/ext/pg_query/include/postgres/access/attnum.h +1 -1
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +2 -3
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +2 -3
  26. data/ext/pg_query/include/postgres/access/detoast.h +1 -1
  27. data/ext/pg_query/include/postgres/access/genam.h +17 -4
  28. data/ext/pg_query/include/postgres/access/gin.h +1 -1
  29. data/ext/pg_query/include/postgres/access/htup.h +1 -1
  30. data/ext/pg_query/include/postgres/access/htup_details.h +11 -11
  31. data/ext/pg_query/include/postgres/access/itup.h +3 -3
  32. data/ext/pg_query/include/postgres/access/parallel.h +1 -2
  33. data/ext/pg_query/include/postgres/access/printtup.h +1 -1
  34. data/ext/pg_query/include/postgres/access/relation.h +1 -1
  35. data/ext/pg_query/include/postgres/access/relscan.h +1 -1
  36. data/ext/pg_query/include/postgres/access/rmgrlist.h +1 -1
  37. data/ext/pg_query/include/postgres/access/sdir.h +1 -1
  38. data/ext/pg_query/include/postgres/access/skey.h +1 -1
  39. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  40. data/ext/pg_query/include/postgres/access/stratnum.h +1 -1
  41. data/ext/pg_query/include/postgres/access/sysattr.h +1 -1
  42. data/ext/pg_query/include/postgres/access/table.h +1 -1
  43. data/ext/pg_query/include/postgres/access/tableam.h +35 -25
  44. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  45. data/ext/pg_query/include/postgres/access/toast_compression.h +2 -2
  46. data/ext/pg_query/include/postgres/access/transam.h +50 -7
  47. data/ext/pg_query/include/postgres/access/tsmapi.h +1 -1
  48. data/ext/pg_query/include/postgres/access/tupconvert.h +1 -1
  49. data/ext/pg_query/include/postgres/access/tupdesc.h +5 -5
  50. data/ext/pg_query/include/postgres/access/tupmacs.h +1 -1
  51. data/ext/pg_query/include/postgres/access/twophase.h +2 -2
  52. data/ext/pg_query/include/postgres/access/xact.h +5 -5
  53. data/ext/pg_query/include/postgres/access/xlog.h +20 -12
  54. data/ext/pg_query/include/postgres/access/xlog_internal.h +4 -3
  55. data/ext/pg_query/include/postgres/access/xlogbackup.h +3 -1
  56. data/ext/pg_query/include/postgres/access/xlogdefs.h +5 -5
  57. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +2 -2
  58. data/ext/pg_query/include/postgres/access/xlogreader.h +2 -2
  59. data/ext/pg_query/include/postgres/access/xlogrecord.h +3 -3
  60. data/ext/pg_query/include/postgres/access/xlogrecovery.h +4 -4
  61. data/ext/pg_query/include/postgres/archive/archive_module.h +9 -1
  62. data/ext/pg_query/include/postgres/c.h +32 -37
  63. data/ext/pg_query/include/postgres/catalog/catalog.h +3 -1
  64. data/ext/pg_query/include/postgres/catalog/catversion.h +2 -2
  65. data/ext/pg_query/include/postgres/catalog/dependency.h +17 -59
  66. data/ext/pg_query/include/postgres/catalog/genbki.h +12 -6
  67. data/ext/pg_query/include/postgres/catalog/index.h +22 -18
  68. data/ext/pg_query/include/postgres/catalog/indexing.h +1 -1
  69. data/ext/pg_query/include/postgres/catalog/namespace.h +18 -19
  70. data/ext/pg_query/include/postgres/catalog/objectaccess.h +2 -2
  71. data/ext/pg_query/include/postgres/catalog/objectaddress.h +5 -1
  72. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +4 -2
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +1 -1
  74. data/ext/pg_query/include/postgres/catalog/pg_am.h +6 -3
  75. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +1 -1
  76. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +31 -14
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +3 -3
  78. data/ext/pg_query/include/postgres/catalog/pg_authid.h +6 -3
  79. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +2 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_class.h +10 -5
  81. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +4 -2
  82. data/ext/pg_query/include/postgres/catalog/pg_collation.h +11 -5
  83. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +5 -2
  84. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +15 -10
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +2 -1
  86. data/ext/pg_query/include/postgres/catalog/pg_control.h +5 -3
  87. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +8 -4
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +1 -1
  89. data/ext/pg_query/include/postgres/catalog/pg_database.h +9 -4
  90. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +13 -12
  91. data/ext/pg_query/include/postgres/catalog/pg_depend.h +3 -3
  92. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +1 -1
  93. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +6 -3
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +1 -1
  95. data/ext/pg_query/include/postgres/catalog/pg_index.h +5 -3
  96. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +1 -1
  97. data/ext/pg_query/include/postgres/catalog/pg_language.h +6 -3
  98. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +1 -1
  99. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +6 -3
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +1 -1
  101. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +6 -3
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +1 -1
  103. data/ext/pg_query/include/postgres/catalog/pg_operator.h +20 -3
  104. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +1 -1
  105. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +6 -3
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +1 -1
  107. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +4 -2
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +1 -1
  109. data/ext/pg_query/include/postgres/catalog/pg_proc.h +6 -3
  110. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +1 -1
  111. data/ext/pg_query/include/postgres/catalog/pg_publication.h +6 -3
  112. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +1 -1
  113. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +6 -3
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +1 -1
  115. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +10 -4
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +7 -3
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +10 -7
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +3 -3
  119. data/ext/pg_query/include/postgres/catalog/pg_transform.h +6 -3
  120. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +1 -1
  121. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +4 -4
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +1 -1
  123. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +6 -3
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +1 -1
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +6 -3
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +1 -1
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +6 -3
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +1 -1
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +6 -3
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +1 -1
  131. data/ext/pg_query/include/postgres/catalog/pg_type.h +6 -3
  132. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +1 -1
  133. data/ext/pg_query/include/postgres/catalog/storage.h +1 -1
  134. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  135. data/ext/pg_query/include/postgres/commands/async.h +2 -6
  136. data/ext/pg_query/include/postgres/commands/dbcommands.h +1 -1
  137. data/ext/pg_query/include/postgres/commands/defrem.h +6 -6
  138. data/ext/pg_query/include/postgres/commands/event_trigger.h +11 -2
  139. data/ext/pg_query/include/postgres/commands/explain.h +19 -3
  140. data/ext/pg_query/include/postgres/commands/prepare.h +1 -1
  141. data/ext/pg_query/include/postgres/commands/tablespace.h +1 -1
  142. data/ext/pg_query/include/postgres/commands/trigger.h +1 -1
  143. data/ext/pg_query/include/postgres/commands/vacuum.h +28 -26
  144. data/ext/pg_query/include/postgres/common/cryptohash.h +2 -2
  145. data/ext/pg_query/include/postgres/common/file_perm.h +1 -1
  146. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  147. data/ext/pg_query/include/postgres/common/hashfn.h +16 -1
  148. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  149. data/ext/pg_query/include/postgres/common/int.h +79 -4
  150. data/ext/pg_query/include/postgres/common/keywords.h +1 -1
  151. data/ext/pg_query/include/postgres/common/kwlookup.h +1 -1
  152. data/ext/pg_query/include/postgres/common/pg_prng.h +2 -1
  153. data/ext/pg_query/include/postgres/common/relpath.h +4 -4
  154. data/ext/pg_query/include/postgres/common/scram-common.h +1 -1
  155. data/ext/pg_query/include/postgres/common/sha2.h +1 -1
  156. data/ext/pg_query/include/postgres/common/string.h +1 -1
  157. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +2 -3
  158. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +278 -30
  159. data/ext/pg_query/include/postgres/copyfuncs.switch.c +55 -4
  160. data/ext/pg_query/include/postgres/datatype/timestamp.h +29 -3
  161. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +239 -26
  162. data/ext/pg_query/include/postgres/equalfuncs.switch.c +55 -4
  163. data/ext/pg_query/include/postgres/executor/execdesc.h +2 -2
  164. data/ext/pg_query/include/postgres/executor/executor.h +6 -5
  165. data/ext/pg_query/include/postgres/executor/functions.h +2 -1
  166. data/ext/pg_query/include/postgres/executor/instrument.h +5 -3
  167. data/ext/pg_query/include/postgres/executor/spi.h +2 -8
  168. data/ext/pg_query/include/postgres/executor/tablefunc.h +1 -1
  169. data/ext/pg_query/include/postgres/executor/tuptable.h +31 -2
  170. data/ext/pg_query/include/postgres/fmgr.h +2 -2
  171. data/ext/pg_query/include/postgres/foreign/fdwapi.h +1 -1
  172. data/ext/pg_query/include/postgres/funcapi.h +2 -2
  173. data/ext/pg_query/include/postgres/gram.h +871 -830
  174. data/ext/pg_query/include/postgres/gramparse.h +1 -1
  175. data/ext/pg_query/include/postgres/jit/jit.h +4 -3
  176. data/ext/pg_query/include/postgres/kwlist_d.h +511 -466
  177. data/ext/pg_query/include/postgres/lib/dshash.h +25 -10
  178. data/ext/pg_query/include/postgres/lib/ilist.h +1 -1
  179. data/ext/pg_query/include/postgres/lib/pairingheap.h +1 -1
  180. data/ext/pg_query/include/postgres/lib/simplehash.h +40 -18
  181. data/ext/pg_query/include/postgres/lib/sort_template.h +14 -1
  182. data/ext/pg_query/include/postgres/lib/stringinfo.h +93 -11
  183. data/ext/pg_query/include/postgres/libpq/auth.h +1 -1
  184. data/ext/pg_query/include/postgres/libpq/crypt.h +2 -2
  185. data/ext/pg_query/include/postgres/libpq/hba.h +4 -4
  186. data/ext/pg_query/include/postgres/libpq/libpq-be.h +35 -28
  187. data/ext/pg_query/include/postgres/libpq/libpq.h +6 -7
  188. data/ext/pg_query/include/postgres/libpq/pqcomm.h +26 -20
  189. data/ext/pg_query/include/postgres/libpq/pqformat.h +2 -3
  190. data/ext/pg_query/include/postgres/libpq/pqsignal.h +1 -1
  191. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  192. data/ext/pg_query/include/postgres/libpq/sasl.h +1 -1
  193. data/ext/pg_query/include/postgres/libpq/scram.h +1 -1
  194. data/ext/pg_query/include/postgres/mb/pg_wchar.h +103 -82
  195. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +1 -1
  196. data/ext/pg_query/include/postgres/miscadmin.h +72 -52
  197. data/ext/pg_query/include/postgres/nodes/bitmapset.h +17 -3
  198. data/ext/pg_query/include/postgres/nodes/execnodes.h +112 -25
  199. data/ext/pg_query/include/postgres/nodes/extensible.h +1 -1
  200. data/ext/pg_query/include/postgres/nodes/lockoptions.h +4 -4
  201. data/ext/pg_query/include/postgres/nodes/makefuncs.h +8 -2
  202. data/ext/pg_query/include/postgres/nodes/memnodes.h +43 -4
  203. data/ext/pg_query/include/postgres/nodes/miscnodes.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +1 -1
  205. data/ext/pg_query/include/postgres/nodes/nodes.h +30 -41
  206. data/ext/pg_query/include/postgres/nodes/nodetags.h +464 -444
  207. data/ext/pg_query/include/postgres/nodes/params.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/parsenodes.h +358 -175
  209. data/ext/pg_query/include/postgres/nodes/pathnodes.h +64 -10
  210. data/ext/pg_query/include/postgres/nodes/pg_list.h +62 -11
  211. data/ext/pg_query/include/postgres/nodes/plannodes.h +11 -10
  212. data/ext/pg_query/include/postgres/nodes/primnodes.h +352 -54
  213. data/ext/pg_query/include/postgres/nodes/print.h +1 -1
  214. data/ext/pg_query/include/postgres/nodes/queryjumble.h +2 -2
  215. data/ext/pg_query/include/postgres/nodes/replnodes.h +23 -2
  216. data/ext/pg_query/include/postgres/nodes/supportnodes.h +1 -1
  217. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +1 -1
  218. data/ext/pg_query/include/postgres/nodes/value.h +1 -1
  219. data/ext/pg_query/include/postgres/optimizer/cost.h +5 -4
  220. data/ext/pg_query/include/postgres/optimizer/geqo.h +1 -1
  221. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +1 -1
  222. data/ext/pg_query/include/postgres/optimizer/optimizer.h +5 -2
  223. data/ext/pg_query/include/postgres/optimizer/paths.h +13 -8
  224. data/ext/pg_query/include/postgres/optimizer/planmain.h +7 -1
  225. data/ext/pg_query/include/postgres/parser/analyze.h +3 -1
  226. data/ext/pg_query/include/postgres/parser/kwlist.h +22 -2
  227. data/ext/pg_query/include/postgres/parser/parse_agg.h +1 -1
  228. data/ext/pg_query/include/postgres/parser/parse_coerce.h +5 -2
  229. data/ext/pg_query/include/postgres/parser/parse_expr.h +1 -1
  230. data/ext/pg_query/include/postgres/parser/parse_func.h +2 -2
  231. data/ext/pg_query/include/postgres/parser/parse_node.h +3 -2
  232. data/ext/pg_query/include/postgres/parser/parse_oper.h +4 -1
  233. data/ext/pg_query/include/postgres/parser/parse_relation.h +1 -1
  234. data/ext/pg_query/include/postgres/parser/parse_type.h +2 -2
  235. data/ext/pg_query/include/postgres/parser/parser.h +3 -3
  236. data/ext/pg_query/include/postgres/parser/parsetree.h +1 -1
  237. data/ext/pg_query/include/postgres/parser/scanner.h +1 -1
  238. data/ext/pg_query/include/postgres/parser/scansup.h +1 -1
  239. data/ext/pg_query/include/postgres/partitioning/partdefs.h +1 -1
  240. data/ext/pg_query/include/postgres/pg_config.h +53 -45
  241. data/ext/pg_query/include/postgres/pg_config_manual.h +21 -8
  242. data/ext/pg_query/include/postgres/pg_getopt.h +1 -1
  243. data/ext/pg_query/include/postgres/pg_trace.h +1 -1
  244. data/ext/pg_query/include/postgres/pgstat.h +13 -11
  245. data/ext/pg_query/include/postgres/pgtime.h +1 -1
  246. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +1 -1
  247. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +1 -1
  248. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +1 -1
  249. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +1 -1
  250. data/ext/pg_query/include/postgres/plerrcodes.h +4 -4
  251. data/ext/pg_query/include/postgres/plpgsql.h +15 -13
  252. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +1 -1
  253. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +1 -1
  254. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +3 -1
  255. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +3 -1
  256. data/ext/pg_query/include/postgres/port/atomics/fallback.h +1 -1
  257. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +38 -1
  258. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +19 -1
  259. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +16 -1
  260. data/ext/pg_query/include/postgres/port/atomics/generic.h +38 -2
  261. data/ext/pg_query/include/postgres/port/atomics.h +93 -6
  262. data/ext/pg_query/include/postgres/port/pg_bitutils.h +91 -9
  263. data/ext/pg_query/include/postgres/port/pg_bswap.h +1 -1
  264. data/ext/pg_query/include/postgres/port/pg_crc32c.h +10 -1
  265. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  266. data/ext/pg_query/include/postgres/port/simd.h +48 -1
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +8 -0
  268. data/ext/pg_query/include/postgres/port/win32_port.h +1 -13
  269. data/ext/pg_query/include/postgres/port.h +39 -4
  270. data/ext/pg_query/include/postgres/portability/instr_time.h +1 -1
  271. data/ext/pg_query/include/postgres/postgres.h +1 -1
  272. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +5 -16
  273. data/ext/pg_query/include/postgres/postmaster/bgworker.h +8 -6
  274. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +3 -7
  275. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +3 -3
  276. data/ext/pg_query/include/postgres/postmaster/interrupt.h +1 -1
  277. data/ext/pg_query/include/postgres/postmaster/pgarch.h +2 -2
  278. data/ext/pg_query/include/postgres/postmaster/postmaster.h +25 -5
  279. data/ext/pg_query/include/postgres/postmaster/startup.h +2 -2
  280. data/ext/pg_query/include/postgres/postmaster/syslogger.h +2 -4
  281. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  282. data/ext/pg_query/include/postgres/postmaster/walwriter.h +2 -2
  283. data/ext/pg_query/include/postgres/regex/regex.h +92 -9
  284. data/ext/pg_query/include/postgres/replication/logicallauncher.h +1 -1
  285. data/ext/pg_query/include/postgres/replication/logicalproto.h +2 -2
  286. data/ext/pg_query/include/postgres/replication/logicalworker.h +2 -1
  287. data/ext/pg_query/include/postgres/replication/origin.h +1 -1
  288. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +27 -46
  289. data/ext/pg_query/include/postgres/replication/slot.h +45 -5
  290. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  291. data/ext/pg_query/include/postgres/replication/syncrep.h +1 -1
  292. data/ext/pg_query/include/postgres/replication/walreceiver.h +37 -11
  293. data/ext/pg_query/include/postgres/replication/walsender.h +5 -3
  294. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +1 -1
  295. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +7 -1
  296. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +2 -2
  297. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +1 -1
  298. data/ext/pg_query/include/postgres/storage/block.h +1 -1
  299. data/ext/pg_query/include/postgres/storage/buf.h +1 -1
  300. data/ext/pg_query/include/postgres/storage/bufmgr.h +59 -41
  301. data/ext/pg_query/include/postgres/storage/bufpage.h +1 -1
  302. data/ext/pg_query/include/postgres/storage/condition_variable.h +1 -1
  303. data/ext/pg_query/include/postgres/storage/dsm.h +1 -1
  304. data/ext/pg_query/include/postgres/storage/dsm_impl.h +2 -2
  305. data/ext/pg_query/include/postgres/storage/fd.h +30 -13
  306. data/ext/pg_query/include/postgres/storage/fileset.h +1 -1
  307. data/ext/pg_query/include/postgres/storage/ipc.h +4 -1
  308. data/ext/pg_query/include/postgres/storage/item.h +1 -1
  309. data/ext/pg_query/include/postgres/storage/itemid.h +1 -1
  310. data/ext/pg_query/include/postgres/storage/itemptr.h +1 -1
  311. data/ext/pg_query/include/postgres/storage/large_object.h +1 -1
  312. data/ext/pg_query/include/postgres/storage/latch.h +4 -2
  313. data/ext/pg_query/include/postgres/storage/lmgr.h +8 -2
  314. data/ext/pg_query/include/postgres/storage/lock.h +19 -19
  315. data/ext/pg_query/include/postgres/storage/lockdefs.h +3 -1
  316. data/ext/pg_query/include/postgres/storage/lwlock.h +17 -9
  317. data/ext/pg_query/include/postgres/storage/lwlocknames.h +7 -10
  318. data/ext/pg_query/include/postgres/storage/off.h +1 -1
  319. data/ext/pg_query/include/postgres/storage/pg_sema.h +1 -1
  320. data/ext/pg_query/include/postgres/storage/pg_shmem.h +5 -4
  321. data/ext/pg_query/include/postgres/storage/pmsignal.h +2 -2
  322. data/ext/pg_query/include/postgres/storage/predicate.h +1 -5
  323. data/ext/pg_query/include/postgres/storage/proc.h +48 -26
  324. data/ext/pg_query/include/postgres/storage/procarray.h +5 -1
  325. data/ext/pg_query/include/postgres/storage/proclist_types.h +11 -9
  326. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  327. data/ext/pg_query/include/postgres/storage/procsignal.h +8 -6
  328. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  329. data/ext/pg_query/include/postgres/storage/relfilelocator.h +16 -15
  330. data/ext/pg_query/include/postgres/storage/s_lock.h +7 -27
  331. data/ext/pg_query/include/postgres/storage/sharedfileset.h +1 -1
  332. data/ext/pg_query/include/postgres/storage/shm_mq.h +2 -2
  333. data/ext/pg_query/include/postgres/storage/shm_toc.h +1 -1
  334. data/ext/pg_query/include/postgres/storage/shmem.h +1 -1
  335. data/ext/pg_query/include/postgres/storage/sinval.h +3 -3
  336. data/ext/pg_query/include/postgres/storage/smgr.h +46 -29
  337. data/ext/pg_query/include/postgres/storage/spin.h +1 -1
  338. data/ext/pg_query/include/postgres/storage/standby.h +13 -3
  339. data/ext/pg_query/include/postgres/storage/standbydefs.h +2 -2
  340. data/ext/pg_query/include/postgres/storage/sync.h +4 -4
  341. data/ext/pg_query/include/postgres/tcop/cmdtag.h +1 -2
  342. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +3 -2
  343. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +2 -2
  344. data/ext/pg_query/include/postgres/tcop/dest.h +3 -2
  345. data/ext/pg_query/include/postgres/tcop/fastpath.h +1 -1
  346. data/ext/pg_query/include/postgres/tcop/pquery.h +1 -1
  347. data/ext/pg_query/include/postgres/tcop/tcopprot.h +9 -5
  348. data/ext/pg_query/include/postgres/tcop/utility.h +2 -2
  349. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +1 -1
  350. data/ext/pg_query/include/postgres/utils/acl.h +19 -7
  351. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +1 -1
  352. data/ext/pg_query/include/postgres/utils/array.h +1 -2
  353. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  354. data/ext/pg_query/include/postgres/utils/backend_progress.h +3 -2
  355. data/ext/pg_query/include/postgres/utils/backend_status.h +8 -10
  356. data/ext/pg_query/include/postgres/utils/builtins.h +4 -1
  357. data/ext/pg_query/include/postgres/utils/bytea.h +2 -2
  358. data/ext/pg_query/include/postgres/utils/catcache.h +6 -6
  359. data/ext/pg_query/include/postgres/utils/date.h +1 -1
  360. data/ext/pg_query/include/postgres/utils/datetime.h +4 -1
  361. data/ext/pg_query/include/postgres/utils/datum.h +1 -1
  362. data/ext/pg_query/include/postgres/utils/dsa.h +44 -5
  363. data/ext/pg_query/include/postgres/utils/elog.h +3 -8
  364. data/ext/pg_query/include/postgres/utils/errcodes.h +1 -3
  365. data/ext/pg_query/include/postgres/utils/expandeddatum.h +1 -1
  366. data/ext/pg_query/include/postgres/utils/expandedrecord.h +1 -1
  367. data/ext/pg_query/include/postgres/utils/float.h +1 -1
  368. data/ext/pg_query/include/postgres/utils/fmgroids.h +49 -16
  369. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +47 -14
  370. data/ext/pg_query/include/postgres/utils/fmgrtab.h +1 -1
  371. data/ext/pg_query/include/postgres/utils/guc.h +20 -6
  372. data/ext/pg_query/include/postgres/utils/guc_hooks.h +23 -2
  373. data/ext/pg_query/include/postgres/utils/guc_tables.h +6 -5
  374. data/ext/pg_query/include/postgres/utils/hsearch.h +2 -2
  375. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  376. data/ext/pg_query/include/postgres/utils/inval.h +1 -1
  377. data/ext/pg_query/include/postgres/utils/logtape.h +5 -5
  378. data/ext/pg_query/include/postgres/utils/lsyscache.h +6 -3
  379. data/ext/pg_query/include/postgres/utils/memdebug.h +1 -1
  380. data/ext/pg_query/include/postgres/utils/memutils.h +12 -5
  381. data/ext/pg_query/include/postgres/utils/memutils_internal.h +53 -13
  382. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +25 -9
  383. data/ext/pg_query/include/postgres/utils/numeric.h +6 -1
  384. data/ext/pg_query/include/postgres/utils/palloc.h +1 -15
  385. data/ext/pg_query/include/postgres/utils/partcache.h +1 -1
  386. data/ext/pg_query/include/postgres/utils/pg_locale.h +8 -7
  387. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +30 -17
  388. data/ext/pg_query/include/postgres/utils/plancache.h +5 -3
  389. data/ext/pg_query/include/postgres/utils/portal.h +10 -10
  390. data/ext/pg_query/include/postgres/utils/queryenvironment.h +2 -2
  391. data/ext/pg_query/include/postgres/utils/regproc.h +1 -1
  392. data/ext/pg_query/include/postgres/utils/rel.h +14 -15
  393. data/ext/pg_query/include/postgres/utils/relcache.h +2 -5
  394. data/ext/pg_query/include/postgres/utils/reltrigger.h +1 -1
  395. data/ext/pg_query/include/postgres/utils/resowner.h +90 -9
  396. data/ext/pg_query/include/postgres/utils/ruleutils.h +1 -1
  397. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +1 -1
  398. data/ext/pg_query/include/postgres/utils/snapmgr.h +1 -52
  399. data/ext/pg_query/include/postgres/utils/snapshot.h +2 -2
  400. data/ext/pg_query/include/postgres/utils/sortsupport.h +1 -1
  401. data/ext/pg_query/include/postgres/utils/syscache.h +7 -98
  402. data/ext/pg_query/include/postgres/utils/timeout.h +3 -2
  403. data/ext/pg_query/include/postgres/utils/timestamp.h +1 -1
  404. data/ext/pg_query/include/postgres/utils/tuplesort.h +36 -9
  405. data/ext/pg_query/include/postgres/utils/tuplestore.h +2 -5
  406. data/ext/pg_query/include/postgres/utils/typcache.h +2 -1
  407. data/ext/pg_query/include/postgres/utils/varlena.h +1 -1
  408. data/ext/pg_query/include/postgres/utils/wait_event.h +28 -214
  409. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  410. data/ext/pg_query/include/postgres/utils/xml.h +4 -4
  411. data/ext/pg_query/include/postgres/varatt.h +1 -1
  412. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1546 -792
  413. data/ext/pg_query/include/protobuf/pg_query.pb.h +58365 -46595
  414. data/ext/pg_query/pg_query.pb-c.c +6598 -3739
  415. data/ext/pg_query/pg_query_normalize.c +42 -1
  416. data/ext/pg_query/pg_query_outfuncs_json.c +3 -1
  417. data/ext/pg_query/pg_query_parse_plpgsql.c +12 -13
  418. data/ext/pg_query/pg_query_readfuncs_protobuf.c +2 -2
  419. data/ext/pg_query/pg_query_scan.c +1 -1
  420. data/ext/pg_query/postgres_deparse.c +601 -172
  421. data/ext/pg_query/src_backend_catalog_namespace.c +241 -66
  422. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
  423. data/ext/pg_query/src_backend_commands_define.c +2 -3
  424. data/ext/pg_query/src_backend_nodes_bitmapset.c +137 -94
  425. data/ext/pg_query/src_backend_nodes_copyfuncs.c +1 -1
  426. data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -1
  427. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  428. data/ext/pg_query/src_backend_nodes_list.c +3 -7
  429. data/ext/pg_query/src_backend_nodes_makefuncs.c +59 -20
  430. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +109 -2
  431. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  432. data/ext/pg_query/src_backend_parser_gram.c +34491 -32136
  433. data/ext/pg_query/src_backend_parser_parser.c +8 -8
  434. data/ext/pg_query/src_backend_parser_scan.c +5637 -3028
  435. data/ext/pg_query/src_backend_parser_scansup.c +2 -1
  436. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  437. data/ext/pg_query/src_backend_tcop_postgres.c +34 -10
  438. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
  439. data/ext/pg_query/src_backend_utils_adt_datum.c +8 -6
  440. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  441. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  442. data/ext/pg_query/src_backend_utils_adt_numutils.c +4 -5
  443. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +101 -28
  444. data/ext/pg_query/src_backend_utils_error_assert.c +1 -1
  445. data/ext/pg_query/src_backend_utils_error_elog.c +47 -42
  446. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +4 -2
  447. data/ext/pg_query/src_backend_utils_init_globals.c +15 -3
  448. data/ext/pg_query/src_backend_utils_mb_mbutils.c +11 -18
  449. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +16 -6
  450. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +8 -5
  451. data/ext/pg_query/src_backend_utils_mmgr_aset.c +308 -238
  452. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  453. data/ext/pg_query/src_backend_utils_mmgr_generation.c +273 -197
  454. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +270 -215
  455. data/ext/pg_query/src_backend_utils_mmgr_slab.c +154 -96
  456. data/ext/pg_query/src_common_encnames.c +43 -44
  457. data/ext/pg_query/src_common_hashfn.c +1 -1
  458. data/ext/pg_query/src_common_keywords.c +1 -1
  459. data/ext/pg_query/src_common_kwlist_d.h +511 -466
  460. data/ext/pg_query/src_common_kwlookup.c +1 -1
  461. data/ext/pg_query/src_common_psprintf.c +3 -3
  462. data/ext/pg_query/src_common_stringinfo.c +18 -1
  463. data/ext/pg_query/src_common_wchar.c +92 -109
  464. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
  465. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -1
  466. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +242 -143
  467. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  468. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  469. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
  470. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +1 -1
  471. data/ext/pg_query/src_port_pg_bitutils.c +173 -28
  472. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  473. data/ext/pg_query/src_port_snprintf.c +15 -18
  474. data/ext/pg_query/src_port_strerror.c +1 -3
  475. data/ext/pg_query/src_port_strlcpy.c +1 -1
  476. data/lib/pg_query/fingerprint.rb +3 -5
  477. data/lib/pg_query/param_refs.rb +2 -2
  478. data/lib/pg_query/parse.rb +5 -7
  479. data/lib/pg_query/parse_error.rb +1 -0
  480. data/lib/pg_query/pg_query_pb.rb +27 -25
  481. data/lib/pg_query/scan.rb +1 -0
  482. data/lib/pg_query/treewalker.rb +38 -15
  483. data/lib/pg_query/truncate.rb +18 -20
  484. data/lib/pg_query/version.rb +1 -1
  485. metadata +31 -82
  486. data/ext/pg_query/include/postgres/storage/backendid.h +0 -37
  487. data/ext/pg_query/include/postgres/storage/sinvaladt.h +0 -45
  488. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  489. data/ext/pg_query/src_backend_nodes_nodes.c +0 -38
  490. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
@@ -4,7 +4,7 @@
4
4
  * definitions for nodes/print.c
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/nodes/print.h
@@ -3,7 +3,7 @@
3
3
  * queryjumble.h
4
4
  * Query normalization and fingerprinting.
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * IDENTIFICATION
@@ -56,7 +56,7 @@ enum ComputeQueryIdType
56
56
  COMPUTE_QUERY_ID_OFF,
57
57
  COMPUTE_QUERY_ID_ON,
58
58
  COMPUTE_QUERY_ID_AUTO,
59
- COMPUTE_QUERY_ID_REGRESS
59
+ COMPUTE_QUERY_ID_REGRESS,
60
60
  };
61
61
 
62
62
  /* GUC parameters */
@@ -4,7 +4,7 @@
4
4
  * definitions for replication grammar parse nodes
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/nodes/replnodes.h
@@ -20,7 +20,7 @@
20
20
  typedef enum ReplicationKind
21
21
  {
22
22
  REPLICATION_KIND_PHYSICAL,
23
- REPLICATION_KIND_LOGICAL
23
+ REPLICATION_KIND_LOGICAL,
24
24
  } ReplicationKind;
25
25
 
26
26
 
@@ -72,6 +72,18 @@ typedef struct DropReplicationSlotCmd
72
72
  } DropReplicationSlotCmd;
73
73
 
74
74
 
75
+ /* ----------------------
76
+ * ALTER_REPLICATION_SLOT command
77
+ * ----------------------
78
+ */
79
+ typedef struct AlterReplicationSlotCmd
80
+ {
81
+ NodeTag type;
82
+ char *slotname;
83
+ List *options;
84
+ } AlterReplicationSlotCmd;
85
+
86
+
75
87
  /* ----------------------
76
88
  * START_REPLICATION command
77
89
  * ----------------------
@@ -108,4 +120,13 @@ typedef struct TimeLineHistoryCmd
108
120
  TimeLineID timeline;
109
121
  } TimeLineHistoryCmd;
110
122
 
123
+ /* ----------------------
124
+ * UPLOAD_MANIFEST command
125
+ * ----------------------
126
+ */
127
+ typedef struct UploadManifestCmd
128
+ {
129
+ NodeTag type;
130
+ } UploadManifestCmd;
131
+
111
132
  #endif /* REPLNODES_H */
@@ -23,7 +23,7 @@
23
23
  * allows for future extensions of the set of request cases.
24
24
  *
25
25
  *
26
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
26
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
27
27
  * Portions Copyright (c) 1994, Regents of the University of California
28
28
  *
29
29
  * src/include/nodes/supportnodes.h
@@ -13,7 +13,7 @@
13
13
  * fact that a particular page needs to be visited.
14
14
  *
15
15
  *
16
- * Copyright (c) 2003-2023, PostgreSQL Global Development Group
16
+ * Copyright (c) 2003-2024, PostgreSQL Global Development Group
17
17
  *
18
18
  * src/include/nodes/tidbitmap.h
19
19
  *
@@ -4,7 +4,7 @@
4
4
  * interface for value nodes
5
5
  *
6
6
  *
7
- * Copyright (c) 2003-2023, PostgreSQL Global Development Group
7
+ * Copyright (c) 2003-2024, PostgreSQL Global Development Group
8
8
  *
9
9
  * src/include/nodes/value.h
10
10
  *
@@ -4,7 +4,7 @@
4
4
  * prototypes for costsize.c and clausesel.c.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, 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
@@ -37,7 +37,7 @@ typedef enum
37
37
  {
38
38
  CONSTRAINT_EXCLUSION_OFF, /* do not use c_e */
39
39
  CONSTRAINT_EXCLUSION_ON, /* apply c_e to all rels */
40
- CONSTRAINT_EXCLUSION_PARTITION /* apply c_e to otherrels only */
40
+ CONSTRAINT_EXCLUSION_PARTITION, /* apply c_e to otherrels only */
41
41
  } ConstraintExclusionType;
42
42
 
43
43
 
@@ -131,7 +131,7 @@ extern void cost_agg(Path *path, PlannerInfo *root,
131
131
  Cost input_startup_cost, Cost input_total_cost,
132
132
  double input_tuples, double input_width);
133
133
  extern void cost_windowagg(Path *path, PlannerInfo *root,
134
- List *windowFuncs, int numPartCols, int numOrderCols,
134
+ List *windowFuncs, WindowClause *winclause,
135
135
  Cost input_startup_cost, Cost input_total_cost,
136
136
  double input_tuples);
137
137
  extern void cost_group(Path *path, PlannerInfo *root,
@@ -210,6 +210,7 @@ extern void set_result_size_estimates(PlannerInfo *root, RelOptInfo *rel);
210
210
  extern void set_foreign_size_estimates(PlannerInfo *root, RelOptInfo *rel);
211
211
  extern PathTarget *set_pathtarget_cost_width(PlannerInfo *root, PathTarget *target);
212
212
  extern double compute_bitmap_pages(PlannerInfo *root, RelOptInfo *baserel,
213
- Path *bitmapqual, int loop_count, Cost *cost, double *tuple);
213
+ Path *bitmapqual, double loop_count,
214
+ Cost *cost_p, double *tuples_p);
214
215
 
215
216
  #endif /* COST_H */
@@ -3,7 +3,7 @@
3
3
  * geqo.h
4
4
  * prototypes for various files in optimizer/geqo
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, 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
@@ -3,7 +3,7 @@
3
3
  * geqo_gene.h
4
4
  * genome representation in optimizer/geqo
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, 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-2023, PostgreSQL Global Development Group
15
+ * Portions Copyright (c) 1996-2024, 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
@@ -90,6 +90,7 @@ extern PGDLLIMPORT double recursive_worktable_factor;
90
90
  extern PGDLLIMPORT int effective_cache_size;
91
91
 
92
92
  extern double clamp_row_est(double nrows);
93
+ extern int32 clamp_width_est(int64 tuple_width);
93
94
  extern long clamp_cardinality_to_long(Cardinality x);
94
95
 
95
96
  /* in path/indxpath.c: */
@@ -104,7 +105,7 @@ typedef enum
104
105
  {
105
106
  DEBUG_PARALLEL_OFF,
106
107
  DEBUG_PARALLEL_ON,
107
- DEBUG_PARALLEL_REGRESS
108
+ DEBUG_PARALLEL_REGRESS,
108
109
  } DebugParallelMode;
109
110
 
110
111
  /* GUC parameters */
@@ -138,7 +139,9 @@ extern Expr *canonicalize_qual(Expr *qual, bool is_check);
138
139
  /* in util/clauses.c: */
139
140
 
140
141
  extern bool contain_mutable_functions(Node *clause);
142
+ extern bool contain_mutable_functions_after_planning(Expr *expr);
141
143
  extern bool contain_volatile_functions(Node *clause);
144
+ extern bool contain_volatile_functions_after_planning(Expr *expr);
142
145
  extern bool contain_volatile_functions_not_nextval(Node *clause);
143
146
 
144
147
  extern Node *eval_const_expressions(PlannerInfo *root, Node *node);
@@ -4,7 +4,7 @@
4
4
  * prototypes for various files in optimizer/path
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, 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
@@ -24,6 +24,7 @@ extern PGDLLIMPORT bool enable_geqo;
24
24
  extern PGDLLIMPORT int geqo_threshold;
25
25
  extern PGDLLIMPORT int min_parallel_table_scan_size;
26
26
  extern PGDLLIMPORT int min_parallel_index_scan_size;
27
+ extern PGDLLIMPORT bool enable_group_by_reordering;
27
28
 
28
29
  /* Hook for plugins to get control in set_rel_pathlist() */
29
30
  typedef void (*set_rel_pathlist_hook_type) (PlannerInfo *root,
@@ -63,10 +64,6 @@ extern void create_partial_bitmap_paths(PlannerInfo *root, RelOptInfo *rel,
63
64
  extern void generate_partitionwise_join_paths(PlannerInfo *root,
64
65
  RelOptInfo *rel);
65
66
 
66
- #ifdef OPTIMIZER_DEBUG
67
- extern void debug_print_rel(PlannerInfo *root, RelOptInfo *rel);
68
- #endif
69
-
70
67
  /*
71
68
  * indxpath.c
72
69
  * routines to generate index paths
@@ -83,7 +80,7 @@ extern bool match_index_to_operand(Node *operand, int indexcol,
83
80
  extern void check_index_predicates(PlannerInfo *root, RelOptInfo *rel);
84
81
 
85
82
  /*
86
- * tidpath.h
83
+ * tidpath.c
87
84
  * routines to generate tid paths
88
85
  */
89
86
  extern void create_tidscan_paths(PlannerInfo *root, RelOptInfo *rel);
@@ -112,6 +109,8 @@ extern bool have_join_order_restriction(PlannerInfo *root,
112
109
  extern bool have_dangerous_phv(PlannerInfo *root,
113
110
  Relids outer_relids, Relids inner_params);
114
111
  extern void mark_dummy_rel(RelOptInfo *rel);
112
+ extern void init_dummy_sjinfo(SpecialJoinInfo *sjinfo, Relids left_relids,
113
+ Relids right_relids);
115
114
 
116
115
  /*
117
116
  * equivclass.c
@@ -174,6 +173,10 @@ extern void add_child_join_rel_equivalences(PlannerInfo *root,
174
173
  AppendRelInfo **appinfos,
175
174
  RelOptInfo *parent_joinrel,
176
175
  RelOptInfo *child_joinrel);
176
+ extern void add_setop_child_rel_equivalences(PlannerInfo *root,
177
+ RelOptInfo *child_rel,
178
+ List *child_tlist,
179
+ List *setop_pathkeys);
177
180
  extern List *generate_implied_equalities_for_column(PlannerInfo *root,
178
181
  RelOptInfo *rel,
179
182
  ec_matches_callback_type callback,
@@ -199,12 +202,13 @@ typedef enum
199
202
  PATHKEYS_EQUAL, /* pathkeys are identical */
200
203
  PATHKEYS_BETTER1, /* pathkey 1 is a superset of pathkey 2 */
201
204
  PATHKEYS_BETTER2, /* vice versa */
202
- PATHKEYS_DIFFERENT /* neither pathkey includes the other */
205
+ PATHKEYS_DIFFERENT, /* neither pathkey includes the other */
203
206
  } PathKeysComparison;
204
207
 
205
208
  extern PathKeysComparison compare_pathkeys(List *keys1, List *keys2);
206
209
  extern bool pathkeys_contained_in(List *keys1, List *keys2);
207
210
  extern bool pathkeys_count_contained_in(List *keys1, List *keys2, int *n_common);
211
+ extern List *get_useful_group_keys_orderings(PlannerInfo *root, Path *path);
208
212
  extern Path *get_cheapest_path_for_pathkeys(List *paths, List *pathkeys,
209
213
  Relids required_outer,
210
214
  CostSelector cost_criterion,
@@ -235,7 +239,8 @@ extern List *make_pathkeys_for_sortclauses_extended(PlannerInfo *root,
235
239
  List **sortclauses,
236
240
  List *tlist,
237
241
  bool remove_redundant,
238
- bool *sortable);
242
+ bool *sortable,
243
+ bool set_ec_sortref);
239
244
  extern void initialize_mergeclause_eclasses(PlannerInfo *root,
240
245
  RestrictInfo *restrictinfo);
241
246
  extern void update_mergeclause_eclasses(PlannerInfo *root,
@@ -4,7 +4,7 @@
4
4
  * prototypes for various files in optimizer/plan
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, 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
@@ -75,6 +75,10 @@ extern void add_vars_to_targetlist(PlannerInfo *root, List *vars,
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
+ extern bool restriction_is_always_true(PlannerInfo *root,
79
+ RestrictInfo *restrictinfo);
80
+ extern bool restriction_is_always_false(PlannerInfo *root,
81
+ RestrictInfo *restrictinfo);
78
82
  extern void distribute_restrictinfo_to_rels(PlannerInfo *root,
79
83
  RestrictInfo *restrictinfo);
80
84
  extern RestrictInfo *process_implied_equality(PlannerInfo *root,
@@ -110,6 +114,8 @@ extern bool innerrel_is_unique(PlannerInfo *root,
110
114
  */
111
115
  extern Plan *set_plan_references(PlannerInfo *root, Plan *plan);
112
116
  extern bool trivial_subqueryscan(SubqueryScan *plan);
117
+ extern Param *find_minmax_agg_replacement_param(PlannerInfo *root,
118
+ Aggref *aggref);
113
119
  extern void record_plan_function_dependency(PlannerInfo *root, Oid funcid);
114
120
  extern void record_plan_type_dependency(PlannerInfo *root, Oid typid);
115
121
  extern bool extract_query_dependencies_walker(Node *node, PlannerInfo *context);
@@ -4,7 +4,7 @@
4
4
  * parse analysis for optimizable statements
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, 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
@@ -44,6 +44,8 @@ extern List *transformInsertRow(ParseState *pstate, List *exprlist,
44
44
  bool strip_indirection);
45
45
  extern List *transformUpdateTargetList(ParseState *pstate,
46
46
  List *origTlist);
47
+ extern List *transformReturningList(ParseState *pstate, List *returningList,
48
+ ParseExprKind exprKind);
47
49
  extern Query *transformTopLevelStmt(ParseState *pstate, RawStmt *parseTree);
48
50
  extern Query *transformStmt(ParseState *pstate, Node *parseTree);
49
51
 
@@ -7,7 +7,7 @@
7
7
  * by the PG_KEYWORD macro, which is not defined in this file; it can
8
8
  * be defined by the caller for special purposes.
9
9
  *
10
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * IDENTIFICATION
@@ -93,6 +93,7 @@ PG_KEYWORD("commit", COMMIT, UNRESERVED_KEYWORD, BARE_LABEL)
93
93
  PG_KEYWORD("committed", COMMITTED, UNRESERVED_KEYWORD, BARE_LABEL)
94
94
  PG_KEYWORD("compression", COMPRESSION, UNRESERVED_KEYWORD, BARE_LABEL)
95
95
  PG_KEYWORD("concurrently", CONCURRENTLY, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
96
+ PG_KEYWORD("conditional", CONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL)
96
97
  PG_KEYWORD("configuration", CONFIGURATION, UNRESERVED_KEYWORD, BARE_LABEL)
97
98
  PG_KEYWORD("conflict", CONFLICT, UNRESERVED_KEYWORD, BARE_LABEL)
98
99
  PG_KEYWORD("connection", CONNECTION, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -147,11 +148,13 @@ PG_KEYWORD("double", DOUBLE_P, UNRESERVED_KEYWORD, BARE_LABEL)
147
148
  PG_KEYWORD("drop", DROP, UNRESERVED_KEYWORD, BARE_LABEL)
148
149
  PG_KEYWORD("each", EACH, UNRESERVED_KEYWORD, BARE_LABEL)
149
150
  PG_KEYWORD("else", ELSE, RESERVED_KEYWORD, BARE_LABEL)
151
+ PG_KEYWORD("empty", EMPTY_P, UNRESERVED_KEYWORD, BARE_LABEL)
150
152
  PG_KEYWORD("enable", ENABLE_P, UNRESERVED_KEYWORD, BARE_LABEL)
151
153
  PG_KEYWORD("encoding", ENCODING, UNRESERVED_KEYWORD, BARE_LABEL)
152
154
  PG_KEYWORD("encrypted", ENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL)
153
155
  PG_KEYWORD("end", END_P, RESERVED_KEYWORD, BARE_LABEL)
154
156
  PG_KEYWORD("enum", ENUM_P, UNRESERVED_KEYWORD, BARE_LABEL)
157
+ PG_KEYWORD("error", ERROR_P, UNRESERVED_KEYWORD, BARE_LABEL)
155
158
  PG_KEYWORD("escape", ESCAPE, UNRESERVED_KEYWORD, BARE_LABEL)
156
159
  PG_KEYWORD("event", EVENT, UNRESERVED_KEYWORD, BARE_LABEL)
157
160
  PG_KEYWORD("except", EXCEPT, RESERVED_KEYWORD, AS_LABEL)
@@ -230,11 +233,18 @@ PG_KEYWORD("is", IS, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
230
233
  PG_KEYWORD("isnull", ISNULL, TYPE_FUNC_NAME_KEYWORD, AS_LABEL)
231
234
  PG_KEYWORD("isolation", ISOLATION, UNRESERVED_KEYWORD, BARE_LABEL)
232
235
  PG_KEYWORD("join", JOIN, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
233
- PG_KEYWORD("json", JSON, UNRESERVED_KEYWORD, BARE_LABEL)
236
+ PG_KEYWORD("json", JSON, COL_NAME_KEYWORD, BARE_LABEL)
234
237
  PG_KEYWORD("json_array", JSON_ARRAY, COL_NAME_KEYWORD, BARE_LABEL)
235
238
  PG_KEYWORD("json_arrayagg", JSON_ARRAYAGG, COL_NAME_KEYWORD, BARE_LABEL)
239
+ PG_KEYWORD("json_exists", JSON_EXISTS, COL_NAME_KEYWORD, BARE_LABEL)
236
240
  PG_KEYWORD("json_object", JSON_OBJECT, COL_NAME_KEYWORD, BARE_LABEL)
237
241
  PG_KEYWORD("json_objectagg", JSON_OBJECTAGG, COL_NAME_KEYWORD, BARE_LABEL)
242
+ PG_KEYWORD("json_query", JSON_QUERY, COL_NAME_KEYWORD, BARE_LABEL)
243
+ PG_KEYWORD("json_scalar", JSON_SCALAR, COL_NAME_KEYWORD, BARE_LABEL)
244
+ PG_KEYWORD("json_serialize", JSON_SERIALIZE, COL_NAME_KEYWORD, BARE_LABEL)
245
+ PG_KEYWORD("json_table", JSON_TABLE, COL_NAME_KEYWORD, BARE_LABEL)
246
+ PG_KEYWORD("json_value", JSON_VALUE, COL_NAME_KEYWORD, BARE_LABEL)
247
+ PG_KEYWORD("keep", KEEP, UNRESERVED_KEYWORD, BARE_LABEL)
238
248
  PG_KEYWORD("key", KEY, UNRESERVED_KEYWORD, BARE_LABEL)
239
249
  PG_KEYWORD("keys", KEYS, UNRESERVED_KEYWORD, BARE_LABEL)
240
250
  PG_KEYWORD("label", LABEL, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -264,6 +274,7 @@ PG_KEYWORD("matched", MATCHED, UNRESERVED_KEYWORD, BARE_LABEL)
264
274
  PG_KEYWORD("materialized", MATERIALIZED, UNRESERVED_KEYWORD, BARE_LABEL)
265
275
  PG_KEYWORD("maxvalue", MAXVALUE, UNRESERVED_KEYWORD, BARE_LABEL)
266
276
  PG_KEYWORD("merge", MERGE, UNRESERVED_KEYWORD, BARE_LABEL)
277
+ PG_KEYWORD("merge_action", MERGE_ACTION, COL_NAME_KEYWORD, BARE_LABEL)
267
278
  PG_KEYWORD("method", METHOD, UNRESERVED_KEYWORD, BARE_LABEL)
268
279
  PG_KEYWORD("minute", MINUTE_P, UNRESERVED_KEYWORD, AS_LABEL)
269
280
  PG_KEYWORD("minvalue", MINVALUE, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -275,6 +286,7 @@ PG_KEYWORD("names", NAMES, UNRESERVED_KEYWORD, BARE_LABEL)
275
286
  PG_KEYWORD("national", NATIONAL, COL_NAME_KEYWORD, BARE_LABEL)
276
287
  PG_KEYWORD("natural", NATURAL, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
277
288
  PG_KEYWORD("nchar", NCHAR, COL_NAME_KEYWORD, BARE_LABEL)
289
+ PG_KEYWORD("nested", NESTED, UNRESERVED_KEYWORD, BARE_LABEL)
278
290
  PG_KEYWORD("new", NEW, UNRESERVED_KEYWORD, BARE_LABEL)
279
291
  PG_KEYWORD("next", NEXT, UNRESERVED_KEYWORD, BARE_LABEL)
280
292
  PG_KEYWORD("nfc", NFC, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -300,6 +312,7 @@ PG_KEYWORD("off", OFF, UNRESERVED_KEYWORD, BARE_LABEL)
300
312
  PG_KEYWORD("offset", OFFSET, RESERVED_KEYWORD, AS_LABEL)
301
313
  PG_KEYWORD("oids", OIDS, UNRESERVED_KEYWORD, BARE_LABEL)
302
314
  PG_KEYWORD("old", OLD, UNRESERVED_KEYWORD, BARE_LABEL)
315
+ PG_KEYWORD("omit", OMIT, UNRESERVED_KEYWORD, BARE_LABEL)
303
316
  PG_KEYWORD("on", ON, RESERVED_KEYWORD, AS_LABEL)
304
317
  PG_KEYWORD("only", ONLY, RESERVED_KEYWORD, BARE_LABEL)
305
318
  PG_KEYWORD("operator", OPERATOR, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -324,7 +337,9 @@ PG_KEYWORD("partial", PARTIAL, UNRESERVED_KEYWORD, BARE_LABEL)
324
337
  PG_KEYWORD("partition", PARTITION, UNRESERVED_KEYWORD, BARE_LABEL)
325
338
  PG_KEYWORD("passing", PASSING, UNRESERVED_KEYWORD, BARE_LABEL)
326
339
  PG_KEYWORD("password", PASSWORD, UNRESERVED_KEYWORD, BARE_LABEL)
340
+ PG_KEYWORD("path", PATH, UNRESERVED_KEYWORD, BARE_LABEL)
327
341
  PG_KEYWORD("placing", PLACING, RESERVED_KEYWORD, BARE_LABEL)
342
+ PG_KEYWORD("plan", PLAN, UNRESERVED_KEYWORD, BARE_LABEL)
328
343
  PG_KEYWORD("plans", PLANS, UNRESERVED_KEYWORD, BARE_LABEL)
329
344
  PG_KEYWORD("policy", POLICY, UNRESERVED_KEYWORD, BARE_LABEL)
330
345
  PG_KEYWORD("position", POSITION, COL_NAME_KEYWORD, BARE_LABEL)
@@ -342,6 +357,7 @@ PG_KEYWORD("procedures", PROCEDURES, UNRESERVED_KEYWORD, BARE_LABEL)
342
357
  PG_KEYWORD("program", PROGRAM, UNRESERVED_KEYWORD, BARE_LABEL)
343
358
  PG_KEYWORD("publication", PUBLICATION, UNRESERVED_KEYWORD, BARE_LABEL)
344
359
  PG_KEYWORD("quote", QUOTE, UNRESERVED_KEYWORD, BARE_LABEL)
360
+ PG_KEYWORD("quotes", QUOTES, UNRESERVED_KEYWORD, BARE_LABEL)
345
361
  PG_KEYWORD("range", RANGE, UNRESERVED_KEYWORD, BARE_LABEL)
346
362
  PG_KEYWORD("read", READ, UNRESERVED_KEYWORD, BARE_LABEL)
347
363
  PG_KEYWORD("real", REAL, COL_NAME_KEYWORD, BARE_LABEL)
@@ -401,6 +417,7 @@ PG_KEYWORD("skip", SKIP, UNRESERVED_KEYWORD, BARE_LABEL)
401
417
  PG_KEYWORD("smallint", SMALLINT, COL_NAME_KEYWORD, BARE_LABEL)
402
418
  PG_KEYWORD("snapshot", SNAPSHOT, UNRESERVED_KEYWORD, BARE_LABEL)
403
419
  PG_KEYWORD("some", SOME, RESERVED_KEYWORD, BARE_LABEL)
420
+ PG_KEYWORD("source", SOURCE, UNRESERVED_KEYWORD, BARE_LABEL)
404
421
  PG_KEYWORD("sql", SQL_P, UNRESERVED_KEYWORD, BARE_LABEL)
405
422
  PG_KEYWORD("stable", STABLE, UNRESERVED_KEYWORD, BARE_LABEL)
406
423
  PG_KEYWORD("standalone", STANDALONE_P, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -412,6 +429,7 @@ PG_KEYWORD("stdout", STDOUT, UNRESERVED_KEYWORD, BARE_LABEL)
412
429
  PG_KEYWORD("storage", STORAGE, UNRESERVED_KEYWORD, BARE_LABEL)
413
430
  PG_KEYWORD("stored", STORED, UNRESERVED_KEYWORD, BARE_LABEL)
414
431
  PG_KEYWORD("strict", STRICT_P, UNRESERVED_KEYWORD, BARE_LABEL)
432
+ PG_KEYWORD("string", STRING_P, UNRESERVED_KEYWORD, BARE_LABEL)
415
433
  PG_KEYWORD("strip", STRIP_P, UNRESERVED_KEYWORD, BARE_LABEL)
416
434
  PG_KEYWORD("subscription", SUBSCRIPTION, UNRESERVED_KEYWORD, BARE_LABEL)
417
435
  PG_KEYWORD("substring", SUBSTRING, COL_NAME_KEYWORD, BARE_LABEL)
@@ -424,6 +442,7 @@ PG_KEYWORD("table", TABLE, RESERVED_KEYWORD, BARE_LABEL)
424
442
  PG_KEYWORD("tables", TABLES, UNRESERVED_KEYWORD, BARE_LABEL)
425
443
  PG_KEYWORD("tablesample", TABLESAMPLE, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
426
444
  PG_KEYWORD("tablespace", TABLESPACE, UNRESERVED_KEYWORD, BARE_LABEL)
445
+ PG_KEYWORD("target", TARGET, UNRESERVED_KEYWORD, BARE_LABEL)
427
446
  PG_KEYWORD("temp", TEMP, UNRESERVED_KEYWORD, BARE_LABEL)
428
447
  PG_KEYWORD("template", TEMPLATE, UNRESERVED_KEYWORD, BARE_LABEL)
429
448
  PG_KEYWORD("temporary", TEMPORARY, UNRESERVED_KEYWORD, BARE_LABEL)
@@ -447,6 +466,7 @@ PG_KEYWORD("types", TYPES_P, UNRESERVED_KEYWORD, BARE_LABEL)
447
466
  PG_KEYWORD("uescape", UESCAPE, UNRESERVED_KEYWORD, BARE_LABEL)
448
467
  PG_KEYWORD("unbounded", UNBOUNDED, UNRESERVED_KEYWORD, BARE_LABEL)
449
468
  PG_KEYWORD("uncommitted", UNCOMMITTED, UNRESERVED_KEYWORD, BARE_LABEL)
469
+ PG_KEYWORD("unconditional", UNCONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL)
450
470
  PG_KEYWORD("unencrypted", UNENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL)
451
471
  PG_KEYWORD("union", UNION, RESERVED_KEYWORD, AS_LABEL)
452
472
  PG_KEYWORD("unique", UNIQUE, RESERVED_KEYWORD, BARE_LABEL)
@@ -3,7 +3,7 @@
3
3
  * parse_agg.h
4
4
  * handle aggregates and window functions in parser
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/parser/parse_agg.h
@@ -4,7 +4,7 @@
4
4
  * Routines for type coercion.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/parser/parse_coerce.h
@@ -27,7 +27,7 @@ typedef enum CoercionPathType
27
27
  COERCION_PATH_FUNC, /* apply the specified coercion function */
28
28
  COERCION_PATH_RELABELTYPE, /* binary-compatible cast, no function */
29
29
  COERCION_PATH_ARRAYCOERCE, /* need an ArrayCoerceExpr node */
30
- COERCION_PATH_COERCEVIAIO /* need a CoerceViaIO node */
30
+ COERCION_PATH_COERCEVIAIO, /* need a CoerceViaIO node */
31
31
  } CoercionPathType;
32
32
 
33
33
 
@@ -63,6 +63,9 @@ extern Node *coerce_to_specific_type_typmod(ParseState *pstate, Node *node,
63
63
  Oid targetTypeId, int32 targetTypmod,
64
64
  const char *constructName);
65
65
 
66
+ extern Node *coerce_null_to_domain(Oid typid, int32 typmod, Oid collation,
67
+ int typlen, bool typbyval);
68
+
66
69
  extern int parser_coercion_errposition(ParseState *pstate,
67
70
  int coerce_location,
68
71
  Node *input_expr);
@@ -3,7 +3,7 @@
3
3
  * parse_expr.h
4
4
  * handle expressions in parser
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/parser/parse_expr.h
@@ -4,7 +4,7 @@
4
4
  *
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/parser/parse_func.h
@@ -27,7 +27,7 @@ typedef enum
27
27
  FUNCDETAIL_PROCEDURE, /* found a matching procedure */
28
28
  FUNCDETAIL_AGGREGATE, /* found a matching aggregate function */
29
29
  FUNCDETAIL_WINDOWFUNC, /* found a matching window function */
30
- FUNCDETAIL_COERCION /* it's a type coercion request */
30
+ FUNCDETAIL_COERCION, /* it's a type coercion request */
31
31
  } FuncDetailCode;
32
32
 
33
33
 
@@ -4,7 +4,7 @@
4
4
  * Internal definitions for parser
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/parser/parse_node.h
@@ -61,7 +61,8 @@ typedef enum ParseExprKind
61
61
  EXPR_KIND_DISTINCT_ON, /* DISTINCT ON */
62
62
  EXPR_KIND_LIMIT, /* LIMIT */
63
63
  EXPR_KIND_OFFSET, /* OFFSET */
64
- EXPR_KIND_RETURNING, /* RETURNING */
64
+ EXPR_KIND_RETURNING, /* RETURNING in INSERT/UPDATE/DELETE */
65
+ EXPR_KIND_MERGE_RETURNING, /* RETURNING in MERGE */
65
66
  EXPR_KIND_VALUES, /* VALUES */
66
67
  EXPR_KIND_VALUES_SINGLE, /* single-row VALUES (in INSERT only) */
67
68
  EXPR_KIND_CHECK_CONSTRAINT, /* CHECK constraint for a table */
@@ -4,7 +4,7 @@
4
4
  * handle operator things for parser
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/parser/parse_oper.h
@@ -42,6 +42,9 @@ extern Operator compatible_oper(ParseState *pstate, List *op,
42
42
 
43
43
  /* currently no need for compatible_left_oper/compatible_right_oper */
44
44
 
45
+ /* Error reporting support */
46
+ extern const char *op_signature_string(List *op, Oid arg1, Oid arg2);
47
+
45
48
  /* Routines for identifying "<", "=", ">" operators for a type */
46
49
  extern void get_sort_group_operators(Oid argtype,
47
50
  bool needLT, bool needEQ, bool needGT,
@@ -4,7 +4,7 @@
4
4
  * prototypes for parse_relation.c.
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/parser/parse_relation.h
@@ -3,7 +3,7 @@
3
3
  * parse_type.h
4
4
  * handle type operations for parser
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/parser/parse_type.h
@@ -36,7 +36,7 @@ extern char *TypeNameToString(const TypeName *typeName);
36
36
  extern char *TypeNameListToString(List *typenames);
37
37
 
38
38
  extern Oid LookupCollation(ParseState *pstate, List *collnames, int location);
39
- extern Oid GetColumnDefCollation(ParseState *pstate, ColumnDef *coldef, Oid typeOid);
39
+ extern Oid GetColumnDefCollation(ParseState *pstate, const ColumnDef *coldef, Oid typeOid);
40
40
 
41
41
  extern Type typeidType(Oid id);
42
42
 
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * This is the external API for the raw lexing/parsing functions.
7
7
  *
8
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/parser/parser.h
@@ -41,7 +41,7 @@ typedef enum
41
41
  RAW_PARSE_PLPGSQL_EXPR,
42
42
  RAW_PARSE_PLPGSQL_ASSIGN1,
43
43
  RAW_PARSE_PLPGSQL_ASSIGN2,
44
- RAW_PARSE_PLPGSQL_ASSIGN3
44
+ RAW_PARSE_PLPGSQL_ASSIGN3,
45
45
  } RawParseMode;
46
46
 
47
47
  /* Values for the backslash_quote GUC */
@@ -49,7 +49,7 @@ typedef enum
49
49
  {
50
50
  BACKSLASH_QUOTE_OFF,
51
51
  BACKSLASH_QUOTE_ON,
52
- BACKSLASH_QUOTE_SAFE_ENCODING
52
+ BACKSLASH_QUOTE_SAFE_ENCODING,
53
53
  } BackslashQuoteType;
54
54
 
55
55
  /* GUC variables in scan.l (every one of these is a bad idea :-() */
@@ -5,7 +5,7 @@
5
5
  * parse trees.
6
6
  *
7
7
  *
8
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
9
  * Portions Copyright (c) 1994, Regents of the University of California
10
10
  *
11
11
  * src/include/parser/parsetree.h
@@ -8,7 +8,7 @@
8
8
  * higher-level API provided by parser.h.
9
9
  *
10
10
  *
11
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
12
12
  * Portions Copyright (c) 1994, Regents of the University of California
13
13
  *
14
14
  * src/include/parser/scanner.h
@@ -3,7 +3,7 @@
3
3
  * scansup.h
4
4
  * scanner support routines used by the core lexer
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/parser/scansup.h
@@ -3,7 +3,7 @@
3
3
  * partdefs.h
4
4
  * Base definitions for partitioned table handling
5
5
  *
6
- * Copyright (c) 2007-2023, PostgreSQL Global Development Group
6
+ * Copyright (c) 2007-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/partitioning/partdefs.h
9
9
  *