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
@@ -52,10 +52,6 @@
52
52
  /* Define to 1 if you want National Language Support. (--enable-nls) */
53
53
  /* #undef ENABLE_NLS */
54
54
 
55
- /* Define to 1 to build client libraries as thread-safe code.
56
- (--enable-thread-safety) */
57
- #define ENABLE_THREAD_SAFETY 1
58
-
59
55
  /* Define to 1 if you have the `append_history' function. */
60
56
  /* #undef HAVE_APPEND_HISTORY */
61
57
 
@@ -71,9 +67,6 @@
71
67
  /* Define to 1 if you have the `backtrace_symbols' function. */
72
68
  #define HAVE_BACKTRACE_SYMBOLS 1
73
69
 
74
- /* Define to 1 if you have the `BIO_get_data' function. */
75
- /* #undef HAVE_BIO_GET_DATA */
76
-
77
70
  /* Define to 1 if you have the `BIO_meth_new' function. */
78
71
  /* #undef HAVE_BIO_METH_NEW */
79
72
 
@@ -86,6 +79,9 @@
86
79
  /* Define to 1 if you have the <copyfile.h> header file. */
87
80
  #define HAVE_COPYFILE_H 1
88
81
 
82
+ /* Define to 1 if you have the `copy_file_range' function. */
83
+ /* #undef HAVE_COPY_FILE_RANGE */
84
+
89
85
  /* Define to 1 if you have the <crtdefs.h> header file. */
90
86
  /* #undef HAVE_CRTDEFS_H */
91
87
 
@@ -108,18 +104,6 @@
108
104
  `LLVMCreatePerfJITEventListener', and to 0 if you don't. */
109
105
  /* #undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER */
110
106
 
111
- /* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to
112
- 0 if you don't. */
113
- /* #undef HAVE_DECL_LLVMGETHOSTCPUFEATURES */
114
-
115
- /* Define to 1 if you have the declaration of `LLVMGetHostCPUName', and to 0
116
- if you don't. */
117
- /* #undef HAVE_DECL_LLVMGETHOSTCPUNAME */
118
-
119
- /* Define to 1 if you have the declaration of `LLVMOrcGetSymbolAddressIn', and
120
- to 0 if you don't. */
121
- /* #undef HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN */
122
-
123
107
  /* Define to 1 if you have the declaration of `posix_fadvise', and to 0 if you
124
108
  don't. */
125
109
  #define HAVE_DECL_POSIX_FADVISE 0
@@ -132,6 +116,10 @@
132
116
  don't. */
133
117
  #define HAVE_DECL_PWRITEV 1
134
118
 
119
+ /* Define to 1 if you have the declaration of `strchrnul', and to 0 if you
120
+ don't. */
121
+ #define HAVE_DECL_STRCHRNUL 0
122
+
135
123
  /* Define to 1 if you have the declaration of `strlcat', and to 0 if you
136
124
  don't. */
137
125
  #define HAVE_DECL_STRLCAT 1
@@ -299,9 +287,6 @@
299
287
  /* Define to 1 if you have the `zstd' library (-lzstd). */
300
288
  /* #undef HAVE_LIBZSTD */
301
289
 
302
- /* Define to 1 if the system has the type `locale_t'. */
303
- #define HAVE_LOCALE_T 1
304
-
305
290
  /* Define to 1 if `long int' works and is 64 bits. */
306
291
  #define HAVE_LONG_INT_64 1
307
292
 
@@ -404,8 +389,8 @@
404
389
  /* Define to 1 if you have the `SSL_CTX_set_cert_cb' function. */
405
390
  /* #undef HAVE_SSL_CTX_SET_CERT_CB */
406
391
 
407
- /* Define to 1 if stdbool.h conforms to C99. */
408
- #define HAVE_STDBOOL_H 1
392
+ /* Define to 1 if you have the `SSL_CTX_set_num_tickets' function. */
393
+ /* #undef HAVE_SSL_CTX_SET_NUM_TICKETS */
409
394
 
410
395
  /* Define to 1 if you have the <stdint.h> header file. */
411
396
  #define HAVE_STDINT_H 1
@@ -413,9 +398,6 @@
413
398
  /* Define to 1 if you have the <stdlib.h> header file. */
