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
@@ -21,7 +21,7 @@
21
21
  * Also, we have changed the API to return tuples in TupleTableSlots,
22
22
  * so that there is a check to prevent attempted access to system columns.
23
23
  *
24
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
24
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
25
25
  * Portions Copyright (c) 1994, Regents of the University of California
26
26
  *
27
27
  * src/include/utils/tuplestore.h
@@ -56,7 +56,7 @@ extern void tuplestore_puttuple(Tuplestorestate *state, HeapTuple tuple);
56
56
  extern void tuplestore_putvalues(Tuplestorestate *state, TupleDesc tdesc,
57
57
  Datum *values, bool *isnull);
58
58
 
59
- /* tuplestore_donestoring() used to be required, but is no longer used */
59
+ /* Backwards compatibility macro */
60
60
  #define tuplestore_donestoring(state) ((void) 0)
61
61
 
62
62
  extern int tuplestore_alloc_read_pointer(Tuplestorestate *state, int eflags);
@@ -6,7 +6,7 @@
6
6
  * The type cache exists to speed lookup of certain information about data
7
7
  * types that is not directly available from a type's pg_type row.
8
8
  *
9
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
10
10
  * Portions Copyright (c) 1994, Regents of the University of California
11
11
  *
12
12
  * src/include/utils/typcache.h
@@ -42,6 +42,7 @@ typedef struct TypeCacheEntry
42
42
  char typstorage;
43
43
  char typtype;
44
44
  Oid typrelid;
45
+ Oid typsubscript;
45
46
  Oid typelem;
46
47
  Oid typcollation;
47
48
 
@@ -100,6 +101,11 @@ typedef struct TypeCacheEntry
100
101
  FmgrInfo rng_canonical_finfo; /* canonicalization function, if any */
101
102
  FmgrInfo rng_subdiff_finfo; /* difference function, if any */
102
103
 
104
+ /*
105
+ * Fields computed when TYPECACHE_MULTIRANGE_INFO is required.
106
+ */
107
+ struct TypeCacheEntry *rngtype; /* multirange's range underlying type */
108
+
103
109
  /*
104
110
  * Domain's base type and typmod if it's a domain type. Zeroes if not
105
111
  * domain, or if information hasn't been requested.
@@ -127,22 +133,23 @@ typedef struct TypeCacheEntry
127
133
  } TypeCacheEntry;
128
134
 
129
135
  /* Bit flags to indicate which fields a given caller needs to have set */
130
- #define TYPECACHE_EQ_OPR 0x0001
131
- #define TYPECACHE_LT_OPR 0x0002
132
- #define TYPECACHE_GT_OPR 0x0004
133
- #define TYPECACHE_CMP_PROC 0x0008
134
- #define TYPECACHE_HASH_PROC 0x0010
135
- #define TYPECACHE_EQ_OPR_FINFO 0x0020
136
- #define TYPECACHE_CMP_PROC_FINFO 0x0040
137
- #define TYPECACHE_HASH_PROC_FINFO 0x0080
138
- #define TYPECACHE_TUPDESC 0x0100
139
- #define TYPECACHE_BTREE_OPFAMILY 0x0200
140
- #define TYPECACHE_HASH_OPFAMILY 0x0400
141
- #define TYPECACHE_RANGE_INFO 0x0800
142
- #define TYPECACHE_DOMAIN_BASE_INFO 0x1000
143
- #define TYPECACHE_DOMAIN_CONSTR_INFO 0x2000
144
- #define TYPECACHE_HASH_EXTENDED_PROC 0x4000
145
- #define TYPECACHE_HASH_EXTENDED_PROC_FINFO 0x8000
136
+ #define TYPECACHE_EQ_OPR 0x00001
137
+ #define TYPECACHE_LT_OPR 0x00002
138
+ #define TYPECACHE_GT_OPR 0x00004
139
+ #define TYPECACHE_CMP_PROC 0x00008
140
+ #define TYPECACHE_HASH_PROC 0x00010
141
+ #define TYPECACHE_EQ_OPR_FINFO 0x00020
142
+ #define TYPECACHE_CMP_PROC_FINFO 0x00040
143
+ #define TYPECACHE_HASH_PROC_FINFO 0x00080
144
+ #define TYPECACHE_TUPDESC 0x00100
145
+ #define TYPECACHE_BTREE_OPFAMILY 0x00200
146
+ #define TYPECACHE_HASH_OPFAMILY 0x00400
147
+ #define TYPECACHE_RANGE_INFO 0x00800
148
+ #define TYPECACHE_DOMAIN_BASE_INFO 0x01000
149
+ #define TYPECACHE_DOMAIN_CONSTR_INFO 0x02000
150
+ #define TYPECACHE_HASH_EXTENDED_PROC 0x04000
151
+ #define TYPECACHE_HASH_EXTENDED_PROC_FINFO 0x08000
152
+ #define TYPECACHE_MULTIRANGE_INFO 0x10000
146
153
 
