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,579 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * postgres.h
4
+ * Primary include file for PostgreSQL server .c files
5
+ *
6
+ * This should be the first file included by PostgreSQL backend modules.
7
+ * Client-side code should include postgres_fe.h instead.
8
+ *
9
+ *
10
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1995, Regents of the University of California
12
+ *
13
+ * src/include/postgres.h
14
+ *
15
+ *-------------------------------------------------------------------------
16
+ */
17
+ /*
18
+ *----------------------------------------------------------------
19
+ * TABLE OF CONTENTS
20
+ *
21
+ * When adding stuff to this file, please try to put stuff
22
+ * into the relevant section, or add new sections as appropriate.
23
+ *
24
+ * section description
25
+ * ------- ------------------------------------------------
26
+ * 1) Datum type + support functions
27
+ * 2) miscellaneous
28
+ *
29
+ * NOTES
30
+ *
31
+ * In general, this file should contain declarations that are widely needed
32
+ * in the backend environment, but are of no interest outside the backend.
33
+ *
34
+ * Simple type definitions live in c.h, where they are shared with
35
+ * postgres_fe.h. We do that since those type definitions are needed by
36
+ * frontend modules that want to deal with binary data transmission to or
37
+ * from the backend. Type definitions in this file should be for
38
+ * representations that never escape the backend, such as Datum.
39
+ *
40
+ *----------------------------------------------------------------
41
+ */
42
+ #ifndef POSTGRES_H
43
+ #define POSTGRES_H
44
+
45
+ #include "c.h"
46
+ #include "utils/elog.h"
47
+ #include "utils/palloc.h"
48
+
49
+ /* ----------------------------------------------------------------
50
+ * Section 1: Datum type + support functions
51
+ * ----------------------------------------------------------------
52
+ */
53
+
54
+ /*
55
+ * A Datum contains either a value of a pass-by-value type or a pointer to a
56
+ * value of a pass-by-reference type. Therefore, we require:
57
+ *
58
+ * sizeof(Datum) == sizeof(void *) == 4 or 8
59
+ *
60
+ * The functions below and the analogous functions for other types should be used to
61
+ * convert between a Datum and the appropriate C type.
62
+ */
63
+
64
+ typedef uintptr_t Datum;
65
+
66
+ /*
67
+ * A NullableDatum is used in places where both a Datum and its nullness needs
68
+ * to be stored. This can be more efficient than storing datums and nullness
69
+ * in separate arrays, due to better spatial locality, even if more space may
70
+ * be wasted due to padding.
71
+ */
72
+ typedef struct NullableDatum
73
+ {
74
+ #define FIELDNO_NULLABLE_DATUM_DATUM 0
75
+ Datum value;
76
+ #define FIELDNO_NULLABLE_DATUM_ISNULL 1
77
+ bool isnull;
78
+ /* due to alignment padding this could be used for flags for free */
79
+ } NullableDatum;
80
+
81
+ #define SIZEOF_DATUM SIZEOF_VOID_P
82
+
83
+ /*
84
+ * DatumGetBool
85
+ * Returns boolean value of a datum.
86
+ *
87
+ * Note: any nonzero value will be considered true.
88
+ */
89
+ static inline bool
90
+ DatumGetBool(Datum X)
91
+ {
92
+ return (X != 0);
93
+ }
94
+
95
+ /*
96
+ * BoolGetDatum
97
+ * Returns datum representation for a boolean.
98
+ *
99
+ * Note: any nonzero value will be considered true.
100
+ */
101
+ static inline Datum
102
+ BoolGetDatum(bool X)
103
+ {
104
+ return (Datum) (X ? 1 : 0);
105
+ }
106
+
107
+ /*
108
+ * DatumGetChar
109
+ * Returns character value of a datum.
110
+ */
111
+ static inline char
112
+ DatumGetChar(Datum X)
113
+ {
114
+ return (char) X;
115
+ }
116
+
117
+ /*
118
+ * CharGetDatum
119
+ * Returns datum representation for a character.
120
+ */
121
+ static inline Datum
122
+ CharGetDatum(char X)
123
+ {
124
+ return (Datum) X;
125
+ }
126
+
127
+ /*
128
+ * Int8GetDatum
129
+ * Returns datum representation for an 8-bit integer.
130
+ */
131
+ static inline Datum
132
+ Int8GetDatum(int8 X)
133
+ {
134
+ return (Datum) X;
135
+ }
136
+
137
+ /*
138
+ * DatumGetUInt8
139
+ * Returns 8-bit unsigned integer value of a datum.
140
+ */
141
+ static inline uint8
142
+ DatumGetUInt8(Datum X)
143
+ {
144
+ return (uint8) X;
145
+ }
146
+
147
+ /*
148
+ * UInt8GetDatum
149
+ * Returns datum representation for an 8-bit unsigned integer.
150
+ */
151
+ static inline Datum
152
+ UInt8GetDatum(uint8 X)
153
+ {
154
+ return (Datum) X;
155
+ }
156
+
157
+ /*
158
+ * DatumGetInt16
159
+ * Returns 16-bit integer value of a datum.
160
+ */
161
+ static inline int16
162
+ DatumGetInt16(Datum X)
163
+ {
164
+ return (int16) X;
165
+ }
166
+
167
+ /*
168
+ * Int16GetDatum
169
+ * Returns datum representation for a 16-bit integer.
170
+ */
171
+ static inline Datum
172
+ Int16GetDatum(int16 X)
173
+ {
174
+ return (Datum) X;
175
+ }
176
+
177
+ /*
178
+ * DatumGetUInt16
179
+ * Returns 16-bit unsigned integer value of a datum.
180
+ */
181
+ static inline uint16
182
+ DatumGetUInt16(Datum X)
183
+ {
184
+ return (uint16) X;
185
+ }
186
+
187
+ /*
188
+ * UInt16GetDatum
189
+ * Returns datum representation for a 16-bit unsigned integer.
190
+ */
191
+ static inline Datum
192
+ UInt16GetDatum(uint16 X)
193
+ {
194
+ return (Datum) X;
195
+ }
196
+
197
+ /*
198
+ * DatumGetInt32
199
+ * Returns 32-bit integer value of a datum.
200
+ */
201
+ static inline int32
202
+ DatumGetInt32(Datum X)
203
+ {
204
+ return (int32) X;
205
+ }
206
+
207
+ /*
208
+ * Int32GetDatum
209
+ * Returns datum representation for a 32-bit integer.
210
+ */
211
+ static inline Datum
212
+ Int32GetDatum(int32 X)
213
+ {
214
+ return (Datum) X;
215
+ }
216
+
217
+ /*
218
+ * DatumGetUInt32
219
+ * Returns 32-bit unsigned integer value of a datum.
220
+ */
221
+ static inline uint32
222
+ DatumGetUInt32(Datum X)
223
+ {
224
+ return (uint32) X;
225
+ }
226
+
227
+ /*
228
+ * UInt32GetDatum
229
+ * Returns datum representation for a 32-bit unsigned integer.
230
+ */
231
+ static inline Datum
232
+ UInt32GetDatum(uint32 X)
233
+ {
234
+ return (Datum) X;
235
+ }
236
+
237
+ /*
238
+ * DatumGetObjectId
239
+ * Returns object identifier value of a datum.
240
+ */
241
+ static inline Oid
242
+ DatumGetObjectId(Datum X)
243
+ {
244
+ return (Oid) X;
245
+ }
246
+
247
+ /*
248
+ * ObjectIdGetDatum
249
+ * Returns datum representation for an object identifier.
250
+ */
251
+ static inline Datum
252
+ ObjectIdGetDatum(Oid X)
253
+ {
254
+ return (Datum) X;
255
+ }
256
+
257
+ /*
258
+ * DatumGetTransactionId
259
+ * Returns transaction identifier value of a datum.
260
+ */
261
+ static inline TransactionId
262
+ DatumGetTransactionId(Datum X)
263
+ {
264
+ return (TransactionId) X;
265
+ }
266
+
267
+ /*
268
+ * TransactionIdGetDatum
269
+ * Returns datum representation for a transaction identifier.
270
+ */
271
+ static inline Datum
272
+ TransactionIdGetDatum(TransactionId X)
273
+ {
274
+ return (Datum) X;
275
+ }
276
+
277
+ /*
278
+ * MultiXactIdGetDatum
279
+ * Returns datum representation for a multixact identifier.
280
+ */
281
+ static inline Datum
282
+ MultiXactIdGetDatum(MultiXactId X)
283
+ {
284
+ return (Datum) X;
285
+ }
286
+
287
+ /*
288
+ * DatumGetCommandId
289
+ * Returns command identifier value of a datum.
290
+ */
291
+ static inline CommandId
292
+ DatumGetCommandId(Datum X)
293
+ {
294
+ return (CommandId) X;
295
+ }
296
+
297
+ /*
298
+ * CommandIdGetDatum
299
+ * Returns datum representation for a command identifier.
300
+ */
301
+ static inline Datum
302
+ CommandIdGetDatum(CommandId X)
303
+ {
304
+ return (Datum) X;
305
+ }
306
+
307
+ /*
308
+ * DatumGetPointer
309
+ * Returns pointer value of a datum.
310
+ */
311
+ static inline Pointer
312
+ DatumGetPointer(Datum X)
313
+ {
314
+ return (Pointer) X;
315
+ }
316
+
317
+ /*
318
+ * PointerGetDatum
319
+ * Returns datum representation for a pointer.
320
+ */
321
+ static inline Datum
322
+ PointerGetDatum(const void *X)
323
+ {
324
+ return (Datum) X;
325
+ }
326
+
327
+ /*
328
+ * DatumGetCString
329
+ * Returns C string (null-terminated string) value of a datum.
330
+ *
331
+ * Note: C string is not a full-fledged Postgres type at present,
332
+ * but type input functions use this conversion for their inputs.
333
+ */
334
+ static inline char *
335
+ DatumGetCString(Datum X)
336
+ {
337
+ return (char *) DatumGetPointer(X);
338
+ }
339
+
340
+ /*
341
+ * CStringGetDatum
342
+ * Returns datum representation for a C string (null-terminated string).
343
+ *
344
+ * Note: C string is not a full-fledged Postgres type at present,
345
+ * but type output functions use this conversion for their outputs.
346
+ * Note: CString is pass-by-reference; caller must ensure the pointed-to
347
+ * value has adequate lifetime.
348
+ */
349
+ static inline Datum
350
+ CStringGetDatum(const char *X)
351
+ {
352
+ return PointerGetDatum(X);
353
+ }
354
+
355
+ /*
356
+ * DatumGetName
357
+ * Returns name value of a datum.
358
+ */
359
+ static inline Name
360
+ DatumGetName(Datum X)
361
+ {
362
+ return (Name) DatumGetPointer(X);
363
+ }
364
+
365
+ /*
366
+ * NameGetDatum
367
+ * Returns datum representation for a name.
368
+ *
369
+ * Note: Name is pass-by-reference; caller must ensure the pointed-to
370
+ * value has adequate lifetime.
371
+ */
372
+ static inline Datum
373
+ NameGetDatum(const NameData *X)
374
+ {
375
+ return CStringGetDatum(NameStr(*X));
376
+ }
377
+
378
+ /*
379
+ * DatumGetInt64
380
+ * Returns 64-bit integer value of a datum.
381
+ *
382
+ * Note: this function hides whether int64 is pass by value or by reference.
383
+ */
384
+ static inline int64
385
+ DatumGetInt64(Datum X)
386
+ {
387
+ #ifdef USE_FLOAT8_BYVAL
388
+ return (int64) X;
389
+ #else
390
+ return *((int64 *) DatumGetPointer(X));
391
+ #endif
392
+ }
393
+
394
+ /*
395
+ * Int64GetDatum
396
+ * Returns datum representation for a 64-bit integer.
397
+ *
398
+ * Note: if int64 is pass by reference, this function returns a reference
399
+ * to palloc'd space.
400
+ */
401
+ #ifdef USE_FLOAT8_BYVAL
402
+ static inline Datum
403
+ Int64GetDatum(int64 X)
404
+ {
405
+ return (Datum) X;
406
+ }
407
+ #else
408
+ extern Datum Int64GetDatum(int64 X);
409
+ #endif
410
+
411
+
412
+ /*
413
+ * DatumGetUInt64
414
+ * Returns 64-bit unsigned integer value of a datum.
415
+ *
416
+ * Note: this function hides whether int64 is pass by value or by reference.
417
+ */
418
+ static inline uint64
419
+ DatumGetUInt64(Datum X)
420
+ {
421
+ #ifdef USE_FLOAT8_BYVAL
422
+ return (uint64) X;
423
+ #else
424
+ return *((uint64 *) DatumGetPointer(X));
425
+ #endif
426
+ }
427
+
428
+ /*
429
+ * UInt64GetDatum
430
+ * Returns datum representation for a 64-bit unsigned integer.
431
+ *
432
+ * Note: if int64 is pass by reference, this function returns a reference
433
+ * to palloc'd space.
434
+ */
435
+ static inline Datum
436
+ UInt64GetDatum(uint64 X)
437
+ {
438
+ #ifdef USE_FLOAT8_BYVAL
439
+ return (Datum) X;
440
+ #else
441
+ return Int64GetDatum((int64) X);
442
+ #endif
443
+ }
444
+
445
+ /*
446
+ * Float <-> Datum conversions
447
+ *
448
+ * These have to be implemented as inline functions rather than macros, when
449
+ * passing by value, because many machines pass int and float function
450
+ * parameters/results differently; so we need to play weird games with unions.
451
+ */
452
+
453
+ /*
454
+ * DatumGetFloat4
455
+ * Returns 4-byte floating point value of a datum.
456
+ */
457
+ static inline float4
458
+ DatumGetFloat4(Datum X)
459
+ {
460
+ union
461
+ {
462
+ int32 value;
463
+ float4 retval;
464
+ } myunion;
465
+
466
+ myunion.value = DatumGetInt32(X);
467
+ return myunion.retval;
468
+ }
469
+
470
+ /*
471
+ * Float4GetDatum
472
+ * Returns datum representation for a 4-byte floating point number.
473
+ */
474
+ static inline Datum
475
+ Float4GetDatum(float4 X)
476
+ {
477
+ union
478
+ {
479
+ float4 value;
480
+ int32 retval;
481
+ } myunion;
482
+
483
+ myunion.value = X;
484
+ return Int32GetDatum(myunion.retval);
485
+ }
486
+
487
+ /*
488
+ * DatumGetFloat8
489
+ * Returns 8-byte floating point value of a datum.
490
+ *
491
+ * Note: this function hides whether float8 is pass by value or by reference.
492
+ */
493
+ static inline float8
494
+ DatumGetFloat8(Datum X)
495
+ {
496
+ #ifdef USE_FLOAT8_BYVAL
497
+ union
498
+ {
499
+ int64 value;
500
+ float8 retval;
501
+ } myunion;
502
+
503
+ myunion.value = DatumGetInt64(X);
504
+ return myunion.retval;
505
+ #else
506
+ return *((float8 *) DatumGetPointer(X));
507
+ #endif
508
+ }
509
+
510
+ /*
511
+ * Float8GetDatum
512
+ * Returns datum representation for an 8-byte floating point number.
513
+ *
514
+ * Note: if float8 is pass by reference, this function returns a reference
515
+ * to palloc'd space.
516
+ */
517
+ #ifdef USE_FLOAT8_BYVAL
518
+ static inline Datum
519
+ Float8GetDatum(float8 X)
520
+ {
521
+ union
522
+ {
523
+ float8 value;
524
+ int64 retval;
525
+ } myunion;
526
+
527
+ myunion.value = X;
528
+ return Int64GetDatum(myunion.retval);
529
+ }
530
+ #else
531
+ extern Datum Float8GetDatum(float8 X);
532
+ #endif
533
+
534
+
535
+ /*
536
+ * Int64GetDatumFast
537
+ * Float8GetDatumFast
538
+ *
539
+ * These macros are intended to allow writing code that does not depend on
540
+ * whether int64 and float8 are pass-by-reference types, while not
541
+ * sacrificing performance when they are. The argument must be a variable
542
+ * that will exist and have the same value for as long as the Datum is needed.
543
+ * In the pass-by-ref case, the address of the variable is taken to use as
544
+ * the Datum. In the pass-by-val case, these are the same as the non-Fast
545
+ * functions, except for asserting that the variable is of the correct type.
546
+ */
547
+
548
+ #ifdef USE_FLOAT8_BYVAL
549
+ #define Int64GetDatumFast(X) \
550
+ (AssertVariableIsOfTypeMacro(X, int64), Int64GetDatum(X))
551
+ #define Float8GetDatumFast(X) \
552
+ (AssertVariableIsOfTypeMacro(X, double), Float8GetDatum(X))
553
+ #else
554
+ #define Int64GetDatumFast(X) \
555
+ (AssertVariableIsOfTypeMacro(X, int64), PointerGetDatum(&(X)))
556
+ #define Float8GetDatumFast(X) \
557
+ (AssertVariableIsOfTypeMacro(X, double), PointerGetDatum(&(X)))
558
+ #endif
559
+
560
+
561
+ /* ----------------------------------------------------------------
562
+ * Section 2: miscellaneous
563
+ * ----------------------------------------------------------------
564
+ */
565
+
566
+ /*
567
+ * NON_EXEC_STATIC: It's sometimes useful to define a variable or function
568
+ * that is normally static but extern when using EXEC_BACKEND (see
569
+ * pg_config_manual.h). There would then typically be some code in
570
+ * postmaster.c that uses those extern symbols to transfer state between
571
+ * processes or do whatever other things it needs to do in EXEC_BACKEND mode.
572
+ */
573
+ #ifdef EXEC_BACKEND
574
+ #define NON_EXEC_STATIC
575
+ #else
576
+ #define NON_EXEC_STATIC static
577
+ #endif
578
+
579
+ #endif /* POSTGRES_H */
@@ -46,7 +46,6 @@ typedef unsigned int Oid;
46
46
  /* Define a signed 64-bit integer type for use in client API declarations. */