414
399
  #define HAVE_STDLIB_H 1
415
400
 
416
- /* Define to 1 if you have the `strchrnul' function. */
417
- /* #undef HAVE_STRCHRNUL */
418
-
419
401
  /* Define to 1 if you have the `strerror_r' function. */
420
402
  #define HAVE_STRERROR_R 1
421
403
 
@@ -530,14 +512,11 @@
530
512
  /* Define to 1 if you have the `X509_get_signature_info' function. */
531
513
  /* #undef HAVE_X509_GET_SIGNATURE_INFO */
532
514
 
533
- /* Define to 1 if you have the `X509_get_signature_nid' function. */
534
- /* #undef HAVE_X509_GET_SIGNATURE_NID */
535
-
536
515
  /* Define to 1 if the assembler supports X86_64's POPCNTQ instruction. */
537
516
  /* #undef HAVE_X86_64_POPCNTQ */
538
517
 
539
- /* Define to 1 if the system has the type `_Bool'. */
540
- #define HAVE__BOOL 1
518
+ /* Define to 1 if you have XSAVE intrinsics. */
519
+ /* #undef HAVE_XSAVE_INTRINSICS */
541
520
 
542
521
  /* Define to 1 if your compiler understands __builtin_bswap16. */
543
522
  #define HAVE__BUILTIN_BSWAP16 1
@@ -578,9 +557,15 @@
578
557
  /* Define to 1 if you have __cpuid. */
579
558
  /* #undef HAVE__CPUID */
580
559
 
560
+ /* Define to 1 if you have __cpuidex. */
561
+ /* #undef HAVE__CPUIDEX */
562
+
581
563
  /* Define to 1 if you have __get_cpuid. */
582
564
  /* #undef HAVE__GET_CPUID */
583
565
 
566
+ /* Define to 1 if you have __get_cpuid_count. */
567
+ /* #undef HAVE__GET_CPUID_COUNT */
568
+
584
569
  /* Define to 1 if your compiler understands _Static_assert. */
585
570
  #define HAVE__STATIC_ASSERT 1
586
571
 
@@ -588,7 +573,7 @@
588
573
  #define INT64_MODIFIER "l"
589
574
 
590
575
  /* Define to 1 if `locale_t' requires <xlocale.h>. */
591
- #define LOCALE_T_IN_XLOCALE 1
576
+ /* #undef LOCALE_T_IN_XLOCALE */
592
577
 
593
578
  /* Define as the maximum alignment requirement of any C data type. */
594
579
  #define MAXIMUM_ALIGNOF 8
@@ -607,7 +592,7 @@
607
592
  #define PACKAGE_NAME "PostgreSQL"
608
593
 
609
594
  /* Define to the full name and version of this package. */
610
- #define PACKAGE_STRING "PostgreSQL 16.1"
595
+ #define PACKAGE_STRING "PostgreSQL 17.4"
611
596
 
612
597
  /* Define to the one symbol short name of this package. */
613
598
  #define PACKAGE_TARNAME "postgresql"
@@ -616,7 +601,7 @@
616
601
  #define PACKAGE_URL "https://www.postgresql.org/"
617
602
 
618
603
  /* Define to the version of this package. */
619
- #define PACKAGE_VERSION "16.1"
604
+ #define PACKAGE_VERSION "17.4"
620
605
 
621
606
  /* Define to the name of a signed 128-bit integer type. */
622
607
  #define PG_INT128_TYPE __int128
@@ -629,13 +614,13 @@
629
614
  #define PG_KRB_SRVNAM "postgres"
630
615
 
631
616
  /* PostgreSQL major version as a string */
632
- #define PG_MAJORVERSION "16"
617
+ #define PG_MAJORVERSION "17"
633
618
 
634
619
  /* PostgreSQL major version number */
635
- #define PG_MAJORVERSION_NUM 16
620
+ #define PG_MAJORVERSION_NUM 17
636
621
 
637
622
  /* PostgreSQL minor version number */
638
- #define PG_MINORVERSION_NUM 1
623
+ #define PG_MINORVERSION_NUM 4
639
624
 
640
625
  /* Define to best printf format archetype, usually gnu_printf if available. */
