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
@@ -3,7 +3,7 @@
3
3
  * copyfuncs.funcs.c
4
4
  * Generated node infrastructure code
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
  * NOTES
@@ -70,6 +70,7 @@ _copyTableFunc(const TableFunc *from)
70
70
  {
71
71
  TableFunc *newnode = makeNode(TableFunc);
72
72
 
73
+ COPY_SCALAR_FIELD(functype);
73
74
  COPY_NODE_FIELD(ns_uris);
74
75
  COPY_NODE_FIELD(ns_names);
75
76
  COPY_NODE_FIELD(docexpr);
@@ -80,7 +81,10 @@ _copyTableFunc(const TableFunc *from)
80
81
  COPY_NODE_FIELD(colcollations);
81
82
  COPY_NODE_FIELD(colexprs);
82
83
  COPY_NODE_FIELD(coldefexprs);
84
+ COPY_NODE_FIELD(colvalexprs);
85
+ COPY_NODE_FIELD(passingvalexprs);
83
86
  COPY_BITMAPSET_FIELD(notnulls);
87
+ COPY_NODE_FIELD(plan);
84
88
  COPY_SCALAR_FIELD(ordinalitycol);
85
89
  COPY_LOCATION_FIELD(location);
86
90
 
@@ -192,6 +196,7 @@ _copyWindowFunc(const WindowFunc *from)
192
196
  COPY_SCALAR_FIELD(inputcollid);
193
197
  COPY_NODE_FIELD(args);
194
198
  COPY_NODE_FIELD(aggfilter);
199
+ COPY_NODE_FIELD(runCondition);
195
200
  COPY_SCALAR_FIELD(winref);
196
201
  COPY_SCALAR_FIELD(winstar);
197
202
  COPY_SCALAR_FIELD(winagg);
@@ -200,6 +205,31 @@ _copyWindowFunc(const WindowFunc *from)
200
205
  return newnode;
201
206
  }
202
207
 
208
+ static WindowFuncRunCondition *
209
+ _copyWindowFuncRunCondition(const WindowFuncRunCondition *from)
210
+ {
211
+ WindowFuncRunCondition *newnode = makeNode(WindowFuncRunCondition);
212
+
213
+ COPY_SCALAR_FIELD(opno);
214
+ COPY_SCALAR_FIELD(inputcollid);
215
+ COPY_SCALAR_FIELD(wfunc_left);
216
+ COPY_NODE_FIELD(arg);
217
+
218
+ return newnode;
219
+ }
220
+
221
+ static MergeSupportFunc *
222
+ _copyMergeSupportFunc(const MergeSupportFunc *from)
223
+ {
224
+ MergeSupportFunc *newnode = makeNode(MergeSupportFunc);
225
+
226
+ COPY_SCALAR_FIELD(msftype);
227
+ COPY_SCALAR_FIELD(msfcollid);
228
+ COPY_LOCATION_FIELD(location);
229
+
230
+ return newnode;
231
+ }
232
+
203
233
  static SubscriptingRef *
204
234
  _copySubscriptingRef(const SubscriptingRef *from)
205
235
  {
@@ -686,6 +716,80 @@ _copyJsonIsPredicate(const JsonIsPredicate *from)
686
716
  return newnode;
687
717
  }
688
718
 
