pg_query 4.2.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +6 -8
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/extconf.rb +14 -4
  6. data/ext/pg_query/include/pg_query.h +27 -3
  7. data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
  29. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
  30. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  31. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  32. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  34. data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
  36. data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
  37. data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
  38. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  39. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  40. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
  42. data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
  43. data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
  44. data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
  45. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
  46. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  47. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
  48. data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
  49. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
  50. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
  52. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  53. data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
  54. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
  58. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
  60. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  82. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
  125. data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
  126. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
  127. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
  129. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  130. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
  132. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
  133. data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
  134. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
  135. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  136. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
  137. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  138. data/ext/pg_query/include/postgres/common/int.h +437 -0
  139. data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
  140. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  141. data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
  142. data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
  143. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  144. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  145. data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
  146. data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
  147. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
  148. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  149. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  150. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
  151. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  152. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  153. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  154. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
  155. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
  156. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
  157. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
  158. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  159. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  160. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
  161. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  162. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
  163. data/ext/pg_query/include/postgres/gram.h +1127 -0
  164. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  165. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
  166. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  167. data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
  168. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
  169. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  170. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
  171. data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
  172. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  173. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
  181. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  182. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  183. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
  184. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  185. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
  186. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
  192. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  193. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
  195. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  196. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  203. data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
  204. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  205. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  206. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
  208. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
  214. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
  215. data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
  216. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  224. data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
  225. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  226. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  227. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
  228. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  229. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
  230. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
  231. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  232. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
  233. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  234. data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
  235. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
  236. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
  237. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  238. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
  239. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
  240. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
  241. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
  242. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
  243. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  245. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
  248. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  249. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  250. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  251. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  252. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
  253. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  254. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  255. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  256. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  257. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  258. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  259. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  260. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  261. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  264. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  268. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  269. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  270. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  275. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  276. data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
  277. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  278. data/ext/pg_query/include/postgres/postgres.h +579 -0
  279. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  280. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
  281. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  285. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
  289. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
  290. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
  291. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
  292. data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
  293. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  294. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
  295. data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
  296. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
  297. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
  298. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
  299. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
  300. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  301. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  304. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
  305. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
  306. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  307. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
  308. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
  309. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
  310. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
  311. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
  312. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
  313. data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
  314. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
  315. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  316. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  317. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
  318. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
  320. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
  321. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
  323. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
  324. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  325. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  326. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
  329. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
  330. data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
  331. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  332. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
  333. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
  335. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
  336. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
  337. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  338. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  339. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
  340. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  341. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
  342. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
  343. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
  344. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
  345. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
  346. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  347. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
  348. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
  354. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
  355. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
  356. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  357. data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
  358. data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
  359. data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
  360. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
  361. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
  362. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  363. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  364. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
  365. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  367. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
  368. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  369. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  370. data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
  371. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
  372. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
  374. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
  375. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  376. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
  377. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
  378. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
  379. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
  381. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  382. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
  383. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  384. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  385. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
  386. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
  387. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  388. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
  389. data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
  390. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
  391. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
  392. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
  393. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  395. data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
  396. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
  397. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
  398. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  399. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  400. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
  401. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  402. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
  403. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
  405. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
  407. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
  408. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
  409. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
  411. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
  412. data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
  413. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
  414. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
  415. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
  416. data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
  417. data/ext/pg_query/pg_query.c +10 -1
  418. data/ext/pg_query/pg_query.pb-c.c +19755 -17757
  419. data/ext/pg_query/pg_query_deparse.c +1 -10635
  420. data/ext/pg_query/pg_query_fingerprint.c +12 -8
  421. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  422. data/ext/pg_query/pg_query_internal.h +1 -1
  423. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  424. data/ext/pg_query/pg_query_normalize.c +1 -1
  425. data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
  426. data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
  427. data/ext/pg_query/pg_query_parse.c +47 -5
  428. data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
  429. data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
  430. data/ext/pg_query/pg_query_ruby.c +5 -0
  431. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  432. data/ext/pg_query/pg_query_scan.c +1 -1
  433. data/ext/pg_query/pg_query_split.c +3 -3
  434. data/ext/pg_query/postgres_deparse.c +11067 -0
  435. data/ext/pg_query/postgres_deparse.h +9 -0
  436. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  437. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  438. data/ext/pg_query/src_backend_commands_define.c +1 -1
  439. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  440. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  441. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  442. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  443. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  444. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  445. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  446. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  447. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  448. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  449. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  450. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  451. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  452. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  453. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  454. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  455. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  456. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  457. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  458. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  459. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  460. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  461. data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
  462. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  463. data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
  464. data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
  465. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  466. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  467. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  468. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  469. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  470. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  471. data/ext/pg_query/src_common_encnames.c +4 -1
  472. data/ext/pg_query/src_common_hashfn.c +1 -1
  473. data/ext/pg_query/src_common_keywords.c +1 -1
  474. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  475. data/ext/pg_query/src_common_kwlookup.c +1 -1
  476. data/ext/pg_query/src_common_psprintf.c +1 -1
  477. data/ext/pg_query/src_common_stringinfo.c +4 -4
  478. data/ext/pg_query/src_common_wchar.c +9 -8
  479. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  480. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  481. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  482. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  483. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  484. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  485. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  486. data/ext/pg_query/src_port_pg_bitutils.c +79 -5
  487. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  488. data/ext/pg_query/src_port_snprintf.c +6 -10
  489. data/ext/pg_query/src_port_strerror.c +1 -1
  490. data/ext/pg_query/src_port_strlcpy.c +79 -0
  491. data/lib/pg_query/fingerprint.rb +2 -3
  492. data/lib/pg_query/node.rb +16 -11
  493. data/lib/pg_query/parse.rb +1 -1
  494. data/lib/pg_query/pg_query_pb.rb +166 -3191
  495. data/lib/pg_query/treewalker.rb +23 -5
  496. data/lib/pg_query/version.rb +1 -1
  497. metadata +432 -380
  498. data/ext/pg_query/guc-file.c +0 -0
  499. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  500. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  501. data/ext/pg_query/include/commands/variable.h +0 -38
  502. data/ext/pg_query/include/common/ip.h +0 -31
  503. data/ext/pg_query/include/getaddrinfo.h +0 -162
  504. data/ext/pg_query/include/kwlist_d.h +0 -1095
  505. data/ext/pg_query/include/parser/gram.h +0 -1101
  506. data/ext/pg_query/include/pg_config_os.h +0 -8
  507. data/ext/pg_query/include/portability/instr_time.h +0 -256
  508. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  509. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  510. data/ext/pg_query/include/postmaster/pgarch.h +0 -73
  511. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  512. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  513. data/ext/pg_query/include/utils/dynahash.h +0 -20
  514. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  515. data/ext/pg_query/include/utils/pidfile.h +0 -56
  516. data/ext/pg_query/include/utils/ps_status.h +0 -25
  517. data/ext/pg_query/include/utils/rls.h +0 -50
  518. data/ext/pg_query/include/utils/tzparser.h +0 -39
  519. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
  520. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  521. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  522. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  523. data/ext/pg_query/src_common_pg_prng.c +0 -152
  524. data/ext/pg_query/src_common_string.c +0 -92
  525. data/ext/pg_query/src_port_pgsleep.c +0 -69
  526. data/ext/pg_query/src_port_strnlen.c +0 -39
  527. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  528. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
  529. /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
  530. /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
  531. /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