641
626
  #define PG_PRINTF_ATTRIBUTE printf
@@ -644,13 +629,13 @@
644
629
  #define PG_USE_STDBOOL 1
645
630
 
646
631
  /* PostgreSQL version as a string */
647
- #define PG_VERSION "16.1"
632
+ #define PG_VERSION "17.4"
648
633
 
649
634
  /* PostgreSQL version as a number */
650
- #define PG_VERSION_NUM 160001
635
+ #define PG_VERSION_NUM 170004
651
636
 
652
637
  /* A string containing the version number, platform, and C compiler */
653
- #define PG_VERSION_STR "PostgreSQL 16.1 (libpg_query)"
638
+ #define PG_VERSION_STR "PostgreSQL 17.4 (libpg_query)"
654
639
 
655
640
  /* Define to 1 to allow profiling output to be saved separately for each
656
641
  process. */
@@ -703,6 +688,9 @@
703
688
  /* Define to 1 to build with assertion checks. (--enable-cassert) */
704
689
  /* #undef USE_ASSERT_CHECKING */
705
690
 
691
+ /* Define to 1 to use AVX-512 popcount instructions with a runtime check. */
692
+ /* #undef USE_AVX512_POPCNT_WITH_RUNTIME_CHECK */
693
+
706
694
  /* Define to 1 to build with Bonjour support. (--with-bonjour) */
707
695
  /* #undef USE_BONJOUR */
708
696
 
@@ -712,6 +700,9 @@
712
700
  /* Define to build with ICU support. (--with-icu) */
713
701
  /* #undef USE_ICU */
714
702
 
703
+ /* Define to 1 to build with injection points. (--enable-injection-points) */
704
+ /* #undef USE_INJECTION_POINTS */
705
+
715
706
  /* Define to 1 to build with LDAP support. (--with-ldap) */
716
707
  /* #undef USE_LDAP */
717
708
 
@@ -725,6 +716,9 @@
725
716
  /* Define to 1 to build with LLVM based JIT support. (--with-llvm) */
726
717
  /* #undef USE_LLVM */
727
718
 
719
+ /* Define to 1 to use LoongArch CRCC instructions. */
720
+ /* #undef USE_LOONGARCH_CRC32C */
721
+
728
722
  /* Define to 1 to build with LZ4 support. (--with-lz4) */
729
723
  /* #undef USE_LZ4 */
730
724
 
@@ -826,9 +820,15 @@
826
820
 
827
821
  /* Define to how the compiler spells `typeof'. */
828
822
  /* #undef typeof */
829
- /* This causes compatibility problems on some Linux distros, with "xlocale.h" not being available */
830
- #undef HAVE_LOCALE_T
823
+ /*
824
+ * Assume we don't have xlocale.h on non-MacOS, as not all Linux distros have "xlocale.h" available.
825
+ *
826
+ * Note this is required on older MacOS to avoid "unknown type name 'locale_t'"
827
+ */
831
828
  #undef LOCALE_T_IN_XLOCALE
829
+ #ifdef __APPLE__
830
+ #define LOCALE_T_IN_XLOCALE 1
831
+ #endif
832
832
  #undef WCSTOMBS_L_IN_XLOCALE
833
833
 
834
834
  /* Support gcc earlier than 4.6.0 and MSVC */
@@ -848,10 +848,18 @@
848
848
  #undef USE_ARMV8_CRC32C
849
849
  #undef USE_SSE42_CRC32C_WITH_RUNTIME_CHECK
850
850
 
851
- /* Ensure we do not fail on systems that have strchrnul support (FreeBSD, NetBSD and newer glibc) */
851
+ /*
852
+ * Ensure we use built-in strchrnul on systems that have strchrnul support (FreeBSD, NetBSD and newer glibc)
853
+ *
854
+ * Note MacOS 15.4+ also has strchrnul implemented, but is complex to handle correctly, and the code works
855
+ * around the double define.
856
+ */
852
857
  #include <stdlib.h>
858
+ #undef HAVE_DECL_STRCHRNUL
853
859
  #if defined(__FreeBSD__) || defined(__NetBSD__) || (defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 38) || __GLIBC__ > 2))