719
+ static JsonBehavior *
720
+ _copyJsonBehavior(const JsonBehavior *from)
721
+ {
722
+ JsonBehavior *newnode = makeNode(JsonBehavior);
723
+
724
+ COPY_SCALAR_FIELD(btype);
725
+ COPY_NODE_FIELD(expr);
726
+ COPY_SCALAR_FIELD(coerce);
727
+ COPY_LOCATION_FIELD(location);
728
+
729
+ return newnode;
730
+ }
731
+
732
+ static JsonExpr *
733
+ _copyJsonExpr(const JsonExpr *from)
734
+ {
735
+ JsonExpr *newnode = makeNode(JsonExpr);
736
+
737
+ COPY_SCALAR_FIELD(op);
738
+ COPY_STRING_FIELD(column_name);
739
+ COPY_NODE_FIELD(formatted_expr);
740
+ COPY_NODE_FIELD(format);
741
+ COPY_NODE_FIELD(path_spec);
742
+ COPY_NODE_FIELD(returning);
743
+ COPY_NODE_FIELD(passing_names);
744
+ COPY_NODE_FIELD(passing_values);
745
+ COPY_NODE_FIELD(on_empty);
746
+ COPY_NODE_FIELD(on_error);
747
+ COPY_SCALAR_FIELD(use_io_coercion);
748
+ COPY_SCALAR_FIELD(use_json_coercion);
749
+ COPY_SCALAR_FIELD(wrapper);
750
+ COPY_SCALAR_FIELD(omit_quotes);
751
+ COPY_SCALAR_FIELD(collation);
752
+ COPY_LOCATION_FIELD(location);
753
+
754
+ return newnode;
755
+ }
756
+
757
+ static JsonTablePath *
758
+ _copyJsonTablePath(const JsonTablePath *from)
759
+ {
760
+ JsonTablePath *newnode = makeNode(JsonTablePath);
761
+
762
+ COPY_NODE_FIELD(value);
763
+ COPY_STRING_FIELD(name);
764
+
765
+ return newnode;
766
+ }
767
+
768
+ static JsonTablePathScan *
769
+ _copyJsonTablePathScan(const JsonTablePathScan *from)
770
+ {
771
+ JsonTablePathScan *newnode = makeNode(JsonTablePathScan);
772
+
773
+ COPY_NODE_FIELD(path);
774
+ COPY_SCALAR_FIELD(errorOnError);
775
+ COPY_NODE_FIELD(child);
776
+ COPY_SCALAR_FIELD(colMin);
777
+ COPY_SCALAR_FIELD(colMax);
778
+
779
+ return newnode;
780
+ }
781
+
782
+ static JsonTableSiblingJoin *
783
+ _copyJsonTableSiblingJoin(const JsonTableSiblingJoin *from)
784
+ {
785
+ JsonTableSiblingJoin *newnode = makeNode(JsonTableSiblingJoin);
786
+
787
+ COPY_NODE_FIELD(lplan);
788
+ COPY_NODE_FIELD(rplan);
789
+
790
+ return newnode;
791
+ }
792
+
689
793
  static NullTest *
690
794
  _copyNullTest(const NullTest *from)
691
795
  {
@@ -711,6 +815,21 @@ _copyBooleanTest(const BooleanTest *from)
711
815
  return newnode;
712
816
  }
713
817
 
818
+ static MergeAction *
819
+ _copyMergeAction(const MergeAction *from)
820
+ {
821
+ MergeAction *newnode = makeNode(MergeAction);
822
+
823
+ COPY_SCALAR_FIELD(matchKind);
824
+ COPY_SCALAR_FIELD(commandType);
825
+ COPY_SCALAR_FIELD(override);
826
+ COPY_NODE_FIELD(qual);
827
+ COPY_NODE_FIELD(targetList);
828
+ COPY_NODE_FIELD(updateColnos);
829
+
830
+ return newnode;
831
+ }
832
+
714
833
  static CoerceToDomain *
715
834
  _copyCoerceToDomain(const CoerceToDomain *from)
716
835
  {
@@ -885,7 +1004,8 @@ _copyQuery(const Query *from)
885
1004
  COPY_NODE_FIELD(rteperminfos);
886
1005
  COPY_NODE_FIELD(jointree);
887
1006
  COPY_NODE_FIELD(mergeActionList);
888
- COPY_SCALAR_FIELD(mergeUseOuterJoin);
1007
+ COPY_SCALAR_FIELD(mergeTargetRelation);
1008
+ COPY_NODE_FIELD(mergeJoinCondition);
889
1009
  COPY_NODE_FIELD(targetList);
890
1010
  COPY_SCALAR_FIELD(override);
891
1011
  COPY_NODE_FIELD(onConflict);
@@ -905,7 +1025,7 @@ _copyQuery(const Query *from)
905
1025
  COPY_NODE_FIELD(constraintDeps);
906
1026
  COPY_NODE_FIELD(withCheckOptions);
907
1027
  COPY_LOCATION_FIELD(stmt_location);
908
- COPY_SCALAR_FIELD(stmt_len);
1028
+ COPY_LOCATION_FIELD(stmt_len);
909
1029
 
910
1030
  return newnode;
911
1031
  }