47
47
  typedef PG_INT64_TYPE pg_int64;
48
48
 
49
-
50
49
  /*
51
50
  * Identifiers of error message fields. Kept here to keep common
52
51
  * between frontend and backend, and also to export them to libpq
@@ -4,7 +4,7 @@
4
4
  * header file for integrated autovacuum daemon
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/postmaster/autovacuum.h
@@ -63,9 +63,6 @@ extern int StartAutoVacWorker(void);
63
63
  /* called from postmaster when a worker could not be forked */
64
64
  extern void AutoVacWorkerFailed(void);
65
65
 
66
- /* autovacuum cost-delay balancer */
67
- extern void AutoVacuumUpdateDelay(void);
68
-
69
66
  #ifdef EXEC_BACKEND
70
67
  extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();
71
68
  extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
@@ -31,7 +31,7 @@
31
31
  * different) code.
32
32
  *
33
33
  *
34
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
34
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
35
35
  * Portions Copyright (c) 1994, Regents of the University of California
36
36
  *
37
37
  * IDENTIFICATION
@@ -121,7 +121,7 @@ extern bool RegisterDynamicBackgroundWorker(BackgroundWorker *worker,
121
121
  /* Query the status of a bgworker */
122
122
  extern BgwHandleStatus GetBackgroundWorkerPid(BackgroundWorkerHandle *handle,
123
123
  pid_t *pidp);
124
- extern BgwHandleStatus WaitForBackgroundWorkerStartup(BackgroundWorkerHandle *handle, pid_t *pid);
124
+ extern BgwHandleStatus WaitForBackgroundWorkerStartup(BackgroundWorkerHandle *handle, pid_t *pidp);
125
125
  extern BgwHandleStatus
126
126
  WaitForBackgroundWorkerShutdown(BackgroundWorkerHandle *);
127
127
  extern const char *GetBackgroundWorkerTypeByPid(pid_t pid);
@@ -2,7 +2,7 @@
2
2
  * bgworker_internals.h
3
3
  * POSTGRES pluggable background workers internals
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
  * IDENTIFICATION
@@ -6,7 +6,7 @@
6
6
  * The bgwriter process used to handle checkpointing duties too. Now
7
7
  * there is a separate process, but we did not bother to split this header.
8
8
  *
9
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
10
10
  *
11
11
  * src/include/postmaster/bgwriter.h
12
12
  *
@@ -16,7 +16,7 @@
16
16
  #define _BGWRITER_H
17
17
 
18
18
  #include "storage/block.h"
19
- #include "storage/relfilenode.h"
19
+ #include "storage/relfilelocator.h"
20
20
  #include "storage/smgr.h"
21
21
  #include "storage/sync.h"
22
22
 
@@ -7,7 +7,7 @@
7
7
  * have their own implementations, but we provide a few generic things
8
8
  * here to facilitate code reuse.
9
9
  *
10
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
11
11
  * Portions Copyright (c) 1994, Regents of the University of California
12
12
  *
13
13
  * IDENTIFICATION
@@ -0,0 +1,36 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pgarch.h
4
+ * Exports from postmaster/pgarch.c.
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/postmaster/pgarch.h
10
+ *
11
+ *-------------------------------------------------------------------------
12
+ */
13
+ #ifndef _PGARCH_H
14
+ #define _PGARCH_H
15
+
16
+ /* ----------
17
+ * Archiver control info.
18
+ *
19
+ * We expect that archivable files within pg_wal will have names between
20
+ * MIN_XFN_CHARS and MAX_XFN_CHARS in length, consisting only of characters
21
+ * appearing in VALID_XFN_CHARS. The status files in archive_status have
22
+ * corresponding names with ".ready" or ".done" appended.
23
+ * ----------
24
+ */
25
+ #define MIN_XFN_CHARS 16
26
+ #define MAX_XFN_CHARS 40
27
+ #define VALID_XFN_CHARS "0123456789ABCDEF.history.backup.partial"
28
+
29
+ extern Size PgArchShmemSize(void);
30
+ extern void PgArchShmemInit(void);
31
+ extern bool PgArchCanRestart(void);
32
+ extern void PgArchiverMain(void) pg_attribute_noreturn();
33
+ extern void PgArchWakeup(void);
34
+ extern void PgArchForceDirScan(void);
35
+
36
+ #endif /* _PGARCH_H */