854
- #define HAVE_STRCHRNUL
860
+ #define HAVE_DECL_STRCHRNUL 1
861
+ #else
862
+ #define HAVE_DECL_STRCHRNUL 0
855
863
  #endif
856
864
 
857
865
  /* 32-bit */
@@ -6,7 +6,7 @@
6
6
  * for developers. If you edit any of these, be sure to do a *full*
7
7
  * rebuild (and an initdb if noted).
8
8
  *
9
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
10
10
  * Portions Copyright (c) 1994, Regents of the University of California
11
11
  *
12
12
  * src/include/pg_config_manual.h
@@ -217,13 +217,13 @@
217
217
  #define DEFAULT_EVENT_SOURCE "PostgreSQL"
218
218
 
219
219
  /*
220
- * Assumed cache line size. This doesn't affect correctness, but can be used
221
- * for low-level optimizations. Currently, this is used to pad some data
222
- * structures in xlog.c, to ensure that highly-contended fields are on
223
- * different cache lines. Too small a value can hurt performance due to false
224
- * sharing, while the only downside of too large a value is a few bytes of
225
- * wasted memory. The default is 128, which should be large enough for all
226
- * supported platforms.
220
+ * Assumed cache line size. This doesn't affect correctness, but can be used
221
+ * for low-level optimizations. This is mostly used to pad various data
222
+ * structures, to ensure that highly-contended fields are on different cache
223
+ * lines. Too small a value can hurt performance due to false sharing, while
224
+ * the only downside of too large a value is a few bytes of wasted memory.
225
+ * The default is 128, which should be large enough for all supported
226
+ * platforms.
227
227
  */
228
228
  #define PG_CACHE_LINE_SIZE 128
229
229
 
@@ -240,6 +240,13 @@
240
240
  *------------------------------------------------------------------------
241
241
  */
242
242
 
243
+ /*
244
+ * Force use of the non-recursive JSON parser in all cases. This is useful
245
+ * to validate the working of the parser, and the regression tests should
246
+ * pass except for some different error messages about the stack limit.
247
+ */
248
+ /* #define FORCE_JSON_PSTACK */
249
+
243
250
  /*
244
251
  * Include Valgrind "client requests", mostly in the memory allocator, so
245
252
  * Valgrind understands PostgreSQL memory contexts. This permits detecting
@@ -335,6 +342,12 @@
335
342
  */
336
343
  /* #define COPY_PARSE_PLAN_TREES */
337
344
 
345
+ /*
346
+ * Define this to force Bitmapset reallocation on each modification. Helps
347
+ * to find dangling pointers to Bitmapset's.
348
+ */
349
+ /* #define REALLOCATE_BITMAPSETS */
350
+
338
351
  /*
339
352
  * Define this to force all parse and plan trees to be passed through
340
353
  * outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in
@@ -11,7 +11,7 @@
11
11
  * Portions Copyright (c) 1987, 1993, 1994
12
12
  * The Regents of the University of California. All rights reserved.
13
13
  *
14
- * Portions Copyright (c) 2003-2023, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 2003-2024, PostgreSQL Global Development Group
15
15
  *
16
16
  * src/include/pg_getopt.h
17
17
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Definitions for the PostgreSQL tracing framework
5
5
  *
6
- * Copyright (c) 2006-2023, PostgreSQL Global Development Group
6
+ * Copyright (c) 2006-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/pg_trace.h
9
9
  * ----------
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Definitions for the PostgreSQL cumulative statistics system.
5
5
  *
6
- * Copyright (c) 2001-2023, PostgreSQL Global Development Group
6
+ * Copyright (c) 2001-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * src/include/pgstat.h
9
9
  * ----------
@@ -62,7 +62,7 @@ typedef enum TrackFunctionsLevel
62
62
  {
63
63
  TRACK_FUNC_OFF,
64
64
  TRACK_FUNC_PL,
65
- TRACK_FUNC_ALL
65
+ TRACK_FUNC_ALL,
66
66
  } TrackFunctionsLevel;
67
67
 
68
68
  typedef enum PgStat_FetchConsistency
@@ -79,7 +79,7 @@ typedef enum SessionEndType
79
79
  DISCONNECT_NORMAL,
80
80
  DISCONNECT_CLIENT_EOF,
81
81
  DISCONNECT_FATAL,
82
- DISCONNECT_KILLED
82
+ DISCONNECT_KILLED,
83
83
  } SessionEndType;
84
84
 
85
85
  /* ----------
@@ -260,13 +260,15 @@ typedef struct PgStat_BgWriterStats
260
260
 
261
261
  typedef struct PgStat_CheckpointerStats
262
262
  {
263
- PgStat_Counter timed_checkpoints;
264
- PgStat_Counter requested_checkpoints;
265
- PgStat_Counter checkpoint_write_time; /* times in milliseconds */
266
- PgStat_Counter checkpoint_sync_time;
267
- PgStat_Counter buf_written_checkpoints;
268
- PgStat_Counter buf_written_backend;
269
- PgStat_Counter buf_fsync_backend;
263
+ PgStat_Counter num_timed;
264
+ PgStat_Counter num_requested;
265
+ PgStat_Counter restartpoints_timed;
266
+ PgStat_Counter restartpoints_requested;
267
+ PgStat_Counter restartpoints_performed;
268
+ PgStat_Counter write_time; /* times in milliseconds */
269
+ PgStat_Counter sync_time;
270
+ PgStat_Counter buffers_written;
271
+ TimestampTz stat_reset_timestamp;
270
272
  } PgStat_CheckpointerStats;