@@ -1343,6 +1463,15 @@ _copyPartitionRangeDatum(const PartitionRangeDatum *from)
1343
1463
  return newnode;
1344
1464
  }
1345
1465
 
1466
+ static SinglePartitionSpec *
1467
+ _copySinglePartitionSpec(const SinglePartitionSpec *from)
1468
+ {
1469
+ SinglePartitionSpec *newnode = makeNode(SinglePartitionSpec);
1470
+
1471
+
1472
+ return newnode;
1473
+ }
1474
+
1346
1475
  static PartitionCmd *
1347
1476
  _copyPartitionCmd(const PartitionCmd *from)
1348
1477
  {
@@ -1360,12 +1489,15 @@ _copyRangeTblEntry(const RangeTblEntry *from)
1360
1489
  {
1361
1490
  RangeTblEntry *newnode = makeNode(RangeTblEntry);
1362
1491
 
1492
+ COPY_NODE_FIELD(alias);
1493
+ COPY_NODE_FIELD(eref);
1363
1494
  COPY_SCALAR_FIELD(rtekind);
1364
1495
  COPY_SCALAR_FIELD(relid);
1496
+ COPY_SCALAR_FIELD(inh);
1365
1497
  COPY_SCALAR_FIELD(relkind);
1366
1498
  COPY_SCALAR_FIELD(rellockmode);
1367
- COPY_NODE_FIELD(tablesample);
1368
1499
  COPY_SCALAR_FIELD(perminfoindex);
1500
+ COPY_NODE_FIELD(tablesample);
1369
1501
  COPY_NODE_FIELD(subquery);
1370
1502
  COPY_SCALAR_FIELD(security_barrier);
1371
1503
  COPY_SCALAR_FIELD(jointype);
@@ -1386,10 +1518,7 @@ _copyRangeTblEntry(const RangeTblEntry *from)
1386
1518
  COPY_NODE_FIELD(colcollations);
1387
1519
  COPY_STRING_FIELD(enrname);
1388
1520
  COPY_SCALAR_FIELD(enrtuples);
1389
- COPY_NODE_FIELD(alias);
1390
- COPY_NODE_FIELD(eref);
1391
1521
  COPY_SCALAR_FIELD(lateral);
1392
- COPY_SCALAR_FIELD(inh);
1393
1522
  COPY_SCALAR_FIELD(inFromCl);
1394
1523
  COPY_NODE_FIELD(securityQuals);
1395
1524
 
@@ -1492,7 +1621,6 @@ _copyWindowClause(const WindowClause *from)
1492
1621
  COPY_SCALAR_FIELD(frameOptions);
1493
1622
  COPY_NODE_FIELD(startOffset);
1494
1623
  COPY_NODE_FIELD(endOffset);
1495
- COPY_NODE_FIELD(runCondition);
1496
1624
  COPY_SCALAR_FIELD(startInRangeFunc);
1497
1625
  COPY_SCALAR_FIELD(endInRangeFunc);
1498
1626
  COPY_SCALAR_FIELD(inRangeColl);
@@ -1615,7 +1743,7 @@ _copyMergeWhenClause(const MergeWhenClause *from)
1615
1743
  {
1616
1744
  MergeWhenClause *newnode = makeNode(MergeWhenClause);
1617
1745
 
1618
- COPY_SCALAR_FIELD(matched);
1746
+ COPY_SCALAR_FIELD(matchKind);
1619
1747
  COPY_SCALAR_FIELD(commandType);
1620
1748
  COPY_SCALAR_FIELD(override);
1621
1749
  COPY_NODE_FIELD(condition);
@@ -1625,21 +1753,6 @@ _copyMergeWhenClause(const MergeWhenClause *from)
1625
1753
  return newnode;
1626
1754
  }
1627
1755
 
1628
- static MergeAction *
1629
- _copyMergeAction(const MergeAction *from)
1630
- {
1631
- MergeAction *newnode = makeNode(MergeAction);
1632
-
1633
- COPY_SCALAR_FIELD(matched);
1634
- COPY_SCALAR_FIELD(commandType);
1635
- COPY_SCALAR_FIELD(override);
1636
- COPY_NODE_FIELD(qual);
1637
- COPY_NODE_FIELD(targetList);
1638
- COPY_NODE_FIELD(updateColnos);
1639
-
1640
- return newnode;
1641
- }
1642
-
1643
1756
  static TriggerTransition *
1644
1757
  _copyTriggerTransition(const TriggerTransition *from)
1645
1758
  {
@@ -1663,6 +1776,87 @@ _copyJsonOutput(const JsonOutput *from)
1663
1776
  return newnode;
1664
1777
  }
1665
1778
 
1779
+ static JsonArgument *
1780
+ _copyJsonArgument(const JsonArgument *from)
1781
+ {
1782
+ JsonArgument *newnode = makeNode(JsonArgument);
1783
+
1784
+ COPY_NODE_FIELD(val);
1785
+ COPY_STRING_FIELD(name);
1786
+
1787
+ return newnode;
1788
+ }
1789
+
1790
+ static JsonFuncExpr *
1791
+ _copyJsonFuncExpr(const JsonFuncExpr *from)
1792
+ {
1793
+ JsonFuncExpr *newnode = makeNode(JsonFuncExpr);
1794
+
1795
+ COPY_SCALAR_FIELD(op);
1796
+ COPY_STRING_FIELD(column_name);
1797
+ COPY_NODE_FIELD(context_item);
1798
+ COPY_NODE_FIELD(pathspec);
1799
+ COPY_NODE_FIELD(passing);
1800
+ COPY_NODE_FIELD(output);
1801
+ COPY_NODE_FIELD(on_empty);
1802
+ COPY_NODE_FIELD(on_error);
1803
+ COPY_SCALAR_FIELD(wrapper);
1804
+ COPY_SCALAR_FIELD(quotes);
1805
+ COPY_LOCATION_FIELD(location);
1806
+
1807
+ return newnode;
1808
+ }
1809
+
1810
+ static JsonTablePathSpec *
1811
+ _copyJsonTablePathSpec(const JsonTablePathSpec *from)
1812
+ {
1813
+ JsonTablePathSpec *newnode = makeNode(JsonTablePathSpec);
1814
+
1815
+ COPY_NODE_FIELD(string);
1816
+ COPY_STRING_FIELD(name);
1817
+ COPY_LOCATION_FIELD(name_location);
1818
+ COPY_LOCATION_FIELD(location);
1819
+
1820
+ return newnode;
1821
+ }
1822
+
1823
+ static JsonTable *
1824
+ _copyJsonTable(const JsonTable *from)
1825
+ {
1826
+ JsonTable *newnode = makeNode(JsonTable);
1827
+
1828
+ COPY_NODE_FIELD(context_item);
1829
+ COPY_NODE_FIELD(pathspec);
1830
+ COPY_NODE_FIELD(passing);
1831
+ COPY_NODE_FIELD(columns);
1832
+ COPY_NODE_FIELD(on_error);
1833
+ COPY_NODE_FIELD(alias);
1834
+ COPY_SCALAR_FIELD(lateral);
1835
+ COPY_LOCATION_FIELD(location);
1836
+
1837
+ return newnode;
1838
+ }
1839
+
1840
+ static JsonTableColumn *
1841
+ _copyJsonTableColumn(const JsonTableColumn *from)
1842
+ {
1843
+ JsonTableColumn *newnode = makeNode(JsonTableColumn);
1844
+
1845
+ COPY_SCALAR_FIELD(coltype);
1846
+ COPY_STRING_FIELD(name);
1847
+ COPY_NODE_FIELD(typeName);
1848
+ COPY_NODE_FIELD(pathspec);
1849
+ COPY_NODE_FIELD(format);
1850
+ COPY_SCALAR_FIELD(wrapper);
1851
+ COPY_SCALAR_FIELD(quotes);
1852
+ COPY_NODE_FIELD(columns);
1853
+ COPY_NODE_FIELD(on_empty);
1854
+ COPY_NODE_FIELD(on_error);
1855
+ COPY_LOCATION_FIELD(location);
1856
+
1857
+ return newnode;
1858
+ }
1859
+
1666
1860
  static JsonKeyValue *
1667
1861
  _copyJsonKeyValue(const JsonKeyValue *from)
1668
1862
  {
@@ -1674,6 +1868,43 @@ _copyJsonKeyValue(const JsonKeyValue *from)
1674
1868
  return newnode;
1675
1869
  }
1676
1870
 
1871
+ static JsonParseExpr *
1872
+ _copyJsonParseExpr(const JsonParseExpr *from)
1873
+ {
1874
+ JsonParseExpr *newnode = makeNode(JsonParseExpr);
1875
+
1876
+ COPY_NODE_FIELD(expr);
1877
+ COPY_NODE_FIELD(output);
1878
+ COPY_SCALAR_FIELD(unique_keys);
1879
+ COPY_LOCATION_FIELD(location);
1880
+
1881
+ return newnode;
1882
+ }
1883
+
1884
+ static JsonScalarExpr *
1885
+ _copyJsonScalarExpr(const JsonScalarExpr *from)
1886
+ {
1887
+ JsonScalarExpr *newnode = makeNode(JsonScalarExpr);
1888
+
1889
+ COPY_NODE_FIELD(expr);
1890
+ COPY_NODE_FIELD(output);
1891
+ COPY_LOCATION_FIELD(location);
1892
+
1893
+ return newnode;
1894
+ }
1895
+
1896
+ static JsonSerializeExpr *
1897
+ _copyJsonSerializeExpr(const JsonSerializeExpr *from)
1898
+ {
1899
+ JsonSerializeExpr *newnode = makeNode(JsonSerializeExpr);
1900
+
1901
+ COPY_NODE_FIELD(expr);
1902
+ COPY_NODE_FIELD(output);
1903
+ COPY_LOCATION_FIELD(location);
1904
+
1905
+ return newnode;
1906
+ }
1907
+
1677
1908
  static JsonObjectConstructor *
1678
1909
  _copyJsonObjectConstructor(const JsonObjectConstructor *from)
1679
1910
  {
@@ -1761,7 +1992,7 @@ _copyRawStmt(const RawStmt *from)
1761
1992
 
1762
1993
  COPY_NODE_FIELD(stmt);
1763
1994
  COPY_LOCATION_FIELD(stmt_location);
1764
- COPY_SCALAR_FIELD(stmt_len);
1995
+ COPY_LOCATION_FIELD(stmt_len);
1765
1996
 
1766
1997
  return newnode;
1767
1998
  }
@@ -1820,6 +2051,7 @@ _copyMergeStmt(const MergeStmt *from)
1820
2051
  COPY_NODE_FIELD(sourceRelation);
1821
2052
  COPY_NODE_FIELD(joinCondition);
1822
2053
  COPY_NODE_FIELD(mergeWhenClauses);
2054
+ COPY_NODE_FIELD(returningList);
1823
2055
  COPY_NODE_FIELD(withClause);
1824
2056
 
1825
2057
  return newnode;
@@ -2112,11 +2344,13 @@ _copyConstraint(const Constraint *from)
2112
2344
  COPY_STRING_FIELD(conname);
2113
2345
  COPY_SCALAR_FIELD(deferrable);
2114
2346
  COPY_SCALAR_FIELD(initdeferred);
2115
- COPY_LOCATION_FIELD(location);
2347
+ COPY_SCALAR_FIELD(skip_validation);
2348
+ COPY_SCALAR_FIELD(initially_valid);
2116
2349
  COPY_SCALAR_FIELD(is_no_inherit);
2117
2350
  COPY_NODE_FIELD(raw_expr);
2118
2351
  COPY_STRING_FIELD(cooked_expr);
2119
2352
  COPY_SCALAR_FIELD(generated_when);
2353
+ COPY_SCALAR_FIELD(inhcount);
2120
2354
  COPY_SCALAR_FIELD(nulls_not_distinct);
2121
2355
  COPY_NODE_FIELD(keys);
2122
2356
  COPY_NODE_FIELD(including);
@@ -2136,8 +2370,7 @@ _copyConstraint(const Constraint *from)
2136
2370
  COPY_NODE_FIELD(fk_del_set_cols);
2137
2371
  COPY_NODE_FIELD(old_conpfeqop);
2138
2372
  COPY_SCALAR_FIELD(old_pktable_oid);
2139
- COPY_SCALAR_FIELD(skip_validation);
2140
- COPY_SCALAR_FIELD(initially_valid);
2373
+ COPY_LOCATION_FIELD(location);
2141
2374
 
2142
2375
  return newnode;
2143
2376
  }
@@ -2769,7 +3002,7 @@ _copyAlterStatsStmt(const AlterStatsStmt *from)
2769
3002
  AlterStatsStmt *newnode = makeNode(AlterStatsStmt);
2770
3003
 
2771
3004
  COPY_NODE_FIELD(defnames);
2772
- COPY_SCALAR_FIELD(stxstattarget);
3005
+ COPY_NODE_FIELD(stxstattarget);
2773
3006
  COPY_SCALAR_FIELD(missing_ok);
2774
3007
 
2775
3008
  return newnode;
@@ -2975,6 +3208,7 @@ _copyTransactionStmt(const TransactionStmt *from)
2975
3208
  COPY_STRING_FIELD(savepoint_name);
2976
3209
  COPY_STRING_FIELD(gid);
2977
3210
  COPY_SCALAR_FIELD(chain);
3211
+ COPY_LOCATION_FIELD(location);
2978
3212
 
2979
3213
  return newnode;
2980
3214
  }
