pg_query 2.2.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (895) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -0
  3. data/README.md +57 -31
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +33 -9
  11. data/ext/pg_query/include/pg_query.h +30 -4
  12. data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
  19. data/ext/pg_query/include/postgres/access/amapi.h +303 -0
  20. data/ext/pg_query/include/postgres/access/attmap.h +54 -0
  21. data/ext/pg_query/include/postgres/access/attnum.h +64 -0
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +62 -0
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
  26. data/ext/pg_query/include/postgres/access/detoast.h +82 -0
  27. data/ext/pg_query/include/postgres/access/genam.h +246 -0
  28. data/ext/pg_query/include/postgres/access/gin.h +91 -0
  29. data/ext/pg_query/include/postgres/access/htup.h +89 -0
  30. data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
  31. data/ext/pg_query/include/postgres/access/itup.h +170 -0
  32. data/ext/pg_query/include/postgres/access/parallel.h +81 -0
  33. data/ext/pg_query/include/postgres/access/printtup.h +35 -0
  34. data/ext/pg_query/include/postgres/access/relation.h +28 -0
  35. data/ext/pg_query/include/postgres/access/relscan.h +191 -0
  36. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  37. data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
  38. data/ext/pg_query/include/postgres/access/sdir.h +67 -0
  39. data/ext/pg_query/include/postgres/access/skey.h +151 -0
  40. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  41. data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
  42. data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
  43. data/ext/pg_query/include/postgres/access/table.h +28 -0
  44. data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
  45. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  46. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  47. data/ext/pg_query/include/postgres/access/transam.h +418 -0
  48. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  49. data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
  50. data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
  51. data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
  52. data/ext/pg_query/include/postgres/access/twophase.h +65 -0
  53. data/ext/pg_query/include/postgres/access/xact.h +530 -0
  54. data/ext/pg_query/include/postgres/access/xlog.h +310 -0
  55. data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
  56. data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
  57. data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
  58. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  59. data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
  60. data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
  61. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  62. data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
  63. data/ext/pg_query/include/postgres/c.h +1374 -0
  64. data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
  65. data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
  66. data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
  67. data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
  68. data/ext/pg_query/include/postgres/catalog/index.h +218 -0
  69. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  70. data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
  71. data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
  72. data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
  74. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
  75. data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
  76. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
  78. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
  79. data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
  80. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
  83. data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
  84. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
  86. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
  87. data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
  89. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
  90. data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
  91. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
  92. data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
  93. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
  95. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
  96. data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
  97. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
  98. data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
  99. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
  101. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
  103. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
  104. data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
  105. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
  107. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
  109. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
  110. data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
  111. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
  112. data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
  113. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
  115. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
  119. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
  120. data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
  121. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
  123. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
  131. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
  132. data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
  133. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
  134. data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
  135. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  136. data/ext/pg_query/include/postgres/commands/async.h +49 -0
  137. data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
  138. data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
  139. data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
  140. data/ext/pg_query/include/postgres/commands/explain.h +145 -0
  141. data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
  142. data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
  143. data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
  144. data/ext/pg_query/include/postgres/commands/user.h +43 -0
  145. data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
  146. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  147. data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
  148. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  149. data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
  150. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  151. data/ext/pg_query/include/postgres/common/int.h +512 -0
  152. data/ext/pg_query/include/postgres/common/keywords.h +29 -0
  153. data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
  154. data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
  155. data/ext/pg_query/include/postgres/common/relpath.h +97 -0
  156. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  157. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  158. data/ext/pg_query/include/postgres/common/string.h +44 -0
  159. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
  160. data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
  161. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
  162. data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
  163. data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
  164. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
  165. data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
  166. data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
  167. data/ext/pg_query/include/postgres/executor/executor.h +681 -0
  168. data/ext/pg_query/include/postgres/executor/functions.h +56 -0
  169. data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
  170. data/ext/pg_query/include/postgres/executor/spi.h +207 -0
  171. data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
  172. data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
  173. data/ext/pg_query/include/postgres/fmgr.h +800 -0
  174. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  175. data/ext/pg_query/include/postgres/funcapi.h +360 -0
  176. data/ext/pg_query/include/postgres/gram.h +1168 -0
  177. data/ext/pg_query/include/postgres/gramparse.h +75 -0
  178. data/ext/pg_query/include/postgres/jit/jit.h +106 -0
  179. data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
  180. data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
  181. data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
  182. data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
  183. data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
  184. data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
  185. data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
  186. data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
  187. data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
  188. data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
  189. data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
  190. data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
  191. data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
  192. data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
  193. data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
  194. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  195. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  196. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  197. data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
  198. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
  199. data/ext/pg_query/include/postgres/miscadmin.h +527 -0
  200. data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
  201. data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
  202. data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
  203. data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
  204. data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
  205. data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
  206. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  207. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
  208. data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
  209. data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
  210. data/ext/pg_query/include/postgres/nodes/params.h +170 -0
  211. data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
  212. data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
  213. data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
  214. data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
  215. data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
  216. data/ext/pg_query/include/postgres/nodes/print.h +34 -0
  217. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  218. data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
  219. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  220. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
  221. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  222. data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
  223. data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
  224. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
  225. data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
  226. data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
  227. data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
  228. data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
  229. data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
  230. data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
  231. data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
  232. data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
  233. data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
  234. data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
  235. data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
  236. data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
  237. data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
  238. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  239. data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
  240. data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
  241. data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
  242. data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
  243. data/ext/pg_query/include/postgres/pg_config.h +985 -0
  244. data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
  245. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  246. data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
  247. data/ext/pg_query/include/postgres/pg_trace.h +17 -0
  248. data/ext/pg_query/include/postgres/pgstat.h +780 -0
  249. data/ext/pg_query/include/postgres/pgtime.h +94 -0
  250. data/ext/pg_query/include/postgres/pl_gram.h +385 -0
  251. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
  252. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
  253. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
  254. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
  255. data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
  256. data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
  257. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
  258. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  259. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
  260. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
  261. data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
  262. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
  263. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
  264. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
  265. data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
  266. data/ext/pg_query/include/postgres/port/atomics.h +606 -0
  267. data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
  268. data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
  269. data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
  270. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  271. data/ext/pg_query/include/postgres/port/simd.h +422 -0
  272. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  273. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  276. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  278. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  279. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  280. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  281. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
  282. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  283. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  284. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  285. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  286. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  287. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  288. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  289. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  290. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  291. data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
  292. data/ext/pg_query/include/postgres/port.h +555 -0
  293. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  294. data/ext/pg_query/include/postgres/postgres.h +579 -0
  295. data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
  296. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
  297. data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
  298. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
  299. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
  300. data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
  301. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  302. data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
  303. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  304. data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
  305. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  306. data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
  307. data/ext/pg_query/include/postgres/regex/regex.h +272 -0
  308. data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
  309. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  310. data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
  311. data/ext/pg_query/include/postgres/replication/origin.h +73 -0
  312. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
  313. data/ext/pg_query/include/postgres/replication/slot.h +289 -0
  314. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  315. data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
  316. data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
  317. data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
  318. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
  319. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
  320. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
  321. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
  322. data/ext/pg_query/include/postgres/storage/block.h +108 -0
  323. data/ext/pg_query/include/postgres/storage/buf.h +46 -0
  324. data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
  325. data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
  326. data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
  327. data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
  328. data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
  329. data/ext/pg_query/include/postgres/storage/fd.h +219 -0
  330. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  331. data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
  332. data/ext/pg_query/include/postgres/storage/item.h +19 -0
  333. data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
  334. data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
  335. data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
  336. data/ext/pg_query/include/postgres/storage/latch.h +196 -0
  337. data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
  338. data/ext/pg_query/include/postgres/storage/lock.h +624 -0
  339. data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
  340. data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
  341. data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
  342. data/ext/pg_query/include/postgres/storage/off.h +57 -0
  343. data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
  344. data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
  345. data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
  346. data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
  347. data/ext/pg_query/include/postgres/storage/proc.h +488 -0
  348. data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
  349. data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
  350. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  351. data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
  352. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  353. data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
  354. data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
  355. data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
  356. data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
  357. data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
  358. data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
  359. data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
  360. data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
  361. data/ext/pg_query/include/postgres/storage/spin.h +77 -0
  362. data/ext/pg_query/include/postgres/storage/standby.h +109 -0
  363. data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
  364. data/ext/pg_query/include/postgres/storage/sync.h +66 -0
  365. data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
  366. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
  367. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
  368. data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
  369. data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
  370. data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
  371. data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
  372. data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
  373. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
  374. data/ext/pg_query/include/postgres/utils/acl.h +290 -0
  375. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
  376. data/ext/pg_query/include/postgres/utils/array.h +481 -0
  377. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  378. data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
  379. data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
  380. data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
  381. data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
  382. data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
  383. data/ext/pg_query/include/postgres/utils/date.h +118 -0
  384. data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
  385. data/ext/pg_query/include/postgres/utils/datum.h +76 -0
  386. data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
  387. data/ext/pg_query/include/postgres/utils/elog.h +540 -0
  388. data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
  389. data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
  390. data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
  391. data/ext/pg_query/include/postgres/utils/float.h +357 -0
  392. data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
  393. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
  394. data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
  395. data/ext/pg_query/include/postgres/utils/guc.h +456 -0
  396. data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
  397. data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
  398. data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
  399. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  400. data/ext/pg_query/include/postgres/utils/inval.h +68 -0
  401. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  402. data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
  403. data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
  404. data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
  405. data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
  406. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
  407. data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
  408. data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
  409. data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
  410. data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
  411. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
  412. data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
  413. data/ext/pg_query/include/postgres/utils/portal.h +252 -0
  414. data/ext/pg_query/include/postgres/utils/probes.h +114 -0
  415. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  416. data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
  417. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  418. data/ext/pg_query/include/postgres/utils/rel.h +711 -0
  419. data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
  420. data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
  421. data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
  422. data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
  423. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
  424. data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
  425. data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
  426. data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
  427. data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
  428. data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
  429. data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
  430. data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
  431. data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
  432. data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
  433. data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
  434. data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
  435. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  436. data/ext/pg_query/include/postgres/utils/xml.h +94 -0
  437. data/ext/pg_query/include/postgres/varatt.h +358 -0
  438. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +8077 -6217
  439. data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
  440. data/ext/pg_query/pg_query.c +10 -1
  441. data/ext/pg_query/pg_query.pb-c.c +24028 -17173
  442. data/ext/pg_query/pg_query_deparse.c +1 -9902
  443. data/ext/pg_query/pg_query_fingerprint.c +42 -18
  444. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  445. data/ext/pg_query/pg_query_internal.h +1 -1
  446. data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
  447. data/ext/pg_query/pg_query_normalize.c +44 -3
  448. data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
  449. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  450. data/ext/pg_query/pg_query_parse.c +47 -5
  451. data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
  452. data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
  453. data/ext/pg_query/pg_query_ruby.c +5 -0
  454. data/ext/pg_query/pg_query_scan.c +4 -3
  455. data/ext/pg_query/pg_query_split.c +6 -5
  456. data/ext/pg_query/postgres_deparse.c +11496 -0
  457. data/ext/pg_query/postgres_deparse.h +9 -0
  458. data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
  459. data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
  460. data/ext/pg_query/src_backend_commands_define.c +12 -3
  461. data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
  462. data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
  463. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
  464. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  465. data/ext/pg_query/src_backend_nodes_list.c +89 -18
  466. data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
  467. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
  468. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  469. data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
  470. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  471. data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
  472. data/ext/pg_query/src_backend_parser_scansup.c +5 -28
  473. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  474. data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
  475. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  476. data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
  477. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  478. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  479. data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
  480. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
  481. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  482. data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
  483. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
  484. data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
  485. data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
  486. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
  487. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
  488. data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
  489. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  490. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
  491. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
  492. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
  493. data/ext/pg_query/src_common_encnames.c +46 -44
  494. data/ext/pg_query/src_common_hashfn.c +3 -3
  495. data/ext/pg_query/src_common_keywords.c +15 -2
  496. data/ext/pg_query/src_common_kwlist_d.h +602 -510
  497. data/ext/pg_query/src_common_kwlookup.c +1 -1
  498. data/ext/pg_query/src_common_psprintf.c +3 -3
  499. data/ext/pg_query/src_common_stringinfo.c +21 -4
  500. data/ext/pg_query/src_common_wchar.c +754 -178
  501. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
  502. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  503. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
  504. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  505. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  506. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
  507. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  508. data/ext/pg_query/src_port_pg_bitutils.c +283 -54
  509. data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
  510. data/ext/pg_query/src_port_qsort.c +12 -224
  511. data/ext/pg_query/src_port_snprintf.c +56 -39
  512. data/ext/pg_query/src_port_strerror.c +9 -21
  513. data/ext/pg_query/src_port_strlcpy.c +79 -0
  514. data/lib/pg_query/filter_columns.rb +1 -1
  515. data/lib/pg_query/fingerprint.rb +10 -9
  516. data/lib/pg_query/node.rb +18 -13
  517. data/lib/pg_query/param_refs.rb +3 -3
  518. data/lib/pg_query/parse.rb +25 -15
  519. data/lib/pg_query/parse_error.rb +1 -0
  520. data/lib/pg_query/pg_query_pb.rb +181 -3038
  521. data/lib/pg_query/scan.rb +1 -0
  522. data/lib/pg_query/treewalker.rb +55 -8
  523. data/lib/pg_query/truncate.rb +19 -21
  524. data/lib/pg_query/version.rb +1 -1
  525. metadata +447 -436
  526. data/ext/pg_query/guc-file.c +0 -0
  527. data/ext/pg_query/include/access/amapi.h +0 -246
  528. data/ext/pg_query/include/access/attmap.h +0 -52
  529. data/ext/pg_query/include/access/attnum.h +0 -64
  530. data/ext/pg_query/include/access/clog.h +0 -61
  531. data/ext/pg_query/include/access/commit_ts.h +0 -77
  532. data/ext/pg_query/include/access/detoast.h +0 -92
  533. data/ext/pg_query/include/access/genam.h +0 -228
  534. data/ext/pg_query/include/access/gin.h +0 -78
  535. data/ext/pg_query/include/access/htup.h +0 -89
  536. data/ext/pg_query/include/access/htup_details.h +0 -819
  537. data/ext/pg_query/include/access/itup.h +0 -161
  538. data/ext/pg_query/include/access/parallel.h +0 -82
  539. data/ext/pg_query/include/access/printtup.h +0 -35
  540. data/ext/pg_query/include/access/relation.h +0 -28
  541. data/ext/pg_query/include/access/relscan.h +0 -176
  542. data/ext/pg_query/include/access/rmgr.h +0 -35
  543. data/ext/pg_query/include/access/rmgrlist.h +0 -49
  544. data/ext/pg_query/include/access/sdir.h +0 -58
  545. data/ext/pg_query/include/access/skey.h +0 -151
  546. data/ext/pg_query/include/access/stratnum.h +0 -83
  547. data/ext/pg_query/include/access/sysattr.h +0 -29
  548. data/ext/pg_query/include/access/table.h +0 -27
  549. data/ext/pg_query/include/access/tableam.h +0 -1825
  550. data/ext/pg_query/include/access/transam.h +0 -265
  551. data/ext/pg_query/include/access/tupconvert.h +0 -51
  552. data/ext/pg_query/include/access/tupdesc.h +0 -154
  553. data/ext/pg_query/include/access/tupmacs.h +0 -247
  554. data/ext/pg_query/include/access/twophase.h +0 -63
  555. data/ext/pg_query/include/access/xact.h +0 -469
  556. data/ext/pg_query/include/access/xlog.h +0 -398
  557. data/ext/pg_query/include/access/xlog_internal.h +0 -339
  558. data/ext/pg_query/include/access/xlogdefs.h +0 -109
  559. data/ext/pg_query/include/access/xloginsert.h +0 -64
  560. data/ext/pg_query/include/access/xlogreader.h +0 -337
  561. data/ext/pg_query/include/access/xlogrecord.h +0 -227
  562. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  563. data/ext/pg_query/include/c.h +0 -1334
  564. data/ext/pg_query/include/catalog/catalog.h +0 -42
  565. data/ext/pg_query/include/catalog/catversion.h +0 -58
  566. data/ext/pg_query/include/catalog/dependency.h +0 -277
  567. data/ext/pg_query/include/catalog/genbki.h +0 -64
  568. data/ext/pg_query/include/catalog/index.h +0 -199
  569. data/ext/pg_query/include/catalog/indexing.h +0 -366
  570. data/ext/pg_query/include/catalog/namespace.h +0 -188
  571. data/ext/pg_query/include/catalog/objectaccess.h +0 -197
  572. data/ext/pg_query/include/catalog/objectaddress.h +0 -84
  573. data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
  574. data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
  575. data/ext/pg_query/include/catalog/pg_am.h +0 -60
  576. data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
  577. data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
  578. data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
  579. data/ext/pg_query/include/catalog/pg_authid.h +0 -58
  580. data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
  581. data/ext/pg_query/include/catalog/pg_class.h +0 -200
  582. data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
  583. data/ext/pg_query/include/catalog/pg_collation.h +0 -73
  584. data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
  585. data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
  586. data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
  587. data/ext/pg_query/include/catalog/pg_control.h +0 -252
  588. data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
  589. data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
  590. data/ext/pg_query/include/catalog/pg_depend.h +0 -73
  591. data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
  592. data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
  593. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
  594. data/ext/pg_query/include/catalog/pg_index.h +0 -80
  595. data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
  596. data/ext/pg_query/include/catalog/pg_language.h +0 -67
  597. data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
  598. data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
  599. data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
  600. data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
  601. data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
  602. data/ext/pg_query/include/catalog/pg_operator.h +0 -104
  603. data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
  604. data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
  605. data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
  606. data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
  607. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
  608. data/ext/pg_query/include/catalog/pg_proc.h +0 -211
  609. data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
  610. data/ext/pg_query/include/catalog/pg_publication.h +0 -118
  611. data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
  612. data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
  613. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
  614. data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
  615. data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
  616. data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
  617. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
  618. data/ext/pg_query/include/catalog/pg_transform.h +0 -45
  619. data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
  620. data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
  621. data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
  622. data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
  623. data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
  624. data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
  625. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
  626. data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
  627. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
  628. data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
  629. data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
  630. data/ext/pg_query/include/catalog/pg_type.h +0 -373
  631. data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
  632. data/ext/pg_query/include/catalog/storage.h +0 -48
  633. data/ext/pg_query/include/commands/async.h +0 -54
  634. data/ext/pg_query/include/commands/dbcommands.h +0 -35
  635. data/ext/pg_query/include/commands/defrem.h +0 -173
  636. data/ext/pg_query/include/commands/event_trigger.h +0 -88
  637. data/ext/pg_query/include/commands/explain.h +0 -127
  638. data/ext/pg_query/include/commands/prepare.h +0 -61
  639. data/ext/pg_query/include/commands/tablespace.h +0 -69
  640. data/ext/pg_query/include/commands/trigger.h +0 -285
  641. data/ext/pg_query/include/commands/user.h +0 -37
  642. data/ext/pg_query/include/commands/vacuum.h +0 -293
  643. data/ext/pg_query/include/commands/variable.h +0 -38
  644. data/ext/pg_query/include/common/file_perm.h +0 -56
  645. data/ext/pg_query/include/common/hashfn.h +0 -104
  646. data/ext/pg_query/include/common/ip.h +0 -37
  647. data/ext/pg_query/include/common/keywords.h +0 -33
  648. data/ext/pg_query/include/common/kwlookup.h +0 -44
  649. data/ext/pg_query/include/common/relpath.h +0 -90
  650. data/ext/pg_query/include/common/string.h +0 -19
  651. data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
  652. data/ext/pg_query/include/datatype/timestamp.h +0 -197
  653. data/ext/pg_query/include/executor/execdesc.h +0 -70
  654. data/ext/pg_query/include/executor/executor.h +0 -620
  655. data/ext/pg_query/include/executor/functions.h +0 -41
  656. data/ext/pg_query/include/executor/instrument.h +0 -101
  657. data/ext/pg_query/include/executor/spi.h +0 -175
  658. data/ext/pg_query/include/executor/tablefunc.h +0 -67
  659. data/ext/pg_query/include/executor/tuptable.h +0 -487
  660. data/ext/pg_query/include/fmgr.h +0 -775
  661. data/ext/pg_query/include/funcapi.h +0 -348
  662. data/ext/pg_query/include/getaddrinfo.h +0 -162
  663. data/ext/pg_query/include/jit/jit.h +0 -105
  664. data/ext/pg_query/include/kwlist_d.h +0 -1072
  665. data/ext/pg_query/include/lib/ilist.h +0 -727
  666. data/ext/pg_query/include/lib/pairingheap.h +0 -102
  667. data/ext/pg_query/include/lib/simplehash.h +0 -1059
  668. data/ext/pg_query/include/lib/stringinfo.h +0 -161
  669. data/ext/pg_query/include/libpq/auth.h +0 -29
  670. data/ext/pg_query/include/libpq/crypt.h +0 -46
  671. data/ext/pg_query/include/libpq/hba.h +0 -140
  672. data/ext/pg_query/include/libpq/libpq-be.h +0 -326
  673. data/ext/pg_query/include/libpq/libpq.h +0 -134
  674. data/ext/pg_query/include/libpq/pqcomm.h +0 -208
  675. data/ext/pg_query/include/libpq/pqformat.h +0 -210
  676. data/ext/pg_query/include/libpq/pqsignal.h +0 -42
  677. data/ext/pg_query/include/mb/pg_wchar.h +0 -673
  678. data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
  679. data/ext/pg_query/include/miscadmin.h +0 -489
  680. data/ext/pg_query/include/nodes/bitmapset.h +0 -122
  681. data/ext/pg_query/include/nodes/execnodes.h +0 -2523
  682. data/ext/pg_query/include/nodes/extensible.h +0 -160
  683. data/ext/pg_query/include/nodes/lockoptions.h +0 -61
  684. data/ext/pg_query/include/nodes/makefuncs.h +0 -108
  685. data/ext/pg_query/include/nodes/memnodes.h +0 -108
  686. data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
  687. data/ext/pg_query/include/nodes/nodes.h +0 -842
  688. data/ext/pg_query/include/nodes/params.h +0 -170
  689. data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
  690. data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
  691. data/ext/pg_query/include/nodes/pg_list.h +0 -606
  692. data/ext/pg_query/include/nodes/plannodes.h +0 -1266
  693. data/ext/pg_query/include/nodes/primnodes.h +0 -1541
  694. data/ext/pg_query/include/nodes/print.h +0 -34
  695. data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
  696. data/ext/pg_query/include/nodes/value.h +0 -61
  697. data/ext/pg_query/include/optimizer/cost.h +0 -206
  698. data/ext/pg_query/include/optimizer/geqo.h +0 -88
  699. data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
  700. data/ext/pg_query/include/optimizer/optimizer.h +0 -194
  701. data/ext/pg_query/include/optimizer/paths.h +0 -257
  702. data/ext/pg_query/include/optimizer/planmain.h +0 -119
  703. data/ext/pg_query/include/parser/analyze.h +0 -49
  704. data/ext/pg_query/include/parser/gram.h +0 -1067
  705. data/ext/pg_query/include/parser/gramparse.h +0 -75
  706. data/ext/pg_query/include/parser/kwlist.h +0 -477
  707. data/ext/pg_query/include/parser/parse_agg.h +0 -68
  708. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  709. data/ext/pg_query/include/parser/parse_coerce.h +0 -98
  710. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  711. data/ext/pg_query/include/parser/parse_expr.h +0 -26
  712. data/ext/pg_query/include/parser/parse_func.h +0 -73
  713. data/ext/pg_query/include/parser/parse_node.h +0 -327
  714. data/ext/pg_query/include/parser/parse_oper.h +0 -67
  715. data/ext/pg_query/include/parser/parse_relation.h +0 -123
  716. data/ext/pg_query/include/parser/parse_target.h +0 -46
  717. data/ext/pg_query/include/parser/parse_type.h +0 -60
  718. data/ext/pg_query/include/parser/parser.h +0 -41
  719. data/ext/pg_query/include/parser/parsetree.h +0 -61
  720. data/ext/pg_query/include/parser/scanner.h +0 -152
  721. data/ext/pg_query/include/parser/scansup.h +0 -30
  722. data/ext/pg_query/include/partitioning/partdefs.h +0 -26
  723. data/ext/pg_query/include/pg_config.h +0 -995
  724. data/ext/pg_query/include/pg_config_manual.h +0 -357
  725. data/ext/pg_query/include/pg_config_os.h +0 -8
  726. data/ext/pg_query/include/pg_getopt.h +0 -56
  727. data/ext/pg_query/include/pg_trace.h +0 -17
  728. data/ext/pg_query/include/pgstat.h +0 -1488
  729. data/ext/pg_query/include/pgtime.h +0 -84
  730. data/ext/pg_query/include/pl_gram.h +0 -385
  731. data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
  732. data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
  733. data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
  734. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
  735. data/ext/pg_query/include/plerrcodes.h +0 -990
  736. data/ext/pg_query/include/plpgsql.h +0 -1347
  737. data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
  738. data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
  739. data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
  740. data/ext/pg_query/include/port/atomics/fallback.h +0 -170
  741. data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
  742. data/ext/pg_query/include/port/atomics/generic.h +0 -401
  743. data/ext/pg_query/include/port/atomics.h +0 -524
  744. data/ext/pg_query/include/port/pg_bitutils.h +0 -272
  745. data/ext/pg_query/include/port/pg_bswap.h +0 -161
  746. data/ext/pg_query/include/port/pg_crc32c.h +0 -101
  747. data/ext/pg_query/include/port.h +0 -528
  748. data/ext/pg_query/include/portability/instr_time.h +0 -256
  749. data/ext/pg_query/include/postgres.h +0 -764
  750. data/ext/pg_query/include/postgres_ext.h +0 -74
  751. data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
  752. data/ext/pg_query/include/postmaster/bgworker.h +0 -161
  753. data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
  754. data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
  755. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  756. data/ext/pg_query/include/postmaster/interrupt.h +0 -32
  757. data/ext/pg_query/include/postmaster/pgarch.h +0 -39
  758. data/ext/pg_query/include/postmaster/postmaster.h +0 -77
  759. data/ext/pg_query/include/postmaster/syslogger.h +0 -98
  760. data/ext/pg_query/include/postmaster/walwriter.h +0 -21
  761. data/ext/pg_query/include/regex/regex.h +0 -184
  762. data/ext/pg_query/include/replication/logicallauncher.h +0 -31
  763. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  764. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  765. data/ext/pg_query/include/replication/origin.h +0 -73
  766. data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
  767. data/ext/pg_query/include/replication/slot.h +0 -219
  768. data/ext/pg_query/include/replication/syncrep.h +0 -115
  769. data/ext/pg_query/include/replication/walreceiver.h +0 -340
  770. data/ext/pg_query/include/replication/walsender.h +0 -74
  771. data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
  772. data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -40
  773. data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
  774. data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
  775. data/ext/pg_query/include/storage/backendid.h +0 -37
  776. data/ext/pg_query/include/storage/block.h +0 -121
  777. data/ext/pg_query/include/storage/buf.h +0 -46
  778. data/ext/pg_query/include/storage/bufmgr.h +0 -292
  779. data/ext/pg_query/include/storage/bufpage.h +0 -459
  780. data/ext/pg_query/include/storage/condition_variable.h +0 -62
  781. data/ext/pg_query/include/storage/dsm.h +0 -61
  782. data/ext/pg_query/include/storage/dsm_impl.h +0 -75
  783. data/ext/pg_query/include/storage/fd.h +0 -168
  784. data/ext/pg_query/include/storage/ipc.h +0 -81
  785. data/ext/pg_query/include/storage/item.h +0 -19
  786. data/ext/pg_query/include/storage/itemid.h +0 -184
  787. data/ext/pg_query/include/storage/itemptr.h +0 -206
  788. data/ext/pg_query/include/storage/large_object.h +0 -100
  789. data/ext/pg_query/include/storage/latch.h +0 -190
  790. data/ext/pg_query/include/storage/lmgr.h +0 -114
  791. data/ext/pg_query/include/storage/lock.h +0 -613
  792. data/ext/pg_query/include/storage/lockdefs.h +0 -59
  793. data/ext/pg_query/include/storage/lwlock.h +0 -233
  794. data/ext/pg_query/include/storage/lwlocknames.h +0 -51
  795. data/ext/pg_query/include/storage/off.h +0 -57
  796. data/ext/pg_query/include/storage/pg_sema.h +0 -61
  797. data/ext/pg_query/include/storage/pg_shmem.h +0 -90
  798. data/ext/pg_query/include/storage/pmsignal.h +0 -94
  799. data/ext/pg_query/include/storage/predicate.h +0 -87
  800. data/ext/pg_query/include/storage/proc.h +0 -347
  801. data/ext/pg_query/include/storage/proclist_types.h +0 -51
  802. data/ext/pg_query/include/storage/procsignal.h +0 -75
  803. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  804. data/ext/pg_query/include/storage/s_lock.h +0 -1071
  805. data/ext/pg_query/include/storage/sharedfileset.h +0 -45
  806. data/ext/pg_query/include/storage/shm_mq.h +0 -85
  807. data/ext/pg_query/include/storage/shm_toc.h +0 -58
  808. data/ext/pg_query/include/storage/shmem.h +0 -81
  809. data/ext/pg_query/include/storage/sinval.h +0 -153
  810. data/ext/pg_query/include/storage/sinvaladt.h +0 -43
  811. data/ext/pg_query/include/storage/smgr.h +0 -109
  812. data/ext/pg_query/include/storage/spin.h +0 -77
  813. data/ext/pg_query/include/storage/standby.h +0 -91
  814. data/ext/pg_query/include/storage/standbydefs.h +0 -74
  815. data/ext/pg_query/include/storage/sync.h +0 -62
  816. data/ext/pg_query/include/tcop/cmdtag.h +0 -58
  817. data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
  818. data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
  819. data/ext/pg_query/include/tcop/dest.h +0 -149
  820. data/ext/pg_query/include/tcop/fastpath.h +0 -21
  821. data/ext/pg_query/include/tcop/pquery.h +0 -51
  822. data/ext/pg_query/include/tcop/tcopprot.h +0 -89
  823. data/ext/pg_query/include/tcop/utility.h +0 -108
  824. data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
  825. data/ext/pg_query/include/utils/acl.h +0 -312
  826. data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
  827. data/ext/pg_query/include/utils/array.h +0 -459
  828. data/ext/pg_query/include/utils/builtins.h +0 -128
  829. data/ext/pg_query/include/utils/bytea.h +0 -27
  830. data/ext/pg_query/include/utils/catcache.h +0 -231
  831. data/ext/pg_query/include/utils/date.h +0 -90
  832. data/ext/pg_query/include/utils/datetime.h +0 -343
  833. data/ext/pg_query/include/utils/datum.h +0 -68
  834. data/ext/pg_query/include/utils/dsa.h +0 -123
  835. data/ext/pg_query/include/utils/dynahash.h +0 -19
  836. data/ext/pg_query/include/utils/elog.h +0 -439
  837. data/ext/pg_query/include/utils/errcodes.h +0 -352
  838. data/ext/pg_query/include/utils/expandeddatum.h +0 -159
  839. data/ext/pg_query/include/utils/expandedrecord.h +0 -231
  840. data/ext/pg_query/include/utils/float.h +0 -356
  841. data/ext/pg_query/include/utils/fmgroids.h +0 -2657
  842. data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
  843. data/ext/pg_query/include/utils/fmgrtab.h +0 -48
  844. data/ext/pg_query/include/utils/guc.h +0 -443
  845. data/ext/pg_query/include/utils/guc_tables.h +0 -272
  846. data/ext/pg_query/include/utils/hsearch.h +0 -149
  847. data/ext/pg_query/include/utils/inval.h +0 -65
  848. data/ext/pg_query/include/utils/lsyscache.h +0 -198
  849. data/ext/pg_query/include/utils/memdebug.h +0 -82
  850. data/ext/pg_query/include/utils/memutils.h +0 -225
  851. data/ext/pg_query/include/utils/numeric.h +0 -76
  852. data/ext/pg_query/include/utils/palloc.h +0 -136
  853. data/ext/pg_query/include/utils/partcache.h +0 -102
  854. data/ext/pg_query/include/utils/pg_locale.h +0 -119
  855. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  856. data/ext/pg_query/include/utils/pidfile.h +0 -56
  857. data/ext/pg_query/include/utils/plancache.h +0 -235
  858. data/ext/pg_query/include/utils/portal.h +0 -254
  859. data/ext/pg_query/include/utils/probes.h +0 -114
  860. data/ext/pg_query/include/utils/ps_status.h +0 -25
  861. data/ext/pg_query/include/utils/queryenvironment.h +0 -74
  862. data/ext/pg_query/include/utils/regproc.h +0 -28
  863. data/ext/pg_query/include/utils/rel.h +0 -643
  864. data/ext/pg_query/include/utils/relcache.h +0 -150
  865. data/ext/pg_query/include/utils/reltrigger.h +0 -81
  866. data/ext/pg_query/include/utils/resowner.h +0 -86
  867. data/ext/pg_query/include/utils/rls.h +0 -50
  868. data/ext/pg_query/include/utils/ruleutils.h +0 -44
  869. data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
  870. data/ext/pg_query/include/utils/snapmgr.h +0 -159
  871. data/ext/pg_query/include/utils/snapshot.h +0 -206
  872. data/ext/pg_query/include/utils/sortsupport.h +0 -276
  873. data/ext/pg_query/include/utils/syscache.h +0 -219
  874. data/ext/pg_query/include/utils/timeout.h +0 -88
  875. data/ext/pg_query/include/utils/timestamp.h +0 -116
  876. data/ext/pg_query/include/utils/tuplesort.h +0 -277
  877. data/ext/pg_query/include/utils/tuplestore.h +0 -91
  878. data/ext/pg_query/include/utils/typcache.h +0 -202
  879. data/ext/pg_query/include/utils/tzparser.h +0 -39
  880. data/ext/pg_query/include/utils/varlena.h +0 -39
  881. data/ext/pg_query/include/utils/xml.h +0 -84
  882. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  883. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  884. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  885. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  886. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  887. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  888. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
  889. data/ext/pg_query/src_common_string.c +0 -86
  890. data/ext/pg_query/src_port_erand48.c +0 -127
  891. data/ext/pg_query/src_port_pgsleep.c +0 -69
  892. data/ext/pg_query/src_port_random.c +0 -31
  893. data/ext/pg_query/src_port_strnlen.c +0 -39
  894. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
  895. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -1,673 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * pg_wchar.h