271
273
 
272
274
 
@@ -520,7 +522,7 @@ extern bool pgstat_bktype_io_stats_valid(PgStat_BktypeIO *backend_io,
520
522
  BackendType bktype);
521
523
  extern void pgstat_count_io_op(IOObject io_object, IOContext io_context, IOOp io_op);
522
524
  extern void pgstat_count_io_op_n(IOObject io_object, IOContext io_context, IOOp io_op, uint32 cnt);
523
- extern instr_time pgstat_prepare_io_time(void);
525
+ extern instr_time pgstat_prepare_io_time(bool track_io_guc);
524
526
  extern void pgstat_count_io_op_time(IOObject io_object, IOContext io_context,
525
527
  IOOp io_op, instr_time start_time, uint32 cnt);
526
528
 
@@ -3,7 +3,7 @@
3
3
  * pgtime.h
4
4
  * PostgreSQL internal timezone library
5
5
  *
6
- * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * IDENTIFICATION
9
9
  * src/include/pgtime.h
@@ -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
  * src/pl/plpgsql/src/pl_reserved_kwlist.h
@@ -3,7 +3,7 @@
3
3
  * pl_reserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
@@ -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
  * src/pl/plpgsql/src/pl_unreserved_kwlist.h
@@ -3,7 +3,7 @@
3
3
  * pl_unreserved_kwlist_d.h
4
4
  * List of keywords represented as a ScanKeywordList.
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
@@ -433,6 +433,10 @@
433
433
  "idle_in_transaction_session_timeout", ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT
434
434
  },
435
435
 
436
+ {
437
+ "transaction_timeout", ERRCODE_TRANSACTION_TIMEOUT
438
+ },
439
+
436
440
  {
437
441
  "invalid_sql_statement_name", ERRCODE_INVALID_SQL_STATEMENT_NAME
438
442
  },
@@ -845,10 +849,6 @@
845
849
  "duplicate_file", ERRCODE_DUPLICATE_FILE
846
850
  },
847
851
 
848
- {
849
- "snapshot_too_old", ERRCODE_SNAPSHOT_TOO_OLD
850
- },
851
-
852
852
  {
853
853
  "config_file_error", ERRCODE_CONFIG_FILE_ERROR
854
854
  },
@@ -3,7 +3,7 @@
3
3
  * plpgsql.h - Definitions for the PL/pgSQL
4
4
  * procedural language
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
  *
@@ -42,7 +42,7 @@ typedef enum PLpgSQL_nsitem_type
42
42
  {
43
43
  PLPGSQL_NSTYPE_LABEL, /* block label */
44
44
  PLPGSQL_NSTYPE_VAR, /* scalar variable */
45
- PLPGSQL_NSTYPE_REC /* composite variable */
45
+ PLPGSQL_NSTYPE_REC, /* composite variable */
46
46
  } PLpgSQL_nsitem_type;
47
47
 