@@ -0,0 +1,437 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * int.h
4
+ * Routines to perform integer math, while checking for overflows.
5
+ *
6
+ * The routines in this file are intended to be well defined C, without
7
+ * relying on compiler flags like -fwrapv.
8
+ *
9
+ * To reduce the overhead of these routines try to use compiler intrinsics
10
+ * where available. That's not that important for the 16, 32 bit cases, but
11
+ * the 64 bit cases can be considerably faster with intrinsics. In case no
12
+ * intrinsics are available 128 bit math is used where available.
13
+ *
14
+ * Copyright (c) 2017-2023, PostgreSQL Global Development Group
15
+ *
16
+ * src/include/common/int.h
17
+ *
18
+ *-------------------------------------------------------------------------
19
+ */
20
+ #ifndef COMMON_INT_H
21
+ #define COMMON_INT_H
22
+
23
+
24
+ /*---------
25
+ * The following guidelines apply to all the routines:
26
+ * - If a + b overflows, return true, otherwise store the result of a + b
27
+ * into *result. The content of *result is implementation defined in case of
28
+ * overflow.
29
+ * - If a - b overflows, return true, otherwise store the result of a - b
30
+ * into *result. The content of *result is implementation defined in case of
31
+ * overflow.
32
+ * - If a * b overflows, return true, otherwise store the result of a * b
33
+ * into *result. The content of *result is implementation defined in case of
34
+ * overflow.
35
+ *---------
36
+ */
37
+
38
+ /*------------------------------------------------------------------------
39
+ * Overflow routines for signed integers
40
+ *------------------------------------------------------------------------
41
+ */
42
+
43
+ /*
44
+ * INT16
45
+ */
46
+ static inline bool
47
+ pg_add_s16_overflow(int16 a, int16 b, int16 *result)
48
+ {
49
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
50
+ return __builtin_add_overflow(a, b, result);
51
+ #else
52
+ int32 res = (int32) a + (int32) b;
53
+
54
+ if (res > PG_INT16_MAX || res < PG_INT16_MIN)
55
+ {
56
+ *result = 0x5EED; /* to avoid spurious warnings */
57
+ return true;
58
+ }
59
+ *result = (int16) res;
60
+ return false;
61
+ #endif
62
+ }
63
+
64
+ static inline bool
65
+ pg_sub_s16_overflow(int16 a, int16 b, int16 *result)
66
+ {
67
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
68
+ return __builtin_sub_overflow(a, b, result);
69
+ #else
70
+ int32 res = (int32) a - (int32) b;
71
+
72
+ if (res > PG_INT16_MAX || res < PG_INT16_MIN)
73
+ {
74
+ *result = 0x5EED; /* to avoid spurious warnings */
75
+ return true;
76
+ }
77
+ *result = (int16) res;
78
+ return false;
79
+ #endif
80
+ }
81
+
82
+ static inline bool
83
+ pg_mul_s16_overflow(int16 a, int16 b, int16 *result)
84
+ {
85
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
86
+ return __builtin_mul_overflow(a, b, result);
87
+ #else
88
+ int32 res = (int32) a * (int32) b;
89
+
90
+ if (res > PG_INT16_MAX || res < PG_INT16_MIN)
91
+ {
92
+ *result = 0x5EED; /* to avoid spurious warnings */
93
+ return true;
94
+ }
95
+ *result = (int16) res;
96
+ return false;
97
+ #endif
98
+ }
99
+
100
+ /*
101
+ * INT32
102
+ */
103
+ static inline bool
104
+ pg_add_s32_overflow(int32 a, int32 b, int32 *result)
105
+ {
106
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
107
+ return __builtin_add_overflow(a, b, result);
108
+ #else
109
+ int64 res = (int64) a + (int64) b;
110
+
111
+ if (res > PG_INT32_MAX || res < PG_INT32_MIN)
112
+ {
113
+ *result = 0x5EED; /* to avoid spurious warnings */
114
+ return true;
115
+ }
116
+ *result = (int32) res;
117
+ return false;
118
+ #endif
119
+ }
120
+
121
+ static inline bool
122
+ pg_sub_s32_overflow(int32 a, int32 b, int32 *result)
123
+ {
124
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
125
+ return __builtin_sub_overflow(a, b, result);
126
+ #else
127
+ int64 res = (int64) a - (int64) b;
128
+
129
+ if (res > PG_INT32_MAX || res < PG_INT32_MIN)
130
+ {
131
+ *result = 0x5EED; /* to avoid spurious warnings */
132
+ return true;
133
+ }
134
+ *result = (int32) res;
135
+ return false;
136
+ #endif
137
+ }
138
+
139
+ static inline bool
140
+ pg_mul_s32_overflow(int32 a, int32 b, int32 *result)
141
+ {
142
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
143
+ return __builtin_mul_overflow(a, b, result);
144
+ #else
145
+ int64 res = (int64) a * (int64) b;
146
+
147
+ if (res > PG_INT32_MAX || res < PG_INT32_MIN)
148
+ {
149
+ *result = 0x5EED; /* to avoid spurious warnings */
150
+ return true;
151
+ }
152
+ *result = (int32) res;
153
+ return false;
154
+ #endif
155
+ }
156
+
157
+ /*
158
+ * INT64
159
+ */
160
+ static inline bool
161
+ pg_add_s64_overflow(int64 a, int64 b, int64 *result)
162
+ {
163
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
164
+ return __builtin_add_overflow(a, b, result);
165
+ #elif defined(HAVE_INT128)
166
+ int128 res = (int128) a + (int128) b;
167
+
168
+ if (res > PG_INT64_MAX || res < PG_INT64_MIN)
169
+ {
170
+ *result = 0x5EED; /* to avoid spurious warnings */
171
+ return true;
172
+ }
173
+ *result = (int64) res;
174
+ return false;
175
+ #else
176
+ if ((a > 0 && b > 0 && a > PG_INT64_MAX - b) ||
177
+ (a < 0 && b < 0 && a < PG_INT64_MIN - b))
178
+ {
179
+ *result = 0x5EED; /* to avoid spurious warnings */
180
+ return true;
181
+ }
182
+ *result = a + b;
183
+ return false;
184
+ #endif
185
+ }
186
+
187
+ static inline bool
188
+ pg_sub_s64_overflow(int64 a, int64 b, int64 *result)
189
+ {
190
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
191
+ return __builtin_sub_overflow(a, b, result);
192
+ #elif defined(HAVE_INT128)
193
+ int128 res = (int128) a - (int128) b;
194
+
195
+ if (res > PG_INT64_MAX || res < PG_INT64_MIN)
196
+ {
197
+ *result = 0x5EED; /* to avoid spurious warnings */
198
+ return true;
199
+ }
200
+ *result = (int64) res;
201
+ return false;
202
+ #else
203
+ if ((a < 0 && b > 0 && a < PG_INT64_MIN + b) ||
204
+ (a > 0 && b < 0 && a > PG_INT64_MAX + b))
205
+ {
206
+ *result = 0x5EED; /* to avoid spurious warnings */
207
+ return true;
208
+ }
209
+ *result = a - b;
210
+ return false;
211
+ #endif
212
+ }
213
+
214
+ static inline bool
215
+ pg_mul_s64_overflow(int64 a, int64 b, int64 *result)
216
+ {
217
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
218
+ return __builtin_mul_overflow(a, b, result);
219
+ #elif defined(HAVE_INT128)
220
+ int128 res = (int128) a * (int128) b;
221
+
222
+ if (res > PG_INT64_MAX || res < PG_INT64_MIN)
223
+ {
224
+ *result = 0x5EED; /* to avoid spurious warnings */
225
+ return true;
226
+ }
227
+ *result = (int64) res;
228
+ return false;
229
+ #else
230
+ /*
231
+ * Overflow can only happen if at least one value is outside the range
232
+ * sqrt(min)..sqrt(max) so check that first as the division can be quite a
233
+ * bit more expensive than the multiplication.
234
+ *
235
+ * Multiplying by 0 or 1 can't overflow of course and checking for 0
236
+ * separately avoids any risk of dividing by 0. Be careful about dividing
237
+ * INT_MIN by -1 also, note reversing the a and b to ensure we're always
238
+ * dividing it by a positive value.
239
+ *
240
+ */
241
+ if ((a > PG_INT32_MAX || a < PG_INT32_MIN ||
242
+ b > PG_INT32_MAX || b < PG_INT32_MIN) &&
243
+ a != 0 && a != 1 && b != 0 && b != 1 &&
244
+ ((a > 0 && b > 0 && a > PG_INT64_MAX / b) ||
245
+ (a > 0 && b < 0 && b < PG_INT64_MIN / a) ||
246
+ (a < 0 && b > 0 && a < PG_INT64_MIN / b) ||
247
+ (a < 0 && b < 0 && a < PG_INT64_MAX / b)))
248
+ {
249
+ *result = 0x5EED; /* to avoid spurious warnings */
250
+ return true;
251
+ }
252
+ *result = a * b;
253
+ return false;
254
+ #endif
255
+ }
256
+
257
+ /*------------------------------------------------------------------------
258
+ * Overflow routines for unsigned integers
259
+ *------------------------------------------------------------------------
260
+ */
261
+
262
+ /*
263
+ * UINT16
264
+ */
265
+ static inline bool
266
+ pg_add_u16_overflow(uint16 a, uint16 b, uint16 *result)
267
+ {
268
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
269
+ return __builtin_add_overflow(a, b, result);
270
+ #else
271
+ uint16 res = a + b;
272
+
273
+ if (res < a)
274
+ {
275
+ *result = 0x5EED; /* to avoid spurious warnings */
276
+ return true;
277
+ }
278
+ *result = res;
279
+ return false;
280
+ #endif
281
+ }
282
+
283
+ static inline bool
284
+ pg_sub_u16_overflow(uint16 a, uint16 b, uint16 *result)
285
+ {
286
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
287
+ return __builtin_sub_overflow(a, b, result);
288
+ #else
289
+ if (b > a)
290
+ {
291
+ *result = 0x5EED; /* to avoid spurious warnings */
292
+ return true;
293
+ }
294
+ *result = a - b;
295
+ return false;
296
+ #endif
297
+ }
298
+
299
+ static inline bool
300
+ pg_mul_u16_overflow(uint16 a, uint16 b, uint16 *result)
301
+ {
302
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
303
+ return __builtin_mul_overflow(a, b, result);
304
+ #else
305
+ uint32 res = (uint32) a * (uint32) b;
306
+
307
+ if (res > PG_UINT16_MAX)
308
+ {
309
+ *result = 0x5EED; /* to avoid spurious warnings */
310
+ return true;
311
+ }
312
+ *result = (uint16) res;
313
+ return false;
314
+ #endif
315
+ }
316
+
317
+ /*
318
+ * INT32
319
+ */
320
+ static inline bool
321
+ pg_add_u32_overflow(uint32 a, uint32 b, uint32 *result)
322
+ {
323
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
324
+ return __builtin_add_overflow(a, b, result);
325
+ #else
326
+ uint32 res = a + b;
327
+
328
+ if (res < a)
329
+ {
330
+ *result = 0x5EED; /* to avoid spurious warnings */
331
+ return true;
332
+ }
333
+ *result = res;
334
+ return false;
335
+ #endif
336
+ }
337
+
338
+ static inline bool
339
+ pg_sub_u32_overflow(uint32 a, uint32 b, uint32 *result)
340
+ {
341
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
342
+ return __builtin_sub_overflow(a, b, result);
343
+ #else
344
+ if (b > a)
345
+ {
346
+ *result = 0x5EED; /* to avoid spurious warnings */
347
+ return true;
348
+ }
349
+ *result = a - b;
350
+ return false;
351
+ #endif
352
+ }
353
+
354
+ static inline bool
355
+ pg_mul_u32_overflow(uint32 a, uint32 b, uint32 *result)
356
+ {
357
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
358
+ return __builtin_mul_overflow(a, b, result);
359
+ #else
360
+ uint64 res = (uint64) a * (uint64) b;
361
+
362
+ if (res > PG_UINT32_MAX)
363
+ {
364
+ *result = 0x5EED; /* to avoid spurious warnings */
365
+ return true;
366
+ }
367
+ *result = (uint32) res;
368
+ return false;
369
+ #endif
370
+ }
371
+
372
+ /*
373
+ * UINT64
374
+ */
375
+ static inline bool
376
+ pg_add_u64_overflow(uint64 a, uint64 b, uint64 *result)
377
+ {
378
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
379
+ return __builtin_add_overflow(a, b, result);
380
+ #else
381
+ uint64 res = a + b;
382
+
383
+ if (res < a)
384
+ {
385
+ *result = 0x5EED; /* to avoid spurious warnings */
386
+ return true;
387
+ }
388
+ *result = res;
389
+ return false;
390
+ #endif
391
+ }
392
+
393
+ static inline bool
394
+ pg_sub_u64_overflow(uint64 a, uint64 b, uint64 *result)
395
+ {
396
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
397
+ return __builtin_sub_overflow(a, b, result);
398
+ #else
399
+ if (b > a)
400
+ {
401
+ *result = 0x5EED; /* to avoid spurious warnings */
402
+ return true;
403
+ }
404
+ *result = a - b;
405
+ return false;
406
+ #endif
407
+ }
408
+
409
+ static inline bool
410
+ pg_mul_u64_overflow(uint64 a, uint64 b, uint64 *result)
411
+ {
412
+ #if defined(HAVE__BUILTIN_OP_OVERFLOW)
413
+ return __builtin_mul_overflow(a, b, result);
414
+ #elif defined(HAVE_INT128)
415
+ uint128 res = (uint128) a * (uint128) b;
416
+
417
+ if (res > PG_UINT64_MAX)
418
+ {
419
+ *result = 0x5EED; /* to avoid spurious warnings */
420
+ return true;
421
+ }
422
+ *result = (uint64) res;
423
+ return false;
424
+ #else
425
+ uint64 res = a * b;
426
+
427
+ if (a != 0 && b != res / a)
428
+ {
429
+ *result = 0x5EED; /* to avoid spurious warnings */
430
+ return true;
431
+ }
432
+ *result = res;
433
+ return false;
434
+ #endif
435
+ }
436
+
437
+ #endif /* COMMON_INT_H */
@@ -4,7 +4,7 @@
4
4
  * PostgreSQL's list of SQL keywords
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/common/keywords.h
@@ -4,7 +4,7 @@
4
4
  * Key word lookup for PostgreSQL
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/common/kwlookup.h
@@ -32,7 +32,7 @@ typedef struct ScanKeywordList
32
32
  } ScanKeywordList;
