pg_query 2.0.3 → 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 (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -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 +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  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 +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  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 +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,39 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * cryptohash.h
4
+ * Generic headers for cryptographic hash functions.
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/cryptohash.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+
15
+ #ifndef PG_CRYPTOHASH_H
16
+ #define PG_CRYPTOHASH_H
17
+
18
+ /* Context Structures for each hash function */
19
+ typedef enum
20
+ {
21
+ PG_MD5 = 0,
22
+ PG_SHA1,
23
+ PG_SHA224,
24
+ PG_SHA256,
25
+ PG_SHA384,
26
+ PG_SHA512
27
+ } pg_cryptohash_type;
28
+
29
+ /* opaque context, private to each cryptohash implementation */
30
+ typedef struct pg_cryptohash_ctx pg_cryptohash_ctx;
31
+
32
+ extern pg_cryptohash_ctx *pg_cryptohash_create(pg_cryptohash_type type);
33
+ extern int pg_cryptohash_init(pg_cryptohash_ctx *ctx);
34
+ extern int pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len);
35
+ extern int pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len);
36
+ extern void pg_cryptohash_free(pg_cryptohash_ctx *ctx);
37
+ extern const char *pg_cryptohash_error(pg_cryptohash_ctx *ctx);
38
+
39
+ #endif /* PG_CRYPTOHASH_H */
@@ -3,7 +3,7 @@
3
3
  * File and directory permission definitions
4
4
  *
5
5
  *
6
- * Portions Copyright (c) 1996-2020, 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/file_perm.h
@@ -41,11 +41,11 @@
41
41
  #define PG_FILE_MODE_GROUP (S_IRUSR | S_IWUSR | S_IRGRP)
42
42
 
43
43
  /* Modes for creating directories and files in the data directory */
44
- extern int pg_dir_create_mode;
45
- extern int pg_file_create_mode;
44
+ extern PGDLLIMPORT int pg_dir_create_mode;
45
+ extern PGDLLIMPORT int pg_file_create_mode;
46
46
 
47
47
  /* Mode mask to pass to umask() */
48
- extern int pg_mode_mask;
48
+ extern PGDLLIMPORT int pg_mode_mask;
49
49
 
50
50
  /* Set permissions and mask based on the provided mode */
51
51
  extern void SetDataDirectoryCreatePerm(int dataDirMode);
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Utilities for working with hash values.
3
3
  *
4
- * Portions Copyright (c) 2017-2020, PostgreSQL Global Development Group
4
+ * Portions Copyright (c) 2017-2023, PostgreSQL Global Development Group
5
5
  */
6
6
 
7
7
  #ifndef HASHFN_H
@@ -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-2020, 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
@@ -22,12 +22,8 @@
22
22
  #define TYPE_FUNC_NAME_KEYWORD 2
23
23
  #define RESERVED_KEYWORD 3
24
24
 
25
- #ifndef FRONTEND
26
25
  extern PGDLLIMPORT const ScanKeywordList ScanKeywords;
27
26
  extern PGDLLIMPORT const uint8 ScanKeywordCategories[];
28
- #else
29
- extern const ScanKeywordList ScanKeywords;
30
- extern const uint8 ScanKeywordCategories[];
31
- #endif
27
+ extern PGDLLIMPORT const bool ScanKeywordBareLabel[];
32
28
 
33
29
  #endif /* KEYWORDS_H */
@@ -4,7 +4,7 @@
4
4
  * Key word lookup for PostgreSQL
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, 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 *
@@ -0,0 +1,61 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * Pseudo-Random Number Generator
4
+ *
5
+ * Copyright (c) 2021-2023, PostgreSQL Global Development Group
6
+ *
7
+ * src/include/common/pg_prng.h
8
+ *
9
+ *-------------------------------------------------------------------------
10
+ */
11
+ #ifndef PG_PRNG_H
12
+ #define PG_PRNG_H
13
+
14
+ /*
15
+ * State vector for PRNG generation. Callers should treat this as an
16
+ * opaque typedef, but we expose its definition to allow it to be
17
+ * embedded in other structs.
18
+ */
19
+ typedef struct pg_prng_state
20
+ {
21
+ uint64 s0,
22
+ s1;
23
+ } pg_prng_state;
24
+
25
+ /*
26
+ * Callers not needing local PRNG series may use this global state vector,
27
+ * after initializing it with one of the pg_prng_...seed functions.
28
+ */
29
+ extern PGDLLIMPORT pg_prng_state pg_global_prng_state;
30
+
31
+ extern void pg_prng_seed(pg_prng_state *state, uint64 seed);
32
+ extern void pg_prng_fseed(pg_prng_state *state, double fseed);
33
+ extern bool pg_prng_seed_check(pg_prng_state *state);
34
+
35
+ /*
36
+ * Initialize the PRNG state from the pg_strong_random source,
37
+ * taking care that we don't produce all-zeroes. If this returns false,
38
+ * caller should initialize the PRNG state from some other random seed,
39
+ * using pg_prng_[f]seed.
40
+ *
41
+ * We implement this as a macro, so that the pg_strong_random() call is
42
+ * in the caller. If it were in pg_prng.c, programs using pg_prng.c
43
+ * but not needing strong seeding would nonetheless be forced to pull in
44
+ * pg_strong_random.c and thence OpenSSL.
45
+ */
46
+ #define pg_prng_strong_seed(state) \
47
+ (pg_strong_random((void *) (state), sizeof(pg_prng_state)) ? \
48
+ pg_prng_seed_check(state) : false)
49
+
50
+ extern uint64 pg_prng_uint64(pg_prng_state *state);
51
+ extern uint64 pg_prng_uint64_range(pg_prng_state *state, uint64 rmin, uint64 rmax);
52
+ extern int64 pg_prng_int64(pg_prng_state *state);
53
+ extern int64 pg_prng_int64p(pg_prng_state *state);
54
+ extern uint32 pg_prng_uint32(pg_prng_state *state);
55
+ extern int32 pg_prng_int32(pg_prng_state *state);
56
+ extern int32 pg_prng_int32p(pg_prng_state *state);
57
+ extern double pg_prng_double(pg_prng_state *state);
58
+ extern double pg_prng_double_normal(pg_prng_state *state);
59
+ extern bool pg_prng_bool(pg_prng_state *state);
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-2020, 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
@@ -56,7 +63,7 @@ typedef enum ForkNumber
56
63
 
57
64
  #define FORKNAMECHARS 4 /* max chars for a fork name */
58
65
 
59
- extern const char *const forkNames[];
66
+ extern PGDLLIMPORT const char *const forkNames[];
60
67
 
61
68
  extern ForkNumber forkname_to_number(const char *forkName);
62
69
  extern int forkname_chars(const char *str, ForkNumber *fork);
@@ -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 */