4
- * multibyte-character support
5
- *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
- * Portions Copyright (c) 1994, Regents of the University of California
8
- *
9
- * src/include/mb/pg_wchar.h
10
- *
11
- * NOTES
12
- * This is used both by the backend and by frontends, but should not be
13
- * included by libpq client programs. In particular, a libpq client
14
- * should not assume that the encoding IDs used by the version of libpq
15
- * it's linked to match up with the IDs declared here.
16
- *
17
- *-------------------------------------------------------------------------
18
- */
19
- #ifndef PG_WCHAR_H
20
- #define PG_WCHAR_H
21
-
22
- /*
23
- * The pg_wchar type
24
- */
25
- typedef unsigned int pg_wchar;
26
-
27
- /*
28
- * Maximum byte length of multibyte characters in any backend encoding
29
- */
30
- #define MAX_MULTIBYTE_CHAR_LEN 4
31
-
32
- /*
33
- * various definitions for EUC
34
- */
35
- #define SS2 0x8e /* single shift 2 (JIS0201) */
36
- #define SS3 0x8f /* single shift 3 (JIS0212) */
37
-
38
- /*
39
- * SJIS validation macros
40
- */
41
- #define ISSJISHEAD(c) (((c) >= 0x81 && (c) <= 0x9f) || ((c) >= 0xe0 && (c) <= 0xfc))
42
- #define ISSJISTAIL(c) (((c) >= 0x40 && (c) <= 0x7e) || ((c) >= 0x80 && (c) <= 0xfc))
43
-
44
- /*----------------------------------------------------
45
- * MULE Internal Encoding (MIC)
46
- *
47
- * This encoding follows the design used within XEmacs; it is meant to
48
- * subsume many externally-defined character sets. Each character includes
49
- * identification of the character set it belongs to, so the encoding is
50
- * general but somewhat bulky.
51
- *
52
- * Currently PostgreSQL supports 5 types of MULE character sets:
53
- *
54
- * 1) 1-byte ASCII characters. Each byte is below 0x80.
55
- *
56
- * 2) "Official" single byte charsets such as ISO-8859-1 (Latin1).
57
- * Each MULE character consists of 2 bytes: LC1 + C1, where LC1 is
58
- * an identifier for the charset (in the range 0x81 to 0x8d) and C1
59
- * is the character code (in the range 0xa0 to 0xff).
60
- *
61
- * 3) "Private" single byte charsets such as SISHENG. Each MULE
62
- * character consists of 3 bytes: LCPRV1 + LC12 + C1, where LCPRV1
63
- * is a private-charset flag, LC12 is an identifier for the charset,
64
- * and C1 is the character code (in the range 0xa0 to 0xff).
65
- * LCPRV1 is either 0x9a (if LC12 is in the range 0xa0 to 0xdf)
66
- * or 0x9b (if LC12 is in the range 0xe0 to 0xef).
67
- *
68
- * 4) "Official" multibyte charsets such as JIS X0208. Each MULE
69
- * character consists of 3 bytes: LC2 + C1 + C2, where LC2 is
70
- * an identifier for the charset (in the range 0x90 to 0x99) and C1
71
- * and C2 form the character code (each in the range 0xa0 to 0xff).
72
- *
73
- * 5) "Private" multibyte charsets such as CNS 11643-1992 Plane 3.
74
- * Each MULE character consists of 4 bytes: LCPRV2 + LC22 + C1 + C2,
75
- * where LCPRV2 is a private-charset flag, LC22 is an identifier for
76
- * the charset, and C1 and C2 form the character code (each in the range
77
- * 0xa0 to 0xff). LCPRV2 is either 0x9c (if LC22 is in the range 0xf0
78
- * to 0xf4) or 0x9d (if LC22 is in the range 0xf5 to 0xfe).
79
- *
80
- * "Official" encodings are those that have been assigned code numbers by
81
- * the XEmacs project; "private" encodings have Postgres-specific charset
82
- * identifiers.
83
- *
84
- * See the "XEmacs Internals Manual", available at http://www.xemacs.org,
85
- * for more details. Note that for historical reasons, Postgres'
86
- * private-charset flag values do not match what XEmacs says they should be,
87
- * so this isn't really exactly MULE (not that private charsets would be
88
- * interoperable anyway).
89
- *
90
- * Note that XEmacs's implementation is different from what emacs does.
91
- * We follow emacs's implementation, rather than XEmacs's.
92
- *----------------------------------------------------
93
- */
94
-
95
- /*
96
- * Charset identifiers (also called "leading bytes" in the MULE documentation)
97
- */
98
-
99
- /*
100
- * Charset IDs for official single byte encodings (0x81-0x8e)
101
- */
102
- #define LC_ISO8859_1 0x81 /* ISO8859 Latin 1 */
103
- #define LC_ISO8859_2 0x82 /* ISO8859 Latin 2 */
104
- #define LC_ISO8859_3 0x83 /* ISO8859 Latin 3 */
105
- #define LC_ISO8859_4 0x84 /* ISO8859 Latin 4 */
106
- #define LC_TIS620 0x85 /* Thai (not supported yet) */
107
- #define LC_ISO8859_7 0x86 /* Greek (not supported yet) */
108
- #define LC_ISO8859_6 0x87 /* Arabic (not supported yet) */
109
- #define LC_ISO8859_8 0x88 /* Hebrew (not supported yet) */
110
- #define LC_JISX0201K 0x89 /* Japanese 1 byte kana */
111
- #define LC_JISX0201R 0x8a /* Japanese 1 byte Roman */
112
- /* Note that 0x8b seems to be unused as of Emacs 20.7.
113
- * However, there might be a chance that 0x8b could be used
114
- * in later versions of Emacs.
115
- */
116
- #define LC_KOI8_R 0x8b /* Cyrillic KOI8-R */
117
- #define LC_ISO8859_5 0x8c /* ISO8859 Cyrillic */
118
- #define LC_ISO8859_9 0x8d /* ISO8859 Latin 5 (not supported yet) */
119
- #define LC_ISO8859_15 0x8e /* ISO8859 Latin 15 (not supported yet) */
120
- /* #define CONTROL_1 0x8f control characters (unused) */
121
-
122
- /* Is a leading byte for "official" single byte encodings? */
123
- #define IS_LC1(c) ((unsigned char)(c) >= 0x81 && (unsigned char)(c) <= 0x8d)
124
-
125
- /*
126
- * Charset IDs for official multibyte encodings (0x90-0x99)
127
- * 0x9a-0x9d are free. 0x9e and 0x9f are reserved.
128
- */
129
- #define LC_JISX0208_1978 0x90 /* Japanese Kanji, old JIS (not supported) */
130
- #define LC_GB2312_80 0x91 /* Chinese */
131
- #define LC_JISX0208 0x92 /* Japanese Kanji (JIS X 0208) */
132
- #define LC_KS5601 0x93 /* Korean */
133
- #define LC_JISX0212 0x94 /* Japanese Kanji (JIS X 0212) */
134
- #define LC_CNS11643_1 0x95 /* CNS 11643-1992 Plane 1 */
135
- #define LC_CNS11643_2 0x96 /* CNS 11643-1992 Plane 2 */
136
- #define LC_JISX0213_1 0x97 /* Japanese Kanji (JIS X 0213 Plane 1)
137
- * (not supported) */
138
- #define LC_BIG5_1 0x98 /* Plane 1 Chinese traditional (not
139
- * supported) */
140
- #define LC_BIG5_2 0x99 /* Plane 1 Chinese traditional (not
141
- * supported) */
142
-
143
- /* Is a leading byte for "official" multibyte encodings? */
144
- #define IS_LC2(c) ((unsigned char)(c) >= 0x90 && (unsigned char)(c) <= 0x99)
145
-
146
- /*
147
- * Postgres-specific prefix bytes for "private" single byte encodings
148
- * (According to the MULE docs, we should be using 0x9e for this)
149
- */
150
- #define LCPRV1_A 0x9a
151
- #define LCPRV1_B 0x9b
152
- #define IS_LCPRV1(c) ((unsigned char)(c) == LCPRV1_A || (unsigned char)(c) == LCPRV1_B)
153
- #define IS_LCPRV1_A_RANGE(c) \
154
- ((unsigned char)(c) >= 0xa0 && (unsigned char)(c) <= 0xdf)
155
- #define IS_LCPRV1_B_RANGE(c) \
156
- ((unsigned char)(c) >= 0xe0 && (unsigned char)(c) <= 0xef)
157
-
158
- /*
159
- * Postgres-specific prefix bytes for "private" multibyte encodings
160
- * (According to the MULE docs, we should be using 0x9f for this)
161
- */
162
- #define LCPRV2_A 0x9c
163
- #define LCPRV2_B 0x9d
164
- #define IS_LCPRV2(c) ((unsigned char)(c) == LCPRV2_A || (unsigned char)(c) == LCPRV2_B)
165
- #define IS_LCPRV2_A_RANGE(c) \
166
- ((unsigned char)(c) >= 0xf0 && (unsigned char)(c) <= 0xf4)
167
- #define IS_LCPRV2_B_RANGE(c) \
168
- ((unsigned char)(c) >= 0xf5 && (unsigned char)(c) <= 0xfe)
169
-
170
- /*
171
- * Charset IDs for private single byte encodings (0xa0-0xef)
172
- */
173
- #define LC_SISHENG 0xa0 /* Chinese SiSheng characters for
174
- * PinYin/ZhuYin (not supported) */
175
- #define LC_IPA 0xa1 /* IPA (International Phonetic
176
- * Association) (not supported) */
177
- #define LC_VISCII_LOWER 0xa2 /* Vietnamese VISCII1.1 lower-case (not
178
- * supported) */
179
- #define LC_VISCII_UPPER 0xa3 /* Vietnamese VISCII1.1 upper-case (not
180
- * supported) */
181
- #define LC_ARABIC_DIGIT 0xa4 /* Arabic digit (not supported) */
182
- #define LC_ARABIC_1_COLUMN 0xa5 /* Arabic 1-column (not supported) */
183
- #define LC_ASCII_RIGHT_TO_LEFT 0xa6 /* ASCII (left half of ISO8859-1) with
184
- * right-to-left direction (not
185
- * supported) */
186
- #define LC_LAO 0xa7 /* Lao characters (ISO10646 0E80..0EDF)
187
- * (not supported) */
188
- #define LC_ARABIC_2_COLUMN 0xa8 /* Arabic 1-column (not supported) */
189
-
190
- /*
191
- * Charset IDs for private multibyte encodings (0xf0-0xff)
192
- */
193
- #define LC_INDIAN_1_COLUMN 0xf0 /* Indian charset for 1-column width
194
- * glyphs (not supported) */
195
- #define LC_TIBETAN_1_COLUMN 0xf1 /* Tibetan 1-column width glyphs (not
196
- * supported) */
197
- #define LC_UNICODE_SUBSET_2 0xf2 /* Unicode characters of the range
198
- * U+2500..U+33FF. (not supported) */
199
- #define LC_UNICODE_SUBSET_3 0xf3 /* Unicode characters of the range
200
- * U+E000..U+FFFF. (not supported) */
201
- #define LC_UNICODE_SUBSET 0xf4 /* Unicode characters of the range
202
- * U+0100..U+24FF. (not supported) */
203
- #define LC_ETHIOPIC 0xf5 /* Ethiopic characters (not supported) */
204
- #define LC_CNS11643_3 0xf6 /* CNS 11643-1992 Plane 3 */
205
- #define LC_CNS11643_4 0xf7 /* CNS 11643-1992 Plane 4 */
206
- #define LC_CNS11643_5 0xf8 /* CNS 11643-1992 Plane 5 */
207
- #define LC_CNS11643_6 0xf9 /* CNS 11643-1992 Plane 6 */
208
- #define LC_CNS11643_7 0xfa /* CNS 11643-1992 Plane 7 */
209
- #define LC_INDIAN_2_COLUMN 0xfb /* Indian charset for 2-column width
210
- * glyphs (not supported) */
211
- #define LC_TIBETAN 0xfc /* Tibetan (not supported) */
212
- /* #define FREE 0xfd free (unused) */
213
- /* #define FREE 0xfe free (unused) */
214
- /* #define FREE 0xff free (unused) */
215
-
216
- /*----------------------------------------------------
217
- * end of MULE stuff
218
- *----------------------------------------------------
219
- */
220
-
221
- /*
222
- * PostgreSQL encoding identifiers
223
- *
224
- * WARNING: the order of this enum must be same as order of entries
225
- * in the pg_enc2name_tbl[] array (in src/common/encnames.c), and
226
- * in the pg_wchar_table[] array (in src/common/wchar.c)!
227
- *
228
- * If you add some encoding don't forget to check
229
- * PG_ENCODING_BE_LAST macro.
230
- *
231
- * PG_SQL_ASCII is default encoding and must be = 0.
232
- *
233
- * XXX We must avoid renumbering any backend encoding until libpq's major
234
- * version number is increased beyond 5; it turns out that the backend
235
- * encoding IDs are effectively part of libpq's ABI as far as 8.2 initdb and
236
- * psql are concerned.
237
- */
238
- typedef enum pg_enc
239
- {
240
- PG_SQL_ASCII = 0, /* SQL/ASCII */
241
- PG_EUC_JP, /* EUC for Japanese */
242
- PG_EUC_CN, /* EUC for Chinese */
243
- PG_EUC_KR, /* EUC for Korean */
244
- PG_EUC_TW, /* EUC for Taiwan */
245
- PG_EUC_JIS_2004, /* EUC-JIS-2004 */
246
- PG_UTF8, /* Unicode UTF8 */
247
- PG_MULE_INTERNAL, /* Mule internal code */
248
- PG_LATIN1, /* ISO-8859-1 Latin 1 */
249
- PG_LATIN2, /* ISO-8859-2 Latin 2 */
250
- PG_LATIN3, /* ISO-8859-3 Latin 3 */
251
- PG_LATIN4, /* ISO-8859-4 Latin 4 */
252
- PG_LATIN5, /* ISO-8859-9 Latin 5 */
253
- PG_LATIN6, /* ISO-8859-10 Latin6 */
254
- PG_LATIN7, /* ISO-8859-13 Latin7 */
255
- PG_LATIN8, /* ISO-8859-14 Latin8 */
256
- PG_LATIN9, /* ISO-8859-15 Latin9 */
257
- PG_LATIN10, /* ISO-8859-16 Latin10 */
258
- PG_WIN1256, /* windows-1256 */
259
- PG_WIN1258, /* Windows-1258 */
260
- PG_WIN866, /* (MS-DOS CP866) */
261
- PG_WIN874, /* windows-874 */
262
- PG_KOI8R, /* KOI8-R */
263
- PG_WIN1251, /* windows-1251 */
264
- PG_WIN1252, /* windows-1252 */
265
- PG_ISO_8859_5, /* ISO-8859-5 */
266
- PG_ISO_8859_6, /* ISO-8859-6 */
267
- PG_ISO_8859_7, /* ISO-8859-7 */
268
- PG_ISO_8859_8, /* ISO-8859-8 */
269
- PG_WIN1250, /* windows-1250 */
270
- PG_WIN1253, /* windows-1253 */
271
- PG_WIN1254, /* windows-1254 */
272
- PG_WIN1255, /* windows-1255 */
273
- PG_WIN1257, /* windows-1257 */
274
- PG_KOI8U, /* KOI8-U */
275
- /* PG_ENCODING_BE_LAST points to the above entry */
276
-
277
- /* followings are for client encoding only */
278
- PG_SJIS, /* Shift JIS (Windows-932) */
279
- PG_BIG5, /* Big5 (Windows-950) */
280
- PG_GBK, /* GBK (Windows-936) */
281
- PG_UHC, /* UHC (Windows-949) */
282
- PG_GB18030, /* GB18030 */
283
- PG_JOHAB, /* EUC for Korean JOHAB */
284
- PG_SHIFT_JIS_2004, /* Shift-JIS-2004 */
285
- _PG_LAST_ENCODING_ /* mark only */
286
-
287
- } pg_enc;
288
-
289
- #define PG_ENCODING_BE_LAST PG_KOI8U
290
-
291
- /*
292
- * Please use these tests before access to pg_enc2name_tbl[]
293
- * or to other places...
294
- */
295
- #define PG_VALID_BE_ENCODING(_enc) \
296
- ((_enc) >= 0 && (_enc) <= PG_ENCODING_BE_LAST)
297
-
298
- #define PG_ENCODING_IS_CLIENT_ONLY(_enc) \
299
- ((_enc) > PG_ENCODING_BE_LAST && (_enc) < _PG_LAST_ENCODING_)
300
-
301
- #define PG_VALID_ENCODING(_enc) \
302
- ((_enc) >= 0 && (_enc) < _PG_LAST_ENCODING_)
303
-
304
- /* On FE are possible all encodings */
305
- #define PG_VALID_FE_ENCODING(_enc) PG_VALID_ENCODING(_enc)
306
-
307
- /*
308
- * When converting strings between different encodings, we assume that space
309
- * for converted result is 4-to-1 growth in the worst case. The rate for
310
- * currently supported encoding pairs are within 3 (SJIS JIS X0201 half width
311
- * kanna -> UTF8 is the worst case). So "4" should be enough for the moment.
312
- *
313
- * Note that this is not the same as the maximum character width in any
314
- * particular encoding.
315
- */
316
- #define MAX_CONVERSION_GROWTH 4
317
-
318
- /*
319
- * Maximum byte length of the string equivalent to any one Unicode code point,
320
- * in any backend encoding. The current value assumes that a 4-byte UTF-8
321
- * character might expand by MAX_CONVERSION_GROWTH, which is a huge
322
- * overestimate. But in current usage we don't allocate large multiples of
323
- * this, so there's little point in being stingy.
324
- */
325
- #define MAX_UNICODE_EQUIVALENT_STRING 16
326
-
327
- /*
328
- * Table for mapping an encoding number to official encoding name and
329
- * possibly other subsidiary data. Be careful to check encoding number
330
- * before accessing a table entry!
331
- *
332
- * if (PG_VALID_ENCODING(encoding))
333
- * pg_enc2name_tbl[ encoding ];
334
- */
335
- typedef struct pg_enc2name
336
- {
337
- const char *name;
338
- pg_enc encoding;
339
- #ifdef WIN32
340
- unsigned codepage; /* codepage for WIN32 */
341
- #endif
342
- } pg_enc2name;
343
-
344
- extern const pg_enc2name pg_enc2name_tbl[];
345
-
346
- /*
347
- * Encoding names for gettext
348
- */
349
- typedef struct pg_enc2gettext
350
- {
351
- pg_enc encoding;
352
- const char *name;
353
- } pg_enc2gettext;
354
-
355
- extern const pg_enc2gettext pg_enc2gettext_tbl[];
356
-
357
- /*
358
- * pg_wchar stuff
359
- */
360
- typedef int (*mb2wchar_with_len_converter) (const unsigned char *from,
361
- pg_wchar *to,
362
- int len);
363
-
364
- typedef int (*wchar2mb_with_len_converter) (const pg_wchar *from,
365
- unsigned char *to,
366
- int len);
367
-
368
- typedef int (*mblen_converter) (const unsigned char *mbstr);
369
-
370
- typedef int (*mbdisplaylen_converter) (const unsigned char *mbstr);
371
-
372
- typedef bool (*mbcharacter_incrementer) (unsigned char *mbstr, int len);
373
-
374
- typedef int (*mbverifier) (const unsigned char *mbstr, int len);
375
-
376
- typedef struct
377
- {
378
- mb2wchar_with_len_converter mb2wchar_with_len; /* convert a multibyte
379
- * string to a wchar */
380
- wchar2mb_with_len_converter wchar2mb_with_len; /* convert a wchar string
381
- * to a multibyte */
382
- mblen_converter mblen; /* get byte length of a char */
383
- mbdisplaylen_converter dsplen; /* get display width of a char */
384
- mbverifier mbverify; /* verify multibyte sequence */
385
- int maxmblen; /* max bytes for a char in this encoding */
386
- } pg_wchar_tbl;
387
-
388
- extern const pg_wchar_tbl pg_wchar_table[];
389
-
390
- /*
391
- * Data structures for conversions between UTF-8 and other encodings
392
- * (UtfToLocal() and LocalToUtf()). In these data structures, characters of
393
- * either encoding are represented by uint32 words; hence we can only support
394
- * characters up to 4 bytes long. For example, the byte sequence 0xC2 0x89
395
- * would be represented by 0x0000C289, and 0xE8 0xA2 0xB4 by 0x00E8A2B4.
396
- *
397
- * There are three possible ways a character can be mapped:
398
- *
399
- * 1. Using a radix tree, from source to destination code.
400
- * 2. Using a sorted array of source -> destination code pairs. This
401
- * method is used for "combining" characters. There are so few of
402
- * them that building a radix tree would be wasteful.
403
- * 3. Using a conversion function.
404
- */
405
-
406
- /*
407
- * Radix tree for character conversion.
408
- *
409
- * Logically, this is actually four different radix trees, for 1-byte,
410
- * 2-byte, 3-byte and 4-byte inputs. The 1-byte tree is a simple lookup
411
- * table from source to target code. The 2-byte tree consists of two levels:
412
- * one lookup table for the first byte, where the value in the lookup table
413
- * points to a lookup table for the second byte. And so on.
414
- *
415
- * Physically, all the trees are stored in one big array, in 'chars16' or
416
- * 'chars32', depending on the maximum value that needs to be represented. For
417
- * each level in each tree, we also store lower and upper bound of allowed
418
- * values - values outside those bounds are considered invalid, and are left
419
- * out of the tables.
420
- *
421
- * In the intermediate levels of the trees, the values stored are offsets
422
- * into the chars[16|32] array.
423
- *
424
- * In the beginning of the chars[16|32] array, there is always a number of
425
- * zeros, so that you safely follow an index from an intermediate table
426
- * without explicitly checking for a zero. Following a zero any number of
427
- * times will always bring you to the dummy, all-zeros table in the
428
- * beginning. This helps to shave some cycles when looking up values.
429
- */
430
- typedef struct
431
- {
432
- /*
433
- * Array containing all the values. Only one of chars16 or chars32 is
434
- * used, depending on how wide the values we need to represent are.
435
- */
436
- const uint16 *chars16;
437
- const uint32 *chars32;
438
-
439
- /* Radix tree for 1-byte inputs */
440
- uint32 b1root; /* offset of table in the chars[16|32] array */
441
- uint8 b1_lower; /* min allowed value for a single byte input */
442
- uint8 b1_upper; /* max allowed value for a single byte input */
443
-
444
- /* Radix tree for 2-byte inputs */
445
- uint32 b2root; /* offset of 1st byte's table */
446
- uint8 b2_1_lower; /* min/max allowed value for 1st input byte */
447
- uint8 b2_1_upper;
448
- uint8 b2_2_lower; /* min/max allowed value for 2nd input byte */
449
- uint8 b2_2_upper;
450
-
451
- /* Radix tree for 3-byte inputs */
452
- uint32 b3root; /* offset of 1st byte's table */
453
- uint8 b3_1_lower; /* min/max allowed value for 1st input byte */
454
- uint8 b3_1_upper;
455
- uint8 b3_2_lower; /* min/max allowed value for 2nd input byte */
456
- uint8 b3_2_upper;
457
- uint8 b3_3_lower; /* min/max allowed value for 3rd input byte */
458
- uint8 b3_3_upper;
459
-
460
- /* Radix tree for 4-byte inputs */
461
- uint32 b4root; /* offset of 1st byte's table */
462
- uint8 b4_1_lower; /* min/max allowed value for 1st input byte */
463
- uint8 b4_1_upper;
464
- uint8 b4_2_lower; /* min/max allowed value for 2nd input byte */
465
- uint8 b4_2_upper;
466
- uint8 b4_3_lower; /* min/max allowed value for 3rd input byte */
467
- uint8 b4_3_upper;
468
- uint8 b4_4_lower; /* min/max allowed value for 4th input byte */
469
- uint8 b4_4_upper;
470
-
471
- } pg_mb_radix_tree;
472
-
473
- /*
474
- * UTF-8 to local code conversion map (for combined characters)
475
- */
476
- typedef struct
477
- {
478
- uint32 utf1; /* UTF-8 code 1 */
479
- uint32 utf2; /* UTF-8 code 2 */
480
- uint32 code; /* local code */
481
- } pg_utf_to_local_combined;
482
-
483
- /*
484
- * local code to UTF-8 conversion map (for combined characters)
485
- */
486
- typedef struct
487
- {
488
- uint32 code; /* local code */
489
- uint32 utf1; /* UTF-8 code 1 */
490
- uint32 utf2; /* UTF-8 code 2 */
491
- } pg_local_to_utf_combined;
492
-
493
- /*
494
- * callback function for algorithmic encoding conversions (in either direction)
495
- *
496
- * if function returns zero, it does not know how to convert the code
497
- */
498
- typedef uint32 (*utf_local_conversion_func) (uint32 code);
499
-
500
- /*
501
- * Support macro for encoding conversion functions to validate their
502
- * arguments. (This could be made more compact if we included fmgr.h
503
- * here, but we don't want to do that because this header file is also
504
- * used by frontends.)
505
- */
506
- #define CHECK_ENCODING_CONVERSION_ARGS(srcencoding,destencoding) \
507
- check_encoding_conversion_args(PG_GETARG_INT32(0), \
508
- PG_GETARG_INT32(1), \
509
- PG_GETARG_INT32(4), \
510
- (srcencoding), \
511
- (destencoding))
512
-
513
-
514
- /*
515
- * Some handy functions for Unicode-specific tests.
516
- */
517
- static inline bool
518
- is_valid_unicode_codepoint(pg_wchar c)
519
- {
520
- return (c > 0 && c <= 0x10FFFF);
521
- }
522
-
523
- static inline bool
524
- is_utf16_surrogate_first(pg_wchar c)
525
- {
526
- return (c >= 0xD800 && c <= 0xDBFF);
527
- }
528
-
529
- static inline bool
530
- is_utf16_surrogate_second(pg_wchar c)
531
- {
532
- return (c >= 0xDC00 && c <= 0xDFFF);
533
- }
534
-
535
- static inline pg_wchar
536
- surrogate_pair_to_codepoint(pg_wchar first, pg_wchar second)
537
- {
538
- return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
539
- }
540
-
541
-
542
- /*
543
- * These functions are considered part of libpq's exported API and
544
- * are also declared in libpq-fe.h.
545
- */
546
- extern int pg_char_to_encoding(const char *name);
547
- extern const char *pg_encoding_to_char(int encoding);
548
- extern int pg_valid_server_encoding_id(int encoding);
549
-
550
- /*
551
- * These functions are available to frontend code that links with libpgcommon
552
- * (in addition to the ones just above). The constant tables declared
553
- * earlier in this file are also available from libpgcommon.
554
- */
555
- extern int pg_encoding_mblen(int encoding, const char *mbstr);
556
- extern int pg_encoding_mblen_bounded(int encoding, const char *mbstr);
557
- extern int pg_encoding_dsplen(int encoding, const char *mbstr);
558
- extern int pg_encoding_verifymb(int encoding, const char *mbstr, int len);
559
- extern int pg_encoding_max_length(int encoding);
560
- extern int pg_valid_client_encoding(const char *name);
561
- extern int pg_valid_server_encoding(const char *name);
562
- extern bool is_encoding_supported_by_icu(int encoding);
563
- extern const char *get_encoding_name_for_icu(int encoding);
564
-
565
- extern unsigned char *unicode_to_utf8(pg_wchar c, unsigned char *utf8string);
566
- extern pg_wchar utf8_to_unicode(const unsigned char *c);
567
- extern bool pg_utf8_islegal(const unsigned char *source, int length);
568
- extern int pg_utf_mblen(const unsigned char *s);
569
- extern int pg_mule_mblen(const unsigned char *s);
570
-
571
- /*
572
- * The remaining functions are backend-only.
573
- */
574
- extern int pg_mb2wchar(const char *from, pg_wchar *to);
575
- extern int pg_mb2wchar_with_len(const char *from, pg_wchar *to, int len);
576
- extern int pg_encoding_mb2wchar_with_len(int encoding,
577
- const char *from, pg_wchar *to, int len);
578
- extern int pg_wchar2mb(const pg_wchar *from, char *to);
579
- extern int pg_wchar2mb_with_len(const pg_wchar *from, char *to, int len);
580
- extern int pg_encoding_wchar2mb_with_len(int encoding,
581
- const pg_wchar *from, char *to, int len);
582
- extern int pg_char_and_wchar_strcmp(const char *s1, const pg_wchar *s2);
583
- extern int pg_wchar_strncmp(const pg_wchar *s1, const pg_wchar *s2, size_t n);
584
- extern int pg_char_and_wchar_strncmp(const char *s1, const pg_wchar *s2, size_t n);
585
- extern size_t pg_wchar_strlen(const pg_wchar *wstr);
586
- extern int pg_mblen(const char *mbstr);
587
- extern int pg_dsplen(const char *mbstr);
588
- extern int pg_mbstrlen(const char *mbstr);
589
- extern int pg_mbstrlen_with_len(const char *mbstr, int len);
590
- extern int pg_mbcliplen(const char *mbstr, int len, int limit);
591
- extern int pg_encoding_mbcliplen(int encoding, const char *mbstr,
592
- int len, int limit);
593
- extern int pg_mbcharcliplen(const char *mbstr, int len, int limit);
594
- extern int pg_database_encoding_max_length(void);
595
- extern mbcharacter_incrementer pg_database_encoding_character_incrementer(void);
596
-
597
- extern int PrepareClientEncoding(int encoding);
598
- extern int SetClientEncoding(int encoding);
599
- extern void InitializeClientEncoding(void);
600
- extern int pg_get_client_encoding(void);
601
- extern const char *pg_get_client_encoding_name(void);
602
-
603
- extern void SetDatabaseEncoding(int encoding);
604
- extern int GetDatabaseEncoding(void);
605
- extern const char *GetDatabaseEncodingName(void);
606
- extern void SetMessageEncoding(int encoding);
607
- extern int GetMessageEncoding(void);
608
-
609
- #ifdef ENABLE_NLS
610
- extern int pg_bind_textdomain_codeset(const char *domainname);
611
- #endif
612
-
613
- extern unsigned char *pg_do_encoding_conversion(unsigned char *src, int len,
614
- int src_encoding,
615
- int dest_encoding);
616
-
617
- extern char *pg_client_to_server(const char *s, int len);
618
- extern char *pg_server_to_client(const char *s, int len);
619
- extern char *pg_any_to_server(const char *s, int len, int encoding);
620
- extern char *pg_server_to_any(const char *s, int len, int encoding);
621
-
622
- extern void pg_unicode_to_server(pg_wchar c, unsigned char *s);
623
-
624
- extern unsigned short BIG5toCNS(unsigned short big5, unsigned char *lc);
625
- extern unsigned short CNStoBIG5(unsigned short cns, unsigned char lc);
626
-
627
- extern void UtfToLocal(const unsigned char *utf, int len,
628
- unsigned char *iso,
629
- const pg_mb_radix_tree *map,
630
- const pg_utf_to_local_combined *cmap, int cmapsize,
631
- utf_local_conversion_func conv_func,
632
- int encoding);
633
- extern void LocalToUtf(const unsigned char *iso, int len,
634
- unsigned char *utf,
635
- const pg_mb_radix_tree *map,
636
- const pg_local_to_utf_combined *cmap, int cmapsize,
637
- utf_local_conversion_func conv_func,
638
- int encoding);
639
-
640
- extern bool pg_verifymbstr(const char *mbstr, int len, bool noError);
641
- extern bool pg_verify_mbstr(int encoding, const char *mbstr, int len,
642
- bool noError);
643
- extern int pg_verify_mbstr_len(int encoding, const char *mbstr, int len,
644
- bool noError);
645
-
646
- extern void check_encoding_conversion_args(int src_encoding,
647
- int dest_encoding,
648
- int len,
649
- int expected_src_encoding,
650
- int expected_dest_encoding);
651
-
652
- extern void report_invalid_encoding(int encoding, const char *mbstr, int len) pg_attribute_noreturn();
653
- extern void report_untranslatable_char(int src_encoding, int dest_encoding,
654
- const char *mbstr, int len) pg_attribute_noreturn();
655
-
656
- extern void local2local(const unsigned char *l, unsigned char *p, int len,
657
- int src_encoding, int dest_encoding, const unsigned char *tab);
658
- extern void latin2mic(const unsigned char *l, unsigned char *p, int len,
659
- int lc, int encoding);
660
- extern void mic2latin(const unsigned char *mic, unsigned char *p, int len,
661
- int lc, int encoding);
662
- extern void latin2mic_with_table(const unsigned char *l, unsigned char *p,
663
- int len, int lc, int encoding,
664
- const unsigned char *tab);
665
- extern void mic2latin_with_table(const unsigned char *mic, unsigned char *p,
666
- int len, int lc, int encoding,
667
- const unsigned char *tab);
668
-
669
- #ifdef WIN32
670
- extern WCHAR *pgwin32_message_to_UTF16(const char *str, int len, int *utf16len);
671
- #endif
672
-
673
- #endif /* PG_WCHAR_H */
@@ -1,24 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * stringinfo_mb.h
4
- * multibyte support for StringInfo
5
- *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
- * Portions Copyright (c) 1994, Regents of the University of California
8
- *
9
- * src/include/mb/stringinfo_mb.h
10
- *-------------------------------------------------------------------------
11
- */
12
- #ifndef STRINGINFO_MB_H
13
- #define STRINGINFO_MB_H
14
-
15
-
16
- #include "lib/stringinfo.h"
17
-
18
- /*
19
- * Multibyte-aware StringInfo support function.
20
- */
21
- extern void appendStringInfoStringQuoted(StringInfo str,
22
- const char *s, int maxlen);
23
-
24
- #endif /* STRINGINFO_MB_H */