33
33
 
34
34
 
35
- extern int ScanKeywordLookup(const char *text, const ScanKeywordList *keywords);
35
+ extern int ScanKeywordLookup(const char *str, const ScanKeywordList *keywords);
36
36
 
37
37
  /* Code that wants to retrieve the text of the N'th keyword should use this. */
38
38
  static inline const char *
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * Pseudo-Random Number Generator
4
4
  *
5
- * Copyright (c) 2021-2022, PostgreSQL Global Development Group
5
+ * Copyright (c) 2021-2023, PostgreSQL Global Development Group
6
6
  *
7
7
  * src/include/common/pg_prng.h
8
8
  *
@@ -26,7 +26,7 @@ typedef struct pg_prng_state
26
26
  * Callers not needing local PRNG series may use this global state vector,
27
27
  * after initializing it with one of the pg_prng_...seed functions.
28
28
  */
29
- extern PGDLLIMPORT __thread pg_prng_state pg_global_prng_state;
29
+ extern PGDLLIMPORT pg_prng_state pg_global_prng_state;
30
30
 
31
31
  extern void pg_prng_seed(pg_prng_state *state, uint64 seed);
32
32
  extern void pg_prng_fseed(pg_prng_state *state, double fseed);
@@ -55,6 +55,7 @@ extern uint32 pg_prng_uint32(pg_prng_state *state);
55
55
  extern int32 pg_prng_int32(pg_prng_state *state);