147
154
  /* This value will not equal any valid tupledesc identifier, nor 0 */
148
155
  #define INVALID_TUPLEDESC_IDENTIFIER ((uint64) 1)
@@ -3,7 +3,7 @@
3
3
  * varlena.h
4
4
  * Functions for the variable-length built-in types.
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/utils/varlena.h
@@ -33,7 +33,21 @@ extern bool SplitDirectoriesString(char *rawstring, char separator,
33
33
  List **namelist);
34
34
  extern bool SplitGUCList(char *rawstring, char separator,
35
35
  List **namelist);
36
- extern text *replace_text_regexp(text *src_text, void *regexp,
37
- text *replace_text, bool glob);
36
+ extern text *replace_text_regexp(text *src_text, text *pattern_text,
37
+ text *replace_text,
38
+ int cflags, Oid collation,
39
+ int search_start, int n);
40
+
41
+ typedef struct ClosestMatchState
42
+ {
43
+ const char *source;
44
+ int min_d;
45
+ int max_d;
46
+ const char *match;
47
+ } ClosestMatchState;
48
+
49
+ extern void initClosestMatch(ClosestMatchState *state, const char *source, int max_d);
50
+ extern void updateClosestMatch(ClosestMatchState *state, const char *candidate);
51
+ extern const char *getClosestMatch(ClosestMatchState *state);
38
52
 
39
53
  #endif