@@ -3316,6 +3550,8 @@ _copyDeallocateStmt(const DeallocateStmt *from)
3316
3550
  DeallocateStmt *newnode = makeNode(DeallocateStmt);
3317
3551
 
3318
3552
  COPY_STRING_FIELD(name);
3553
+ COPY_SCALAR_FIELD(isall);
3554
+ COPY_LOCATION_FIELD(location);
3319
3555
 
3320
3556
  return newnode;
3321
3557
  }
@@ -3473,6 +3709,17 @@ _copyPathKey(const PathKey *from)
3473
3709
  return newnode;
3474
3710
  }
3475
3711
 
3712
+ static GroupByOrdering *
3713
+ _copyGroupByOrdering(const GroupByOrdering *from)
3714
+ {
3715
+ GroupByOrdering *newnode = makeNode(GroupByOrdering);
3716
+
3717
+ COPY_NODE_FIELD(pathkeys);
3718
+ COPY_NODE_FIELD(clauses);
3719
+
3720
+ return newnode;
3721
+ }
3722
+
3476
3723
  static RestrictInfo *
3477
3724
  _copyRestrictInfo(const RestrictInfo *from)
3478
3725
  {
@@ -3615,7 +3862,7 @@ _copyPlannedStmt(const PlannedStmt *from)
3615
3862
  COPY_NODE_FIELD(paramExecTypes);
3616
3863
  COPY_NODE_FIELD(utilityStmt);
3617
3864
  COPY_LOCATION_FIELD(stmt_location);
3618
- COPY_SCALAR_FIELD(stmt_len);
3865
+ COPY_LOCATION_FIELD(stmt_len);
3619
3866
 
3620
3867
  return newnode;
3621
3868
  }