48
48
  /*
@@ -52,7 +52,7 @@ typedef enum PLpgSQL_label_type
52
52
  {
53
53
  PLPGSQL_LABEL_BLOCK, /* DECLARE/BEGIN block */
54
54
  PLPGSQL_LABEL_LOOP, /* looping construct */
55
- PLPGSQL_LABEL_OTHER /* anything else */
55
+ PLPGSQL_LABEL_OTHER, /* anything else */
56
56
  } PLpgSQL_label_type;
57
57
 
58
58
  /*
@@ -64,7 +64,7 @@ typedef enum PLpgSQL_datum_type
64
64
  PLPGSQL_DTYPE_ROW,
65
65
  PLPGSQL_DTYPE_REC,
66
66
  PLPGSQL_DTYPE_RECFIELD,
67
- PLPGSQL_DTYPE_PROMISE
67
+ PLPGSQL_DTYPE_PROMISE,
68
68
  } PLpgSQL_datum_type;
69
69
 
70
70
  /*
@@ -83,7 +83,7 @@ typedef enum PLpgSQL_promise_type
83
83
  PLPGSQL_PROMISE_TG_NARGS,
84
84
  PLPGSQL_PROMISE_TG_ARGV,
85
85
  PLPGSQL_PROMISE_TG_EVENT,
86
- PLPGSQL_PROMISE_TG_TAG
86
+ PLPGSQL_PROMISE_TG_TAG,
87
87
  } PLpgSQL_promise_type;
88
88
 
89
89
  /*
@@ -93,7 +93,7 @@ typedef enum PLpgSQL_type_type
93
93
  {
94
94
  PLPGSQL_TTYPE_SCALAR, /* scalar types and domains */
95
95
  PLPGSQL_TTYPE_REC, /* composite types, including RECORD */
96
- PLPGSQL_TTYPE_PSEUDO /* pseudotypes */
96
+ PLPGSQL_TTYPE_PSEUDO, /* pseudotypes */
97
97
  } PLpgSQL_type_type;
98
98
 
99
99
  /*
@@ -127,7 +127,7 @@ typedef enum PLpgSQL_stmt_type
127
127
  PLPGSQL_STMT_PERFORM,
128
128
  PLPGSQL_STMT_CALL,
129
129
  PLPGSQL_STMT_COMMIT,
130
- PLPGSQL_STMT_ROLLBACK
130
+ PLPGSQL_STMT_ROLLBACK,
131
131
  } PLpgSQL_stmt_type;
132
132
 
133
133
  /*
@@ -138,7 +138,7 @@ enum
138
138
  PLPGSQL_RC_OK,
139
139
  PLPGSQL_RC_EXIT,
140
140
  PLPGSQL_RC_RETURN,
141
- PLPGSQL_RC_CONTINUE
141
+ PLPGSQL_RC_CONTINUE,
142
142
  };
143
143
 
144
144
  /*
@@ -158,7 +158,7 @@ typedef enum PLpgSQL_getdiag_kind
158
158
  PLPGSQL_GETDIAG_DATATYPE_NAME,
159
159
  PLPGSQL_GETDIAG_MESSAGE_TEXT,
160
160
  PLPGSQL_GETDIAG_TABLE_NAME,
161
- PLPGSQL_GETDIAG_SCHEMA_NAME
161
+ PLPGSQL_GETDIAG_SCHEMA_NAME,
162
162
  } PLpgSQL_getdiag_kind;
163
163
 
164
164
  /*
@@ -174,7 +174,7 @@ typedef enum PLpgSQL_raise_option_type
174
174
  PLPGSQL_RAISEOPTION_CONSTRAINT,
175
175
  PLPGSQL_RAISEOPTION_DATATYPE,
176
176
  PLPGSQL_RAISEOPTION_TABLE,
177
- PLPGSQL_RAISEOPTION_SCHEMA
177
+ PLPGSQL_RAISEOPTION_SCHEMA,
178
178
  } PLpgSQL_raise_option_type;
179
179
 
180
180
  /*
@@ -184,7 +184,7 @@ typedef enum PLpgSQL_resolve_option
184
184
  {
185
185
  PLPGSQL_RESOLVE_ERROR, /* throw error if ambiguous */