@@ -0,0 +1,294 @@
1
+ /*-------------------------------------------------------------------------
2
+ * wait_event.h
3
+ * Definitions related to wait event reporting
4
+ *
5
+ * Copyright (c) 2001-2023, PostgreSQL Global Development Group
6
+ *
7
+ * src/include/utils/wait_event.h
8
+ * ----------
9
+ */
10
+ #ifndef WAIT_EVENT_H
11
+ #define WAIT_EVENT_H
12
+
13
+
14
+ /* ----------
15
+ * Wait Classes
16
+ * ----------
17
+ */
18
+ #define PG_WAIT_LWLOCK 0x01000000U
19
+ #define PG_WAIT_LOCK 0x03000000U
20
+ #define PG_WAIT_BUFFER_PIN 0x04000000U
21
+ #define PG_WAIT_ACTIVITY 0x05000000U
22
+ #define PG_WAIT_CLIENT 0x06000000U
23
+ #define PG_WAIT_EXTENSION 0x07000000U
24
+ #define PG_WAIT_IPC 0x08000000U
25
+ #define PG_WAIT_TIMEOUT 0x09000000U
26
+ #define PG_WAIT_IO 0x0A000000U
27
+
28
+ /* ----------
29
+ * Wait Events - Activity
30
+ *
31
+ * Use this category when a process is waiting because it has no work to do,
32
+ * unless the "Client" or "Timeout" category describes the situation better.
33
+ * Typically, this should only be used for background processes.
34
+ * ----------
35
+ */
36
+ typedef enum
37
+ {
38
+ WAIT_EVENT_ARCHIVER_MAIN = PG_WAIT_ACTIVITY,
39
+ WAIT_EVENT_AUTOVACUUM_MAIN,
40
+ WAIT_EVENT_BGWRITER_HIBERNATE,
41
+ WAIT_EVENT_BGWRITER_MAIN,
42
+ WAIT_EVENT_CHECKPOINTER_MAIN,
43
+ WAIT_EVENT_LOGICAL_APPLY_MAIN,
44
+ WAIT_EVENT_LOGICAL_LAUNCHER_MAIN,
45
+ WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN,
46
+ WAIT_EVENT_RECOVERY_WAL_STREAM,
47
+ WAIT_EVENT_SYSLOGGER_MAIN,
48
+ WAIT_EVENT_WAL_RECEIVER_MAIN,
49
+ WAIT_EVENT_WAL_SENDER_MAIN,
50
+ WAIT_EVENT_WAL_WRITER_MAIN
51
+ } WaitEventActivity;
52
+
53
+ /* ----------
54
+ * Wait Events - Client
55
+ *
56
+ * Use this category when a process is waiting to send data to or receive data
57
+ * from the frontend process to which it is connected. This is never used for
58
+ * a background process, which has no client connection.
59
+ * ----------
60
+ */
61
+ typedef enum
62
+ {
63
+ WAIT_EVENT_CLIENT_READ = PG_WAIT_CLIENT,
64
+ WAIT_EVENT_CLIENT_WRITE,
65
+ WAIT_EVENT_GSS_OPEN_SERVER,
66
+ WAIT_EVENT_LIBPQWALRECEIVER_CONNECT,
67
+ WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE,
68
+ WAIT_EVENT_SSL_OPEN_SERVER,
69
+ WAIT_EVENT_WAL_SENDER_WAIT_WAL,
70
+ WAIT_EVENT_WAL_SENDER_WRITE_DATA,
71
+ } WaitEventClient;
72
+
73
+ /* ----------
74
+ * Wait Events - IPC
75
+ *
76
+ * Use this category when a process cannot complete the work it is doing because
77
+ * it is waiting for a notification from another process.
78
+ * ----------
79
+ */
80
+ typedef enum
81
+ {
82
+ WAIT_EVENT_APPEND_READY = PG_WAIT_IPC,
83
+ WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND,
84
+ WAIT_EVENT_ARCHIVE_COMMAND,
85
+ WAIT_EVENT_BACKEND_TERMINATION,
86
+ WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE,
87
+ WAIT_EVENT_BGWORKER_SHUTDOWN,
88
+ WAIT_EVENT_BGWORKER_STARTUP,
89
+ WAIT_EVENT_BTREE_PAGE,
90
+ WAIT_EVENT_BUFFER_IO,
91
+ WAIT_EVENT_CHECKPOINT_DONE,
92
+ WAIT_EVENT_CHECKPOINT_START,
93
+ WAIT_EVENT_EXECUTE_GATHER,
94
+ WAIT_EVENT_HASH_BATCH_ALLOCATE,
95
+ WAIT_EVENT_HASH_BATCH_ELECT,
96
+ WAIT_EVENT_HASH_BATCH_LOAD,
97
+ WAIT_EVENT_HASH_BUILD_ALLOCATE,
98
+ WAIT_EVENT_HASH_BUILD_ELECT,
99
+ WAIT_EVENT_HASH_BUILD_HASH_INNER,
100
+ WAIT_EVENT_HASH_BUILD_HASH_OUTER,
101
+ WAIT_EVENT_HASH_GROW_BATCHES_DECIDE,
102
+ WAIT_EVENT_HASH_GROW_BATCHES_ELECT,
103
+ WAIT_EVENT_HASH_GROW_BATCHES_FINISH,
104
+ WAIT_EVENT_HASH_GROW_BATCHES_REALLOCATE,
105
+ WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION,
106
+ WAIT_EVENT_HASH_GROW_BUCKETS_ELECT,
107
+ WAIT_EVENT_HASH_GROW_BUCKETS_REALLOCATE,
108
+ WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT,
109
+ WAIT_EVENT_LOGICAL_APPLY_SEND_DATA,
110
+ WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE,
111
+ WAIT_EVENT_LOGICAL_SYNC_DATA,
112
+ WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE,
113
+ WAIT_EVENT_MQ_INTERNAL,
114
+ WAIT_EVENT_MQ_PUT_MESSAGE,
115
+ WAIT_EVENT_MQ_RECEIVE,
116
+ WAIT_EVENT_MQ_SEND,
117
+ WAIT_EVENT_PARALLEL_BITMAP_SCAN,
118
+ WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN,
119
+ WAIT_EVENT_PARALLEL_FINISH,
120
+ WAIT_EVENT_PROCARRAY_GROUP_UPDATE,
121
+ WAIT_EVENT_PROC_SIGNAL_BARRIER,
122
+ WAIT_EVENT_PROMOTE,
123
+ WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT,
124
+ WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE,
125
+ WAIT_EVENT_RECOVERY_END_COMMAND,
126
+ WAIT_EVENT_RECOVERY_PAUSE,
127
+ WAIT_EVENT_REPLICATION_ORIGIN_DROP,
128
+ WAIT_EVENT_REPLICATION_SLOT_DROP,
129
+ WAIT_EVENT_RESTORE_COMMAND,
130
+ WAIT_EVENT_SAFE_SNAPSHOT,
131
+ WAIT_EVENT_SYNC_REP,
132
+ WAIT_EVENT_WAL_RECEIVER_EXIT,
133
+ WAIT_EVENT_WAL_RECEIVER_WAIT_START,
134
+ WAIT_EVENT_XACT_GROUP_UPDATE
135
+ } WaitEventIPC;
136
+
137
+ /* ----------
138
+ * Wait Events - Timeout
139
+ *
140
+ * Use this category when a process is waiting for a timeout to expire.
141
+ * ----------
142
+ */
143
+ typedef enum
144
+ {
145
+ WAIT_EVENT_BASE_BACKUP_THROTTLE = PG_WAIT_TIMEOUT,
146
+ WAIT_EVENT_CHECKPOINT_WRITE_DELAY,
147
+ WAIT_EVENT_PG_SLEEP,
148
+ WAIT_EVENT_RECOVERY_APPLY_DELAY,
149
+ WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL,
150
+ WAIT_EVENT_REGISTER_SYNC_REQUEST,
151
+ WAIT_EVENT_SPIN_DELAY,
152
+ WAIT_EVENT_VACUUM_DELAY,
153
+ WAIT_EVENT_VACUUM_TRUNCATE
154
+ } WaitEventTimeout;
155
+
156
+ /* ----------
157
+ * Wait Events - IO
158
+ *
159
+ * Use this category when a process is waiting for a IO.
160
+ * ----------
161
+ */
162
+ typedef enum
163
+ {
164
+ WAIT_EVENT_BASEBACKUP_READ = PG_WAIT_IO,
165
+ WAIT_EVENT_BASEBACKUP_SYNC,
166
+ WAIT_EVENT_BASEBACKUP_WRITE,
167
+ WAIT_EVENT_BUFFILE_READ,
168
+ WAIT_EVENT_BUFFILE_WRITE,
169
+ WAIT_EVENT_BUFFILE_TRUNCATE,
170
+ WAIT_EVENT_CONTROL_FILE_READ,
171
+ WAIT_EVENT_CONTROL_FILE_SYNC,
172
+ WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE,
173
+ WAIT_EVENT_CONTROL_FILE_WRITE,
174
+ WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE,
175
+ WAIT_EVENT_COPY_FILE_READ,
176
+ WAIT_EVENT_COPY_FILE_WRITE,
177
+ WAIT_EVENT_DATA_FILE_EXTEND,
178
+ WAIT_EVENT_DATA_FILE_FLUSH,
179
+ WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC,
180
+ WAIT_EVENT_DATA_FILE_PREFETCH,
181
+ WAIT_EVENT_DATA_FILE_READ,
182
+ WAIT_EVENT_DATA_FILE_SYNC,
183
+ WAIT_EVENT_DATA_FILE_TRUNCATE,
184
+ WAIT_EVENT_DATA_FILE_WRITE,
185
+ WAIT_EVENT_DSM_ALLOCATE,
186
+ WAIT_EVENT_DSM_FILL_ZERO_WRITE,
187
+ WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ,
188
+ WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC,
189
+ WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE,
190
+ WAIT_EVENT_LOCK_FILE_CREATE_READ,
191
+ WAIT_EVENT_LOCK_FILE_CREATE_SYNC,
192
+ WAIT_EVENT_LOCK_FILE_CREATE_WRITE,
193
+ WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ,
194
+ WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC,
195
+ WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC,
196
+ WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE,
197
+ WAIT_EVENT_LOGICAL_REWRITE_SYNC,
198
+ WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE,
199
+ WAIT_EVENT_LOGICAL_REWRITE_WRITE,
200
+ WAIT_EVENT_RELATION_MAP_READ,
201
+ WAIT_EVENT_RELATION_MAP_REPLACE,
202
+ WAIT_EVENT_RELATION_MAP_WRITE,
203
+ WAIT_EVENT_REORDER_BUFFER_READ,
204
+ WAIT_EVENT_REORDER_BUFFER_WRITE,
205
+ WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ,
206
+ WAIT_EVENT_REPLICATION_SLOT_READ,
207
+ WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC,
208
+ WAIT_EVENT_REPLICATION_SLOT_SYNC,
209
+ WAIT_EVENT_REPLICATION_SLOT_WRITE,
210
+ WAIT_EVENT_SLRU_FLUSH_SYNC,
211
+ WAIT_EVENT_SLRU_READ,
212
+ WAIT_EVENT_SLRU_SYNC,
213
+ WAIT_EVENT_SLRU_WRITE,
214
+ WAIT_EVENT_SNAPBUILD_READ,
215
+ WAIT_EVENT_SNAPBUILD_SYNC,
216
+ WAIT_EVENT_SNAPBUILD_WRITE,
217
+ WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC,
218
+ WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE,
219
+ WAIT_EVENT_TIMELINE_HISTORY_READ,
220
+ WAIT_EVENT_TIMELINE_HISTORY_SYNC,
221
+ WAIT_EVENT_TIMELINE_HISTORY_WRITE,
222
+ WAIT_EVENT_TWOPHASE_FILE_READ,
223
+ WAIT_EVENT_TWOPHASE_FILE_SYNC,
224
+ WAIT_EVENT_TWOPHASE_FILE_WRITE,
225
+ WAIT_EVENT_VERSION_FILE_WRITE,
226
+ WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ,
227
+ WAIT_EVENT_WAL_BOOTSTRAP_SYNC,
228
+ WAIT_EVENT_WAL_BOOTSTRAP_WRITE,
229
+ WAIT_EVENT_WAL_COPY_READ,
230
+ WAIT_EVENT_WAL_COPY_SYNC,
231
+ WAIT_EVENT_WAL_COPY_WRITE,
232
+ WAIT_EVENT_WAL_INIT_SYNC,
233
+ WAIT_EVENT_WAL_INIT_WRITE,
234
+ WAIT_EVENT_WAL_READ,
235
+ WAIT_EVENT_WAL_SYNC,
236
+ WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN,
237
+ WAIT_EVENT_WAL_WRITE
238
+ } WaitEventIO;
239
+
240
+
241
+ extern const char *pgstat_get_wait_event(uint32 wait_event_info);
242
+ extern const char *pgstat_get_wait_event_type(uint32 wait_event_info);
243
+ static inline void pgstat_report_wait_start(uint32 wait_event_info);
244
+ static inline void pgstat_report_wait_end(void);
245
+ extern void pgstat_set_wait_event_storage(uint32 *wait_event_info);
246
+ extern void pgstat_reset_wait_event_storage(void);
247
+
248
+ extern PGDLLIMPORT uint32 *my_wait_event_info;
249
+
250
+
251
+ /* ----------
252
+ * pgstat_report_wait_start() -
253
+ *
254
+ * Called from places where server process needs to wait. This is called
255
+ * to report wait event information. The wait information is stored
256
+ * as 4-bytes where first byte represents the wait event class (type of
257
+ * wait, for different types of wait, refer WaitClass) and the next
258
+ * 3-bytes represent the actual wait event. Currently 2-bytes are used
259
+ * for wait event which is sufficient for current usage, 1-byte is
260
+ * reserved for future usage.
261
+ *
262
+ * Historically we used to make this reporting conditional on
263
+ * pgstat_track_activities, but the check for that seems to add more cost
264
+ * than it saves.
265
+ *
266
+ * my_wait_event_info initially points to local memory, making it safe to
267
+ * call this before MyProc has been initialized.
268
+ * ----------
269
+ */
270
+ static inline void
271
+ pgstat_report_wait_start(uint32 wait_event_info)
272
+ {
273
+ /*
274
+ * Since this is a four-byte field which is always read and written as
275
+ * four-bytes, updates are atomic.
276
+ */
277
+ *(volatile uint32 *) my_wait_event_info = wait_event_info;
278
+ }
279
+
280
+ /* ----------
281
+ * pgstat_report_wait_end() -
282
+ *
283
+ * Called to report end of a wait.
284
+ * ----------
285
+ */
286
+ static inline void
287
+ pgstat_report_wait_end(void)
288
+ {
289
+ /* see pgstat_report_wait_start() */
290
+ *(volatile uint32 *) my_wait_event_info = 0;
291
+ }
292
+
293
+
294
+ #endif /* WAIT_EVENT_H */
@@ -4,7 +4,7 @@
4
4
  * Declarations for XML data type support.
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/utils/xml.h
@@ -47,8 +47,17 @@ typedef enum
47
47
  /* struct PgXmlErrorContext is private to xml.c */