@@ -3710,6 +3957,7 @@ _copyModifyTable(const ModifyTable *from)
3710
3957
  COPY_SCALAR_FIELD(exclRelRTI);
3711
3958
  COPY_NODE_FIELD(exclRelTlist);
3712
3959
  COPY_NODE_FIELD(mergeActionLists);
3960
+ COPY_NODE_FIELD(mergeJoinConditions);
3713
3961
 
3714
3962
  return newnode;
3715
3963
  }
@@ -3,7 +3,7 @@
3
3
  * copyfuncs.switch.c
4
4
  * Generated node infrastructure code
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
  * NOTES
@@ -45,6 +45,12 @@
45
45
  case T_WindowFunc:
46
46
  retval = _copyWindowFunc(from);
47
47
  break;
48
+ case T_WindowFuncRunCondition:
49
+ retval = _copyWindowFuncRunCondition(from);
50
+ break;
51
+ case T_MergeSupportFunc:
52
+ retval = _copyMergeSupportFunc(from);
53
+ break;
48
54
  case T_SubscriptingRef:
49
55
  retval = _copySubscriptingRef(from);
50
56
  break;
@@ -144,12 +150,30 @@
144
150
  case T_JsonIsPredicate:
145
151
  retval = _copyJsonIsPredicate(from);