186
186
  PLPGSQL_RESOLVE_VARIABLE, /* prefer plpgsql var to table column */
187
- PLPGSQL_RESOLVE_COLUMN /* prefer table column to plpgsql var */
187
+ PLPGSQL_RESOLVE_COLUMN, /* prefer table column to plpgsql var */
188
188
  } PLpgSQL_resolve_option;
189
189
 
190
190
 
@@ -957,7 +957,7 @@ typedef enum PLpgSQL_trigtype
957
957
  {
958
958
  PLPGSQL_DML_TRIGGER,
959
959
  PLPGSQL_EVENT_TRIGGER,
960
- PLPGSQL_NOT_TRIGGER
960
+ PLPGSQL_NOT_TRIGGER,
961
961
  } PLpgSQL_trigtype;
962
962
 
963
963
  /*
@@ -1188,7 +1188,7 @@ typedef enum
1188
1188
  {
1189
1189
  IDENTIFIER_LOOKUP_NORMAL, /* normal processing of var names */
1190
1190
  IDENTIFIER_LOOKUP_DECLARE, /* In DECLARE --- don't look up names */
1191
- IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
1191
+ IDENTIFIER_LOOKUP_EXPR, /* In SQL expression --- special case */
1192
1192
  } IdentifierLookup;
1193
1193
 
1194
1194
  extern __thread IdentifierLookup plpgsql_IdentifierLookup;
@@ -1249,6 +1249,7 @@ extern PLpgSQL_type *plpgsql_parse_cwordrowtype(List *idents);
1249
1249
  extern PGDLLEXPORT PLpgSQL_type *plpgsql_build_datatype(Oid typeOid, int32 typmod,
1250
1250
  Oid collation,
1251
1251
  TypeName *origtypname);
1252
+ extern PLpgSQL_type *plpgsql_build_datatype_arrayof(PLpgSQL_type *dtype);
1252
1253
  extern PLpgSQL_variable *plpgsql_build_variable(const char *refname, int lineno,
1253
1254
  PLpgSQL_type *dtype,
1254
1255
  bool add2namespace);
@@ -1318,6 +1319,7 @@ extern void plpgsql_dumptree(PLpgSQL_function *func);
1318
1319
  */
1319
1320
  extern int plpgsql_base_yylex(void);
1320
1321
  extern int plpgsql_yylex(void);
1322
+ extern int plpgsql_token_length(void);
1321
1323
  extern void plpgsql_push_back_token(int token);
1322
1324
  extern bool plpgsql_token_is_unreserved_keyword(int token);
1323
1325
  extern void plpgsql_append_source_text(StringInfo buf,
@@ -3,7 +3,7 @@
3
3
  * arch-arm.h
4
4
  * Atomic operations considerations specific to ARM
5
5
  *
6
- * Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 2013-2024, PostgreSQL Global Development Group
7
7
  *
8
8
  * NOTES:
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * arch-hppa.h
4
4
  * Atomic operations considerations specific to HPPA
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:
@@ -3,7 +3,7 @@
3
3
  * arch-ppc.h
4
4
  * Atomic operations considerations specific to PowerPC
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:
@@ -173,6 +173,8 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
173
173
  uint32 condition_register;
174
174
  bool ret;
175
175
 
176
+ AssertPointerAlignment(expected, 8);
177
+
176
178
  /* Like u32, but s/lwarx/ldarx/; s/stwcx/stdcx/; s/cmpw/cmpd/ */
177
179
  #ifdef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
178
180
  if (__builtin_constant_p(*expected) &&
@@ -7,7 +7,7 @@
7
7
  * support for xadd and cmpxchg. Given that the 386 isn't supported anywhere
8
8
  * anymore that's not much of a restriction luckily.
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
  * NOTES:
@@ -207,6 +207,8 @@ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
207
207
  {
208
208
  char ret;
209
209
 
210
+ AssertPointerAlignment(expected, 8);
211
+
210
212
  /*
211
213
  * Perform cmpxchg and use the zero flag which it implicitly sets when
212
214
  * equal to measure the success.
@@ -4,7 +4,7 @@
4
4
  * Fallback for platforms without spinlock and/or atomics support. Slower
5
5
  * than native atomics support, but not unusably slow.
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/port/atomics/fallback.h