48
48
  typedef struct PgXmlErrorContext PgXmlErrorContext;
49
49
 
50
- #define DatumGetXmlP(X) ((xmltype *) PG_DETOAST_DATUM(X))
51
- #define XmlPGetDatum(X) PointerGetDatum(X)
50
+ static inline xmltype *
51
+ DatumGetXmlP(Datum X)
52
+ {
53
+ return (xmltype *) PG_DETOAST_DATUM(X);
54
+ }
55
+
56
+ static inline Datum
57
+ XmlPGetDatum(const xmltype *X)
58
+ {
59
+ return PointerGetDatum(X);
60
+ }
52
61
 
53
62
  #define PG_GETARG_XML_P(n) DatumGetXmlP(PG_GETARG_DATUM(n))
54
63
  #define PG_RETURN_XML_P(x) PG_RETURN_POINTER(x)
@@ -64,21 +73,22 @@ extern xmltype *xmlconcat(List *args);
64
73
  extern xmltype *xmlelement(XmlExpr *xexpr,
65
74
  Datum *named_argvalue, bool *named_argnull,
66
75
  Datum *argvalue, bool *argnull);
67
- extern xmltype *xmlparse(text *data, XmlOptionType xmloption, bool preserve_whitespace);
76
+ extern xmltype *xmlparse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace);
68
77
  extern xmltype *xmlpi(const char *target, text *arg, bool arg_is_null, bool *result_is_null);