56
56
  extern int32 pg_prng_int32p(pg_prng_state *state);
57
57
  extern double pg_prng_double(pg_prng_state *state);
58
+ extern double pg_prng_double_normal(pg_prng_state *state);
58
59
  extern bool pg_prng_bool(pg_prng_state *state);
59
60
 
60
61
  #endif /* PG_PRNG_H */
@@ -3,7 +3,7 @@
3
3
  * relpath.h
4
4
  * Declarations for GetRelationPath() and friends
5
5
  *
6
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * src/include/common/relpath.h
@@ -19,6 +19,13 @@
19
19
  */
20
20
  #include "catalog/catversion.h" /* pgrminclude ignore */
21
21
 
22
+ /*
23
+ * RelFileNumber data type identifies the specific relation file name.
24
+ */
25
+ typedef Oid RelFileNumber;
26
+ #define InvalidRelFileNumber ((RelFileNumber) InvalidOid)
27
+ #define RelFileNumberIsValid(relnumber) \
28
+ ((bool) ((relnumber) != InvalidRelFileNumber))
22
29
 
23
30
  /*
24
31
  * Name of major-version-specific tablespace subdirectories
@@ -64,27 +71,27 @@ extern int forkname_chars(const char *str, ForkNumber *fork);
64
71
  /*
65
72
  * Stuff for computing filesystem pathnames for relations.
66
73
  */