146
152
  break;
153
+ case T_JsonBehavior:
154
+ retval = _copyJsonBehavior(from);
155
+ break;
156
+ case T_JsonExpr:
157
+ retval = _copyJsonExpr(from);
158
+ break;
159
+ case T_JsonTablePath:
160
+ retval = _copyJsonTablePath(from);
161
+ break;
162
+ case T_JsonTablePathScan:
163
+ retval = _copyJsonTablePathScan(from);
164
+ break;
165
+ case T_JsonTableSiblingJoin:
166
+ retval = _copyJsonTableSiblingJoin(from);
167
+ break;
147
168
  case T_NullTest:
148
169
  retval = _copyNullTest(from);
149
170
  break;
150
171
  case T_BooleanTest:
151
172
  retval = _copyBooleanTest(from);
152
173
  break;
174
+ case T_MergeAction:
175
+ retval = _copyMergeAction(from);
176
+ break;
153
177
  case T_CoerceToDomain:
154
178
  retval = _copyCoerceToDomain(from);
155
179
  break;
@@ -282,6 +306,9 @@
282
306
  case T_PartitionRangeDatum:
283
307
  retval = _copyPartitionRangeDatum(from);
284
308
  break;
309
+ case T_SinglePartitionSpec:
310
+ retval = _copySinglePartitionSpec(from);
311
+ break;
285
312
  case T_PartitionCmd:
286
313
  retval = _copyPartitionCmd(from);
287
314
  break;
@@ -333,18 +360,39 @@
333
360
  case T_MergeWhenClause:
334
361
  retval = _copyMergeWhenClause(from);
335
362
  break;
336
- case T_MergeAction:
337
- retval = _copyMergeAction(from);
338
- break;
339
363
  case T_TriggerTransition:
340
364
  retval = _copyTriggerTransition(from);
341
365
  break;
342
366
  case T_JsonOutput:
343
367
  retval = _copyJsonOutput(from);
344
368
  break;
369
+ case T_JsonArgument:
370
+ retval = _copyJsonArgument(from);
371
+ break;
372
+ case T_JsonFuncExpr:
373
+ retval = _copyJsonFuncExpr(from);
374
+ break;
375
+ case T_JsonTablePathSpec:
376
+ retval = _copyJsonTablePathSpec(from);
377
+ break;
378
+ case T_JsonTable:
379
+ retval = _copyJsonTable(from);
380
+ break;
381
+ case T_JsonTableColumn:
382
+ retval = _copyJsonTableColumn(from);
383
+ break;
345
384
  case T_JsonKeyValue:
346
385
  retval = _copyJsonKeyValue(from);
347
386
  break;
387
+ case T_JsonParseExpr:
388
+ retval = _copyJsonParseExpr(from);
389
+ break;
390
+ case T_JsonScalarExpr:
391
+ retval = _copyJsonScalarExpr(from);
392
+ break;
393
+ case T_JsonSerializeExpr:
394
+ retval = _copyJsonSerializeExpr(from);
395
+ break;
348
396
  case T_JsonObjectConstructor:
349
397
  retval = _copyJsonObjectConstructor(from);
350
398
  break;
@@ -747,6 +795,9 @@
747
795
  case T_PathKey:
748
796
  retval = _copyPathKey(from);
749
797
  break;
798
+ case T_GroupByOrdering:
799
+ retval = _copyGroupByOrdering(from);
800
+ break;
750
801
  case T_RestrictInfo:
751
802
  retval = _copyRestrictInfo(from);
752
803
  break;
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Note: this file must be includable in both frontend and backend contexts.
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/datatype/timestamp.h
@@ -114,6 +114,7 @@ struct pg_itm_in
114
114
  * 30 days.
115
115
  */
116
116
  #define DAYS_PER_MONTH 30 /* assumes exactly 30 days per month */
117
+ #define DAYS_PER_WEEK 7
117
118
  #define HOURS_PER_DAY 24 /* assume no daylight savings time changes */
118
119
 
119
120
  /*
@@ -135,7 +136,7 @@ struct pg_itm_in
135
136
  /*
136
137
  * We allow numeric timezone offsets up to 15:59:59 either way from Greenwich.
137
138
  * Currently, the record holders for wackiest offsets in actual use are zones
138
- * Asia/Manila, at -15:56:00 until 1844, and America/Metlakatla, at +15:13:42
139
+ * Asia/Manila, at -15:56:08 until 1844, and America/Metlakatla, at +15:13:42
139
140
  * until 1867. If we were to reject such values we would fail to dump and
140
141
  * restore old timestamptz values with these zone settings.
141
142
  */
@@ -150,7 +151,7 @@ struct pg_itm_in
150
151
  #define TIMESTAMP_INFINITY PG_INT64_MAX
151
152
 
152
153
  /*
153
- * Historically these alias for infinity have been used.
154
+ * Historically these aliases for infinity have been used.
154
155
  */
155
156
  #define DT_NOBEGIN TIMESTAMP_MINUS_INFINITY
156
157
  #define DT_NOEND TIMESTAMP_INFINITY
@@ -167,6 +168,31 @@ struct pg_itm_in
167
168
 
168
169
  #define TIMESTAMP_NOT_FINITE(j) (TIMESTAMP_IS_NOBEGIN(j) || TIMESTAMP_IS_NOEND(j))
169
170
 
171
+ /*
172
+ * Infinite intervals are represented by setting all fields to the minimum or
173
+ * maximum integer values.
174
+ */
175
+ #define INTERVAL_NOBEGIN(i) \
176
+ do { \
177
+ (i)->time = PG_INT64_MIN; \
178
+ (i)->day = PG_INT32_MIN; \
179
+ (i)->month = PG_INT32_MIN; \
180
+ } while (0)
181
+
182
+ #define INTERVAL_IS_NOBEGIN(i) \
183
+ ((i)->month == PG_INT32_MIN && (i)->day == PG_INT32_MIN && (i)->time == PG_INT64_MIN)
184
+
185
+ #define INTERVAL_NOEND(i) \
186
+ do { \
187
+ (i)->time = PG_INT64_MAX; \
188
+ (i)->day = PG_INT32_MAX; \
189
+ (i)->month = PG_INT32_MAX; \
190
+ } while (0)
191
+
192
+ #define INTERVAL_IS_NOEND(i) \
193
+ ((i)->month == PG_INT32_MAX && (i)->day == PG_INT32_MAX && (i)->time == PG_INT64_MAX)
194
+
195
+ #define INTERVAL_NOT_FINITE(i) (INTERVAL_IS_NOBEGIN(i) || INTERVAL_IS_NOEND(i))
170
196
 
171
197
  /*
172
198
  * Julian date support.