69
78
  extern xmltype *xmlroot(xmltype *data, text *version, int standalone);
70
79
  extern bool xml_is_document(xmltype *arg);
71
- extern text *xmltotext_with_xmloption(xmltype *data, XmlOptionType xmloption_arg);
80
+ extern text *xmltotext_with_options(xmltype *data, XmlOptionType xmloption_arg,
81
+ bool indent);
72
82
  extern char *escape_xml(const char *str);
73
83
 
74
84
  extern char *map_sql_identifier_to_xml_name(const char *ident, bool fully_escaped, bool escape_period);
75
85
  extern char *map_xml_name_to_sql_identifier(const char *name);
76
86
  extern char *map_sql_value_to_xml_value(Datum value, Oid type, bool xml_escape_strings);
77
87
 
78
- extern int xmlbinary; /* XmlBinaryType, but int for guc enum */
88
+ extern PGDLLIMPORT int xmlbinary; /* XmlBinaryType, but int for guc enum */
79
89
 
80
- extern int xmloption; /* XmlOptionType, but int for guc enum */
90
+ extern PGDLLIMPORT int xmloption; /* XmlOptionType, but int for guc enum */
81
91
 
82
- extern const TableFuncRoutine XmlTableRoutine;
92
+ extern PGDLLIMPORT const TableFuncRoutine XmlTableRoutine;
83
93
 
84
94
  #endif /* XML_H */