67
- extern char *GetDatabasePath(Oid dbNode, Oid spcNode);
74
+ extern char *GetDatabasePath(Oid dbOid, Oid spcOid);
68
75
 
69
- extern char *GetRelationPath(Oid dbNode, Oid spcNode, Oid relNode,
76
+ extern char *GetRelationPath(Oid dbOid, Oid spcOid, RelFileNumber relNumber,
70
77
  int backendId, ForkNumber forkNumber);
71
78
 
72
79
  /*
73
80
  * Wrapper macros for GetRelationPath. Beware of multiple
74
- * evaluation of the RelFileNode or RelFileNodeBackend argument!
81
+ * evaluation of the RelFileLocator or RelFileLocatorBackend argument!
75
82
  */
76
83
 
77
- /* First argument is a RelFileNode */
78
- #define relpathbackend(rnode, backend, forknum) \
79
- GetRelationPath((rnode).dbNode, (rnode).spcNode, (rnode).relNode, \
84
+ /* First argument is a RelFileLocator */
85
+ #define relpathbackend(rlocator, backend, forknum) \
86
+ GetRelationPath((rlocator).dbOid, (rlocator).spcOid, (rlocator).relNumber, \
80
87
  backend, forknum)
81
88
 
82
- /* First argument is a RelFileNode */
83
- #define relpathperm(rnode, forknum) \
84
- relpathbackend(rnode, InvalidBackendId, forknum)
89
+ /* First argument is a RelFileLocator */
90
+ #define relpathperm(rlocator, forknum) \
91
+ relpathbackend(rlocator, InvalidBackendId, forknum)
85
92
 
86
- /* First argument is a RelFileNodeBackend */
87
- #define relpath(rnode, forknum) \
88
- relpathbackend((rnode).node, (rnode).backend, forknum)
93
+ /* First argument is a RelFileLocatorBackend */
94
+ #define relpath(rlocator, forknum) \
95
+ relpathbackend((rlocator).locator, (rlocator).backend, forknum)
89
96
 
90
97
  #endif /* RELPATH_H */
@@ -0,0 +1,70 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * scram-common.h
4
+ * Declarations for helper functions used for SCRAM authentication
5
+ *
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * src/include/common/scram-common.h
10
+ *
11
+ *-------------------------------------------------------------------------
12
+ */
13
+ #ifndef SCRAM_COMMON_H
14
+ #define SCRAM_COMMON_H
15
+
16
+ #include "common/cryptohash.h"
17
+ #include "common/sha2.h"
18
+
19
+ /* Name of SCRAM mechanisms per IANA */
20
+ #define SCRAM_SHA_256_NAME "SCRAM-SHA-256"
21
+ #define SCRAM_SHA_256_PLUS_NAME "SCRAM-SHA-256-PLUS" /* with channel binding */
22
+
23
+ /* Length of SCRAM keys (client and server) */
24
+ #define SCRAM_SHA_256_KEY_LEN PG_SHA256_DIGEST_LENGTH
25
+
26
+ /*
27
+ * Size of buffers used internally by SCRAM routines, that should be the
28
+ * maximum of SCRAM_SHA_*_KEY_LEN among the hash methods supported.
29
+ */
30
+ #define SCRAM_MAX_KEY_LEN SCRAM_SHA_256_KEY_LEN
31
+
32
+ /*
33
+ * Size of random nonce generated in the authentication exchange. This
34
+ * is in "raw" number of bytes, the actual nonces sent over the wire are
35
+ * encoded using only ASCII-printable characters.
36
+ */
37
+ #define SCRAM_RAW_NONCE_LEN 18
38
+
39
+ /*
40
+ * Length of salt when generating new secrets, in bytes. (It will be stored
41
+ * and sent over the wire encoded in Base64.) 16 bytes is what the example in
42
+ * RFC 7677 uses.
43
+ */
44
+ #define SCRAM_DEFAULT_SALT_LEN 16
45
+
46
+ /*
47
+ * Default number of iterations when generating secret. Should be at least
48
+ * 4096 per RFC 7677.
49
+ */
50
+ #define SCRAM_SHA_256_DEFAULT_ITERATIONS 4096
51
+
52
+ extern int scram_SaltedPassword(const char *password,
53
+ pg_cryptohash_type hash_type, int key_length,
54
+ const char *salt, int saltlen, int iterations,
55
+ uint8 *result, const char **errstr);
56
+ extern int scram_H(const uint8 *input, pg_cryptohash_type hash_type,
57
+ int key_length, uint8 *result,
58
+ const char **errstr);
59
+ extern int scram_ClientKey(const uint8 *salted_password,
60
+ pg_cryptohash_type hash_type, int key_length,
61
+ uint8 *result, const char **errstr);
62
+ extern int scram_ServerKey(const uint8 *salted_password,
63
+ pg_cryptohash_type hash_type, int key_length,
64
+ uint8 *result, const char **errstr);
65
+
66
+ extern char *scram_build_secret(pg_cryptohash_type hash_type, int key_length,
67
+ const char *salt, int saltlen, int iterations,
68
+ const char *password, const char **errstr);
69
+
70
+ #endif /* SCRAM_COMMON_H */
@@ -0,0 +1,32 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * sha2.h
4
+ * Constants related to SHA224, 256, 384 AND 512.
5
+ *
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * IDENTIFICATION
10
+ * src/include/common/sha2.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+
15
+ #ifndef _PG_SHA2_H_
16
+ #define _PG_SHA2_H_
17
+
18
+ /*** SHA224/256/384/512 Various Length Definitions ***********************/
19
+ #define PG_SHA224_BLOCK_LENGTH 64
20
+ #define PG_SHA224_DIGEST_LENGTH 28
21
+ #define PG_SHA224_DIGEST_STRING_LENGTH (PG_SHA224_DIGEST_LENGTH * 2 + 1)
22
+ #define PG_SHA256_BLOCK_LENGTH 64
23
+ #define PG_SHA256_DIGEST_LENGTH 32
24
+ #define PG_SHA256_DIGEST_STRING_LENGTH (PG_SHA256_DIGEST_LENGTH * 2 + 1)
25
+ #define PG_SHA384_BLOCK_LENGTH 128
26
+ #define PG_SHA384_DIGEST_LENGTH 48
27
+ #define PG_SHA384_DIGEST_STRING_LENGTH (PG_SHA384_DIGEST_LENGTH * 2 + 1)
28
+ #define PG_SHA512_BLOCK_LENGTH 128
29
+ #define PG_SHA512_DIGEST_LENGTH 64
30
+ #define PG_SHA512_DIGEST_STRING_LENGTH (PG_SHA512_DIGEST_LENGTH * 2 + 1)
31
+
32
+ #endif /* _PG_SHA2_H_ */
@@ -2,7 +2,7 @@
2
2
  * string.h
3
3
  * string handling helpers
4
4
  *
5
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
5
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
6
6
  * Portions Copyright (c) 1994, Regents of the University of California
7
7
  *
8
8
  * src/include/common/string.h
@@ -10,13 +10,15 @@
10
10
  #ifndef COMMON_STRING_H
11
11
  #define COMMON_STRING_H
12
12
 
13
+ #include <signal.h>
14
+
13
15
  struct StringInfoData; /* avoid including stringinfo.h here */
14
16
 
15
17
  typedef struct PromptInterruptContext
16
18
  {
17
19
  /* To avoid including <setjmp.h> here, jmpbuf is declared "void *" */
18
20
  void *jmpbuf; /* existing longjmp buffer */
19
- volatile bool *enabled; /* flag that enables longjmp-on-interrupt */
21
+ volatile sig_atomic_t *enabled; /* flag that enables longjmp-on-interrupt */
20
22
  bool canceled; /* indicates whether cancellation occurred */
21
23
  } PromptInterruptContext;
22
24
 
@@ -24,7 +26,7 @@ typedef struct PromptInterruptContext
24
26
  extern bool pg_str_endswith(const char *str, const char *end);
25
27
  extern int strtoint(const char *pg_restrict str, char **pg_restrict endptr,
26
28
  int base);
27
- extern void pg_clean_ascii(char *str);
29
+ extern char *pg_clean_ascii(const char *str, int alloc_flags);
28
30
  extern int pg_strip_crlf(char *str);
29
31
  extern bool pg_is_ascii(const char *str);
30
32