gitlab-pg_query 1.3.1 → 2.0.4

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 (480) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +217 -99
  3. data/README.md +92 -69
  4. data/Rakefile +85 -5
  5. data/ext/pg_query/extconf.rb +3 -40
  6. data/ext/pg_query/guc-file.c +0 -0
  7. data/ext/pg_query/include/access/amapi.h +246 -0
  8. data/ext/pg_query/include/access/attmap.h +52 -0
  9. data/ext/pg_query/include/access/attnum.h +64 -0
  10. data/ext/pg_query/include/access/clog.h +61 -0
  11. data/ext/pg_query/include/access/commit_ts.h +77 -0
  12. data/ext/pg_query/include/access/detoast.h +92 -0
  13. data/ext/pg_query/include/access/genam.h +228 -0
  14. data/ext/pg_query/include/access/gin.h +78 -0
  15. data/ext/pg_query/include/access/htup.h +89 -0
  16. data/ext/pg_query/include/access/htup_details.h +819 -0
  17. data/ext/pg_query/include/access/itup.h +161 -0
  18. data/ext/pg_query/include/access/parallel.h +82 -0
  19. data/ext/pg_query/include/access/printtup.h +35 -0
  20. data/ext/pg_query/include/access/relation.h +28 -0
  21. data/ext/pg_query/include/access/relscan.h +176 -0
  22. data/ext/pg_query/include/access/rmgr.h +35 -0
  23. data/ext/pg_query/include/access/rmgrlist.h +49 -0
  24. data/ext/pg_query/include/access/sdir.h +58 -0
  25. data/ext/pg_query/include/access/skey.h +151 -0
  26. data/ext/pg_query/include/access/stratnum.h +83 -0
  27. data/ext/pg_query/include/access/sysattr.h +29 -0
  28. data/ext/pg_query/include/access/table.h +27 -0
  29. data/ext/pg_query/include/access/tableam.h +1825 -0
  30. data/ext/pg_query/include/access/transam.h +265 -0
  31. data/ext/pg_query/include/access/tupconvert.h +51 -0
  32. data/ext/pg_query/include/access/tupdesc.h +154 -0
  33. data/ext/pg_query/include/access/tupmacs.h +247 -0
  34. data/ext/pg_query/include/access/twophase.h +61 -0
  35. data/ext/pg_query/include/access/xact.h +463 -0
  36. data/ext/pg_query/include/access/xlog.h +398 -0
  37. data/ext/pg_query/include/access/xlog_internal.h +330 -0
  38. data/ext/pg_query/include/access/xlogdefs.h +109 -0
  39. data/ext/pg_query/include/access/xloginsert.h +64 -0
  40. data/ext/pg_query/include/access/xlogreader.h +327 -0
  41. data/ext/pg_query/include/access/xlogrecord.h +227 -0
  42. data/ext/pg_query/include/bootstrap/bootstrap.h +62 -0
  43. data/ext/pg_query/include/c.h +1322 -0
  44. data/ext/pg_query/include/catalog/catalog.h +42 -0
  45. data/ext/pg_query/include/catalog/catversion.h +58 -0
  46. data/ext/pg_query/include/catalog/dependency.h +275 -0
  47. data/ext/pg_query/include/catalog/genbki.h +64 -0
  48. data/ext/pg_query/include/catalog/index.h +199 -0
  49. data/ext/pg_query/include/catalog/indexing.h +366 -0
  50. data/ext/pg_query/include/catalog/namespace.h +188 -0
  51. data/ext/pg_query/include/catalog/objectaccess.h +197 -0
  52. data/ext/pg_query/include/catalog/objectaddress.h +84 -0
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +176 -0
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +77 -0
  55. data/ext/pg_query/include/catalog/pg_am.h +60 -0
  56. data/ext/pg_query/include/catalog/pg_am_d.h +45 -0
  57. data/ext/pg_query/include/catalog/pg_attribute.h +204 -0
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +59 -0
  59. data/ext/pg_query/include/catalog/pg_authid.h +58 -0
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +49 -0
  61. data/ext/pg_query/include/catalog/pg_class.h +200 -0
  62. data/ext/pg_query/include/catalog/pg_class_d.h +103 -0
  63. data/ext/pg_query/include/catalog/pg_collation.h +73 -0
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +45 -0
  65. data/ext/pg_query/include/catalog/pg_constraint.h +247 -0
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +67 -0
  67. data/ext/pg_query/include/catalog/pg_control.h +250 -0
  68. data/ext/pg_query/include/catalog/pg_conversion.h +72 -0
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +35 -0
  70. data/ext/pg_query/include/catalog/pg_depend.h +73 -0
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +34 -0
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +51 -0
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +34 -0
  74. data/ext/pg_query/include/catalog/pg_index.h +80 -0
  75. data/ext/pg_query/include/catalog/pg_index_d.h +56 -0
  76. data/ext/pg_query/include/catalog/pg_language.h +67 -0
  77. data/ext/pg_query/include/catalog/pg_language_d.h +39 -0
  78. data/ext/pg_query/include/catalog/pg_namespace.h +59 -0
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +34 -0
  80. data/ext/pg_query/include/catalog/pg_opclass.h +85 -0
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +49 -0
  82. data/ext/pg_query/include/catalog/pg_operator.h +102 -0
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +106 -0
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +60 -0
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +47 -0
  86. data/ext/pg_query/include/catalog/pg_partitioned_table.h +63 -0
  87. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +35 -0
  88. data/ext/pg_query/include/catalog/pg_proc.h +211 -0
  89. data/ext/pg_query/include/catalog/pg_proc_d.h +99 -0
  90. data/ext/pg_query/include/catalog/pg_publication.h +115 -0
  91. data/ext/pg_query/include/catalog/pg_publication_d.h +36 -0
  92. data/ext/pg_query/include/catalog/pg_replication_origin.h +57 -0
  93. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +29 -0
  94. data/ext/pg_query/include/catalog/pg_statistic.h +275 -0
  95. data/ext/pg_query/include/catalog/pg_statistic_d.h +194 -0
  96. data/ext/pg_query/include/catalog/pg_statistic_ext.h +74 -0
  97. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +40 -0
  98. data/ext/pg_query/include/catalog/pg_transform.h +45 -0
  99. data/ext/pg_query/include/catalog/pg_transform_d.h +32 -0
  100. data/ext/pg_query/include/catalog/pg_trigger.h +137 -0
  101. data/ext/pg_query/include/catalog/pg_trigger_d.h +106 -0
  102. data/ext/pg_query/include/catalog/pg_ts_config.h +50 -0
  103. data/ext/pg_query/include/catalog/pg_ts_config_d.h +32 -0
  104. data/ext/pg_query/include/catalog/pg_ts_dict.h +54 -0
  105. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +33 -0
  106. data/ext/pg_query/include/catalog/pg_ts_parser.h +57 -0
  107. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +35 -0
  108. data/ext/pg_query/include/catalog/pg_ts_template.h +48 -0
  109. data/ext/pg_query/include/catalog/pg_ts_template_d.h +32 -0
  110. data/ext/pg_query/include/catalog/pg_type.h +372 -0
  111. data/ext/pg_query/include/catalog/pg_type_d.h +285 -0
  112. data/ext/pg_query/include/catalog/storage.h +48 -0
  113. data/ext/pg_query/include/commands/async.h +54 -0
  114. data/ext/pg_query/include/commands/dbcommands.h +35 -0
  115. data/ext/pg_query/include/commands/defrem.h +173 -0
  116. data/ext/pg_query/include/commands/event_trigger.h +88 -0
  117. data/ext/pg_query/include/commands/explain.h +127 -0
  118. data/ext/pg_query/include/commands/prepare.h +61 -0
  119. data/ext/pg_query/include/commands/tablespace.h +67 -0
  120. data/ext/pg_query/include/commands/trigger.h +277 -0
  121. data/ext/pg_query/include/commands/user.h +37 -0
  122. data/ext/pg_query/include/commands/vacuum.h +293 -0
  123. data/ext/pg_query/include/commands/variable.h +38 -0
  124. data/ext/pg_query/include/common/file_perm.h +56 -0
  125. data/ext/pg_query/include/common/hashfn.h +104 -0
  126. data/ext/pg_query/include/common/ip.h +37 -0
  127. data/ext/pg_query/include/common/keywords.h +33 -0
  128. data/ext/pg_query/include/common/kwlookup.h +44 -0
  129. data/ext/pg_query/include/common/relpath.h +90 -0
  130. data/ext/pg_query/include/common/string.h +19 -0
  131. data/ext/pg_query/include/common/unicode_combining_table.h +196 -0
  132. data/ext/pg_query/include/datatype/timestamp.h +197 -0
  133. data/ext/pg_query/include/executor/execdesc.h +70 -0
  134. data/ext/pg_query/include/executor/executor.h +614 -0
  135. data/ext/pg_query/include/executor/functions.h +41 -0
  136. data/ext/pg_query/include/executor/instrument.h +101 -0
  137. data/ext/pg_query/include/executor/spi.h +175 -0
  138. data/ext/pg_query/include/executor/tablefunc.h +67 -0
  139. data/ext/pg_query/include/executor/tuptable.h +487 -0
  140. data/ext/pg_query/include/fmgr.h +775 -0
  141. data/ext/pg_query/include/funcapi.h +348 -0
  142. data/ext/pg_query/include/getaddrinfo.h +162 -0
  143. data/ext/pg_query/include/jit/jit.h +105 -0
  144. data/ext/pg_query/include/kwlist_d.h +1072 -0
  145. data/ext/pg_query/include/lib/ilist.h +727 -0
  146. data/ext/pg_query/include/lib/pairingheap.h +102 -0
  147. data/ext/pg_query/include/lib/simplehash.h +1059 -0
  148. data/ext/pg_query/include/lib/stringinfo.h +161 -0
  149. data/ext/pg_query/include/libpq/auth.h +29 -0
  150. data/ext/pg_query/include/libpq/crypt.h +46 -0
  151. data/ext/pg_query/include/libpq/hba.h +140 -0
  152. data/ext/pg_query/include/libpq/libpq-be.h +326 -0
  153. data/ext/pg_query/include/libpq/libpq.h +133 -0
  154. data/ext/pg_query/include/libpq/pqcomm.h +208 -0
  155. data/ext/pg_query/include/libpq/pqformat.h +210 -0
  156. data/ext/pg_query/include/libpq/pqsignal.h +42 -0
  157. data/ext/pg_query/include/mb/pg_wchar.h +672 -0
  158. data/ext/pg_query/include/mb/stringinfo_mb.h +24 -0
  159. data/ext/pg_query/include/miscadmin.h +476 -0
  160. data/ext/pg_query/include/nodes/bitmapset.h +122 -0
  161. data/ext/pg_query/include/nodes/execnodes.h +2520 -0
  162. data/ext/pg_query/include/nodes/extensible.h +160 -0
  163. data/ext/pg_query/include/nodes/lockoptions.h +61 -0
  164. data/ext/pg_query/include/nodes/makefuncs.h +108 -0
  165. data/ext/pg_query/include/nodes/memnodes.h +108 -0
  166. data/ext/pg_query/include/nodes/nodeFuncs.h +162 -0
  167. data/ext/pg_query/include/nodes/nodes.h +842 -0
  168. data/ext/pg_query/include/nodes/params.h +170 -0
  169. data/ext/pg_query/include/nodes/parsenodes.h +3579 -0
  170. data/ext/pg_query/include/nodes/pathnodes.h +2556 -0
  171. data/ext/pg_query/include/nodes/pg_list.h +605 -0
  172. data/ext/pg_query/include/nodes/plannodes.h +1251 -0
  173. data/ext/pg_query/include/nodes/primnodes.h +1541 -0
  174. data/ext/pg_query/include/nodes/print.h +34 -0
  175. data/ext/pg_query/include/nodes/tidbitmap.h +75 -0
  176. data/ext/pg_query/include/nodes/value.h +61 -0
  177. data/ext/pg_query/include/optimizer/cost.h +206 -0
  178. data/ext/pg_query/include/optimizer/geqo.h +88 -0
  179. data/ext/pg_query/include/optimizer/geqo_gene.h +45 -0
  180. data/ext/pg_query/include/optimizer/optimizer.h +199 -0
  181. data/ext/pg_query/include/optimizer/paths.h +249 -0
  182. data/ext/pg_query/include/optimizer/planmain.h +119 -0
  183. data/ext/pg_query/include/parser/analyze.h +49 -0
  184. data/ext/pg_query/include/parser/gram.h +1067 -0
  185. data/ext/pg_query/include/parser/gramparse.h +75 -0
  186. data/ext/pg_query/include/parser/kwlist.h +477 -0
  187. data/ext/pg_query/include/parser/parse_agg.h +68 -0
  188. data/ext/pg_query/include/parser/parse_clause.h +54 -0
  189. data/ext/pg_query/include/parser/parse_coerce.h +97 -0
  190. data/ext/pg_query/include/parser/parse_collate.h +27 -0
  191. data/ext/pg_query/include/parser/parse_expr.h +26 -0
  192. data/ext/pg_query/include/parser/parse_func.h +73 -0
  193. data/ext/pg_query/include/parser/parse_node.h +327 -0
  194. data/ext/pg_query/include/parser/parse_oper.h +67 -0
  195. data/ext/pg_query/include/parser/parse_relation.h +123 -0
  196. data/ext/pg_query/include/parser/parse_target.h +46 -0
  197. data/ext/pg_query/include/parser/parse_type.h +60 -0
  198. data/ext/pg_query/include/parser/parser.h +41 -0
  199. data/ext/pg_query/include/parser/parsetree.h +61 -0
  200. data/ext/pg_query/include/parser/scanner.h +152 -0
  201. data/ext/pg_query/include/parser/scansup.h +30 -0
  202. data/ext/pg_query/include/partitioning/partdefs.h +26 -0
  203. data/ext/pg_query/include/pg_config.h +989 -0
  204. data/ext/pg_query/include/pg_config_ext.h +8 -0
  205. data/ext/pg_query/include/pg_config_manual.h +350 -0
  206. data/ext/pg_query/include/pg_config_os.h +8 -0
  207. data/ext/pg_query/include/pg_getopt.h +56 -0
  208. data/ext/pg_query/include/pg_query.h +121 -0
  209. data/ext/pg_query/include/pg_query_enum_defs.c +2454 -0
  210. data/ext/pg_query/include/pg_query_fingerprint_conds.c +875 -0
  211. data/ext/pg_query/include/pg_query_fingerprint_defs.c +12413 -0
  212. data/ext/pg_query/include/pg_query_json_helper.c +61 -0
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +686 -0
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +2437 -0
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +222 -0
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +2878 -0
  217. data/ext/pg_query/include/pg_trace.h +17 -0
  218. data/ext/pg_query/include/pgstat.h +1487 -0
  219. data/ext/pg_query/include/pgtime.h +84 -0
  220. data/ext/pg_query/include/pl_gram.h +385 -0
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +52 -0
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +114 -0
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +112 -0
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +246 -0
  225. data/ext/pg_query/include/plerrcodes.h +990 -0
  226. data/ext/pg_query/include/plpgsql.h +1347 -0
  227. data/ext/pg_query/include/port.h +524 -0
  228. data/ext/pg_query/include/port/atomics.h +524 -0
  229. data/ext/pg_query/include/port/atomics/arch-arm.h +26 -0
  230. data/ext/pg_query/include/port/atomics/arch-ppc.h +254 -0
  231. data/ext/pg_query/include/port/atomics/arch-x86.h +252 -0
  232. data/ext/pg_query/include/port/atomics/fallback.h +170 -0
  233. data/ext/pg_query/include/port/atomics/generic-gcc.h +286 -0
  234. data/ext/pg_query/include/port/atomics/generic.h +401 -0
  235. data/ext/pg_query/include/port/pg_bitutils.h +226 -0
  236. data/ext/pg_query/include/port/pg_bswap.h +161 -0
  237. data/ext/pg_query/include/port/pg_crc32c.h +101 -0
  238. data/ext/pg_query/include/portability/instr_time.h +256 -0
  239. data/ext/pg_query/include/postgres.h +764 -0
  240. data/ext/pg_query/include/postgres_ext.h +74 -0
  241. data/ext/pg_query/include/postmaster/autovacuum.h +83 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +161 -0
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +64 -0
  244. data/ext/pg_query/include/postmaster/bgwriter.h +45 -0
  245. data/ext/pg_query/include/postmaster/fork_process.h +17 -0
  246. data/ext/pg_query/include/postmaster/interrupt.h +32 -0
  247. data/ext/pg_query/include/postmaster/pgarch.h +39 -0
  248. data/ext/pg_query/include/postmaster/postmaster.h +77 -0
  249. data/ext/pg_query/include/postmaster/syslogger.h +98 -0
  250. data/ext/pg_query/include/postmaster/walwriter.h +21 -0
  251. data/ext/pg_query/include/protobuf-c.h +1106 -0
  252. data/ext/pg_query/include/protobuf-c/protobuf-c.h +1106 -0
  253. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +10846 -0
  254. data/ext/pg_query/include/protobuf/pg_query.pb.h +124718 -0
  255. data/ext/pg_query/include/regex/regex.h +184 -0
  256. data/ext/pg_query/include/replication/logicallauncher.h +31 -0
  257. data/ext/pg_query/include/replication/logicalproto.h +110 -0
  258. data/ext/pg_query/include/replication/logicalworker.h +19 -0
  259. data/ext/pg_query/include/replication/origin.h +73 -0
  260. data/ext/pg_query/include/replication/reorderbuffer.h +467 -0
  261. data/ext/pg_query/include/replication/slot.h +219 -0
  262. data/ext/pg_query/include/replication/syncrep.h +115 -0
  263. data/ext/pg_query/include/replication/walreceiver.h +340 -0
  264. data/ext/pg_query/include/replication/walsender.h +74 -0
  265. data/ext/pg_query/include/rewrite/prs2lock.h +46 -0
  266. data/ext/pg_query/include/rewrite/rewriteHandler.h +40 -0
  267. data/ext/pg_query/include/rewrite/rewriteManip.h +87 -0
  268. data/ext/pg_query/include/rewrite/rewriteSupport.h +26 -0
  269. data/ext/pg_query/include/storage/backendid.h +37 -0
  270. data/ext/pg_query/include/storage/block.h +121 -0
  271. data/ext/pg_query/include/storage/buf.h +46 -0
  272. data/ext/pg_query/include/storage/bufmgr.h +292 -0
  273. data/ext/pg_query/include/storage/bufpage.h +459 -0
  274. data/ext/pg_query/include/storage/condition_variable.h +62 -0
  275. data/ext/pg_query/include/storage/dsm.h +61 -0
  276. data/ext/pg_query/include/storage/dsm_impl.h +75 -0
  277. data/ext/pg_query/include/storage/fd.h +168 -0
  278. data/ext/pg_query/include/storage/ipc.h +81 -0
  279. data/ext/pg_query/include/storage/item.h +19 -0
  280. data/ext/pg_query/include/storage/itemid.h +184 -0
  281. data/ext/pg_query/include/storage/itemptr.h +206 -0
  282. data/ext/pg_query/include/storage/large_object.h +100 -0
  283. data/ext/pg_query/include/storage/latch.h +190 -0
  284. data/ext/pg_query/include/storage/lmgr.h +114 -0
  285. data/ext/pg_query/include/storage/lock.h +612 -0
  286. data/ext/pg_query/include/storage/lockdefs.h +59 -0
  287. data/ext/pg_query/include/storage/lwlock.h +232 -0
  288. data/ext/pg_query/include/storage/lwlocknames.h +51 -0
  289. data/ext/pg_query/include/storage/off.h +57 -0
  290. data/ext/pg_query/include/storage/pg_sema.h +61 -0
  291. data/ext/pg_query/include/storage/pg_shmem.h +90 -0
  292. data/ext/pg_query/include/storage/pmsignal.h +94 -0
  293. data/ext/pg_query/include/storage/predicate.h +87 -0
  294. data/ext/pg_query/include/storage/proc.h +333 -0
  295. data/ext/pg_query/include/storage/proclist_types.h +51 -0
  296. data/ext/pg_query/include/storage/procsignal.h +75 -0
  297. data/ext/pg_query/include/storage/relfilenode.h +99 -0
  298. data/ext/pg_query/include/storage/s_lock.h +1047 -0
  299. data/ext/pg_query/include/storage/sharedfileset.h +45 -0
  300. data/ext/pg_query/include/storage/shm_mq.h +85 -0
  301. data/ext/pg_query/include/storage/shm_toc.h +58 -0
  302. data/ext/pg_query/include/storage/shmem.h +81 -0
  303. data/ext/pg_query/include/storage/sinval.h +153 -0
  304. data/ext/pg_query/include/storage/sinvaladt.h +43 -0
  305. data/ext/pg_query/include/storage/smgr.h +109 -0
  306. data/ext/pg_query/include/storage/spin.h +77 -0
  307. data/ext/pg_query/include/storage/standby.h +91 -0
  308. data/ext/pg_query/include/storage/standbydefs.h +74 -0
  309. data/ext/pg_query/include/storage/sync.h +62 -0
  310. data/ext/pg_query/include/tcop/cmdtag.h +58 -0
  311. data/ext/pg_query/include/tcop/cmdtaglist.h +217 -0
  312. data/ext/pg_query/include/tcop/deparse_utility.h +108 -0
  313. data/ext/pg_query/include/tcop/dest.h +149 -0
  314. data/ext/pg_query/include/tcop/fastpath.h +21 -0
  315. data/ext/pg_query/include/tcop/pquery.h +45 -0
  316. data/ext/pg_query/include/tcop/tcopprot.h +89 -0
  317. data/ext/pg_query/include/tcop/utility.h +108 -0
  318. data/ext/pg_query/include/tsearch/ts_cache.h +98 -0
  319. data/ext/pg_query/include/utils/acl.h +312 -0
  320. data/ext/pg_query/include/utils/aclchk_internal.h +45 -0
  321. data/ext/pg_query/include/utils/array.h +458 -0
  322. data/ext/pg_query/include/utils/builtins.h +127 -0
  323. data/ext/pg_query/include/utils/bytea.h +27 -0
  324. data/ext/pg_query/include/utils/catcache.h +231 -0
  325. data/ext/pg_query/include/utils/date.h +90 -0
  326. data/ext/pg_query/include/utils/datetime.h +343 -0
  327. data/ext/pg_query/include/utils/datum.h +68 -0
  328. data/ext/pg_query/include/utils/dsa.h +123 -0
  329. data/ext/pg_query/include/utils/dynahash.h +19 -0
  330. data/ext/pg_query/include/utils/elog.h +439 -0
  331. data/ext/pg_query/include/utils/errcodes.h +352 -0
  332. data/ext/pg_query/include/utils/expandeddatum.h +159 -0
  333. data/ext/pg_query/include/utils/expandedrecord.h +231 -0
  334. data/ext/pg_query/include/utils/float.h +356 -0
  335. data/ext/pg_query/include/utils/fmgroids.h +2657 -0
  336. data/ext/pg_query/include/utils/fmgrprotos.h +2646 -0
  337. data/ext/pg_query/include/utils/fmgrtab.h +48 -0
  338. data/ext/pg_query/include/utils/guc.h +443 -0
  339. data/ext/pg_query/include/utils/guc_tables.h +272 -0
  340. data/ext/pg_query/include/utils/hsearch.h +149 -0
  341. data/ext/pg_query/include/utils/inval.h +64 -0
  342. data/ext/pg_query/include/utils/lsyscache.h +197 -0
  343. data/ext/pg_query/include/utils/memdebug.h +82 -0
  344. data/ext/pg_query/include/utils/memutils.h +225 -0
  345. data/ext/pg_query/include/utils/numeric.h +76 -0
  346. data/ext/pg_query/include/utils/palloc.h +136 -0
  347. data/ext/pg_query/include/utils/partcache.h +102 -0
  348. data/ext/pg_query/include/utils/pg_locale.h +119 -0
  349. data/ext/pg_query/include/utils/pg_lsn.h +29 -0
  350. data/ext/pg_query/include/utils/pidfile.h +56 -0
  351. data/ext/pg_query/include/utils/plancache.h +235 -0
  352. data/ext/pg_query/include/utils/portal.h +241 -0
  353. data/ext/pg_query/include/utils/probes.h +114 -0
  354. data/ext/pg_query/include/utils/ps_status.h +25 -0
  355. data/ext/pg_query/include/utils/queryenvironment.h +74 -0
  356. data/ext/pg_query/include/utils/regproc.h +28 -0
  357. data/ext/pg_query/include/utils/rel.h +644 -0
  358. data/ext/pg_query/include/utils/relcache.h +151 -0
  359. data/ext/pg_query/include/utils/reltrigger.h +81 -0
  360. data/ext/pg_query/include/utils/resowner.h +86 -0
  361. data/ext/pg_query/include/utils/rls.h +50 -0
  362. data/ext/pg_query/include/utils/ruleutils.h +44 -0
  363. data/ext/pg_query/include/utils/sharedtuplestore.h +61 -0
  364. data/ext/pg_query/include/utils/snapmgr.h +158 -0
  365. data/ext/pg_query/include/utils/snapshot.h +206 -0
  366. data/ext/pg_query/include/utils/sortsupport.h +276 -0
  367. data/ext/pg_query/include/utils/syscache.h +219 -0
  368. data/ext/pg_query/include/utils/timeout.h +88 -0
  369. data/ext/pg_query/include/utils/timestamp.h +116 -0
  370. data/ext/pg_query/include/utils/tuplesort.h +277 -0
  371. data/ext/pg_query/include/utils/tuplestore.h +91 -0
  372. data/ext/pg_query/include/utils/typcache.h +202 -0
  373. data/ext/pg_query/include/utils/tzparser.h +39 -0
  374. data/ext/pg_query/include/utils/varlena.h +39 -0
  375. data/ext/pg_query/include/utils/xml.h +84 -0
  376. data/ext/pg_query/include/xxhash.h +5445 -0
  377. data/ext/pg_query/include/xxhash/xxhash.h +5445 -0
  378. data/ext/pg_query/pg_query.c +104 -0
  379. data/ext/pg_query/pg_query.pb-c.c +37628 -0
  380. data/ext/pg_query/pg_query_deparse.c +9959 -0
  381. data/ext/pg_query/pg_query_fingerprint.c +295 -0
  382. data/ext/pg_query/pg_query_fingerprint.h +8 -0
  383. data/ext/pg_query/pg_query_internal.h +24 -0
  384. data/ext/pg_query/pg_query_json_plpgsql.c +738 -0
  385. data/ext/pg_query/pg_query_json_plpgsql.h +9 -0
  386. data/ext/pg_query/pg_query_normalize.c +439 -0
  387. data/ext/pg_query/pg_query_outfuncs.h +10 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +297 -0
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +237 -0
  390. data/ext/pg_query/pg_query_parse.c +148 -0
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +460 -0
  392. data/ext/pg_query/pg_query_readfuncs.h +11 -0
  393. data/ext/pg_query/pg_query_readfuncs_protobuf.c +142 -0
  394. data/ext/pg_query/pg_query_ruby.c +108 -12
  395. data/ext/pg_query/pg_query_scan.c +173 -0
  396. data/ext/pg_query/pg_query_split.c +221 -0
  397. data/ext/pg_query/protobuf-c.c +3660 -0
  398. data/ext/pg_query/src_backend_catalog_namespace.c +1051 -0
  399. data/ext/pg_query/src_backend_catalog_pg_proc.c +142 -0
  400. data/ext/pg_query/src_backend_commands_define.c +117 -0
  401. data/ext/pg_query/src_backend_libpq_pqcomm.c +651 -0
  402. data/ext/pg_query/src_backend_nodes_bitmapset.c +513 -0
  403. data/ext/pg_query/src_backend_nodes_copyfuncs.c +6013 -0
  404. data/ext/pg_query/src_backend_nodes_equalfuncs.c +4003 -0
  405. data/ext/pg_query/src_backend_nodes_extensible.c +99 -0
  406. data/ext/pg_query/src_backend_nodes_list.c +922 -0
  407. data/ext/pg_query/src_backend_nodes_makefuncs.c +417 -0
  408. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +1363 -0
  409. data/ext/pg_query/src_backend_nodes_value.c +84 -0
  410. data/ext/pg_query/src_backend_parser_gram.c +47456 -0
  411. data/ext/pg_query/src_backend_parser_parse_expr.c +313 -0
  412. data/ext/pg_query/src_backend_parser_parser.c +497 -0
  413. data/ext/pg_query/src_backend_parser_scan.c +7091 -0
  414. data/ext/pg_query/src_backend_parser_scansup.c +160 -0
  415. data/ext/pg_query/src_backend_postmaster_postmaster.c +2230 -0
  416. data/ext/pg_query/src_backend_storage_ipc_ipc.c +192 -0
  417. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +370 -0
  418. data/ext/pg_query/src_backend_tcop_postgres.c +776 -0
  419. data/ext/pg_query/src_backend_utils_adt_datum.c +326 -0
  420. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +98 -0
  421. data/ext/pg_query/src_backend_utils_adt_format_type.c +136 -0
  422. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +1683 -0
  423. data/ext/pg_query/src_backend_utils_error_assert.c +74 -0
  424. data/ext/pg_query/src_backend_utils_error_elog.c +1748 -0
  425. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +570 -0
  426. data/ext/pg_query/src_backend_utils_hash_dynahash.c +1086 -0
  427. data/ext/pg_query/src_backend_utils_init_globals.c +168 -0
  428. data/ext/pg_query/src_backend_utils_mb_mbutils.c +839 -0
  429. data/ext/pg_query/src_backend_utils_misc_guc.c +1831 -0
  430. data/ext/pg_query/src_backend_utils_mmgr_aset.c +1560 -0
  431. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +1006 -0
  432. data/ext/pg_query/src_common_encnames.c +158 -0
  433. data/ext/pg_query/src_common_keywords.c +39 -0
  434. data/ext/pg_query/src_common_kwlist_d.h +1081 -0
  435. data/ext/pg_query/src_common_kwlookup.c +91 -0
  436. data/ext/pg_query/src_common_psprintf.c +158 -0
  437. data/ext/pg_query/src_common_string.c +86 -0
  438. data/ext/pg_query/src_common_stringinfo.c +336 -0
  439. data/ext/pg_query/src_common_wchar.c +1651 -0
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1133 -0
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +877 -0
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +6533 -0
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +107 -0
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +123 -0
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +671 -0
  446. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +255 -0
  447. data/ext/pg_query/src_port_erand48.c +127 -0
  448. data/ext/pg_query/src_port_pg_bitutils.c +246 -0
  449. data/ext/pg_query/src_port_pgsleep.c +69 -0
  450. data/ext/pg_query/src_port_pgstrcasecmp.c +83 -0
  451. data/ext/pg_query/src_port_qsort.c +240 -0
  452. data/ext/pg_query/src_port_random.c +31 -0
  453. data/ext/pg_query/src_port_snprintf.c +1449 -0
  454. data/ext/pg_query/src_port_strerror.c +324 -0
  455. data/ext/pg_query/src_port_strnlen.c +39 -0
  456. data/ext/pg_query/xxhash.c +43 -0
  457. data/lib/pg_query.rb +7 -4
  458. data/lib/pg_query/constants.rb +21 -0
  459. data/lib/pg_query/deparse.rb +15 -1581
  460. data/lib/pg_query/filter_columns.rb +88 -85
  461. data/lib/pg_query/fingerprint.rb +122 -87
  462. data/lib/pg_query/json_field_names.rb +1402 -0
  463. data/lib/pg_query/node.rb +31 -0
  464. data/lib/pg_query/param_refs.rb +42 -37
  465. data/lib/pg_query/parse.rb +220 -203
  466. data/lib/pg_query/parse_error.rb +1 -1
  467. data/lib/pg_query/pg_query_pb.rb +3211 -0
  468. data/lib/pg_query/scan.rb +23 -0
  469. data/lib/pg_query/treewalker.rb +24 -40
  470. data/lib/pg_query/truncate.rb +71 -42
  471. data/lib/pg_query/version.rb +2 -2
  472. metadata +472 -11
  473. data/ext/pg_query/pg_query_ruby.h +0 -10
  474. data/lib/pg_query/deep_dup.rb +0 -16
  475. data/lib/pg_query/deparse/alter_table.rb +0 -42
  476. data/lib/pg_query/deparse/interval.rb +0 -105
  477. data/lib/pg_query/deparse/keywords.rb +0 -159
  478. data/lib/pg_query/deparse/rename.rb +0 -41
  479. data/lib/pg_query/legacy_parsetree.rb +0 -109
  480. data/lib/pg_query/node_types.rb +0 -296
@@ -0,0 +1,38 @@
1
+ /*
2
+ * variable.h
3
+ * Routines for handling specialized SET variables.
4
+ *
5
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1994, Regents of the University of California
7
+ *
8
+ * src/include/commands/variable.h
9
+ */
10
+ #ifndef VARIABLE_H
11
+ #define VARIABLE_H
12
+
13
+ #include "utils/guc.h"
14
+
15
+
16
+ extern bool check_datestyle(char **newval, void **extra, GucSource source);
17
+ extern void assign_datestyle(const char *newval, void *extra);
18
+ extern bool check_timezone(char **newval, void **extra, GucSource source);
19
+ extern void assign_timezone(const char *newval, void *extra);
20
+ extern const char *show_timezone(void);
21
+ extern bool check_log_timezone(char **newval, void **extra, GucSource source);
22
+ extern void assign_log_timezone(const char *newval, void *extra);
23
+ extern const char *show_log_timezone(void);
24
+ extern bool check_transaction_read_only(bool *newval, void **extra, GucSource source);
25
+ extern bool check_XactIsoLevel(int *newval, void **extra, GucSource source);
26
+ extern bool check_transaction_deferrable(bool *newval, void **extra, GucSource source);
27
+ extern bool check_random_seed(double *newval, void **extra, GucSource source);
28
+ extern void assign_random_seed(double newval, void *extra);
29
+ extern const char *show_random_seed(void);
30
+ extern bool check_client_encoding(char **newval, void **extra, GucSource source);
31
+ extern void assign_client_encoding(const char *newval, void *extra);
32
+ extern bool check_session_authorization(char **newval, void **extra, GucSource source);
33
+ extern void assign_session_authorization(const char *newval, void *extra);
34
+ extern bool check_role(char **newval, void **extra, GucSource source);
35
+ extern void assign_role(const char *newval, void *extra);
36
+ extern const char *show_role(void);
37
+
38
+ #endif /* VARIABLE_H */
@@ -0,0 +1,56 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * File and directory permission definitions
4
+ *
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/common/file_perm.h
10
+ *
11
+ *-------------------------------------------------------------------------
12
+ */
13
+ #ifndef FILE_PERM_H
14
+ #define FILE_PERM_H
15
+
16
+ #include <sys/stat.h>
17
+
18
+ /*
19
+ * Mode mask for data directory permissions that only allows the owner to
20
+ * read/write directories and files.
21
+ *
22
+ * This is the default.
23
+ */
24
+ #define PG_MODE_MASK_OWNER (S_IRWXG | S_IRWXO)
25
+
26
+ /*
27
+ * Mode mask for data directory permissions that also allows group read/execute.
28
+ */
29
+ #define PG_MODE_MASK_GROUP (S_IWGRP | S_IRWXO)
30
+
31
+ /* Default mode for creating directories */
32
+ #define PG_DIR_MODE_OWNER S_IRWXU
33
+
34
+ /* Mode for creating directories that allows group read/execute */
35
+ #define PG_DIR_MODE_GROUP (S_IRWXU | S_IRGRP | S_IXGRP)
36
+
37
+ /* Default mode for creating files */
38
+ #define PG_FILE_MODE_OWNER (S_IRUSR | S_IWUSR)
39
+
40
+ /* Mode for creating files that allows group read */
41
+ #define PG_FILE_MODE_GROUP (S_IRUSR | S_IWUSR | S_IRGRP)
42
+
43
+ /* Modes for creating directories and files in the data directory */
44
+ extern int pg_dir_create_mode;
45
+ extern int pg_file_create_mode;
46
+
47
+ /* Mode mask to pass to umask() */
48
+ extern int pg_mode_mask;
49
+
50
+ /* Set permissions and mask based on the provided mode */
51
+ extern void SetDataDirectoryCreatePerm(int dataDirMode);
52
+
53
+ /* Set permissions and mask based on the mode of the data directory */
54
+ extern bool GetDataDirectoryCreatePerm(const char *dataDir);
55
+
56
+ #endif /* FILE_PERM_H */
@@ -0,0 +1,104 @@
1
+ /*
2
+ * Utilities for working with hash values.
3
+ *
4
+ * Portions Copyright (c) 2017-2020, PostgreSQL Global Development Group
5
+ */
6
+
7
+ #ifndef HASHFN_H
8
+ #define HASHFN_H
9
+
10
+
11
+ /*
12
+ * Rotate the high 32 bits and the low 32 bits separately. The standard
13
+ * hash function sometimes rotates the low 32 bits by one bit when
14
+ * combining elements. We want extended hash functions to be compatible with
15
+ * that algorithm when the seed is 0, so we can't just do a normal rotation.
16
+ * This works, though.
17
+ */
18
+ #define ROTATE_HIGH_AND_LOW_32BITS(v) \
19
+ ((((v) << 1) & UINT64CONST(0xfffffffefffffffe)) | \
20
+ (((v) >> 31) & UINT64CONST(0x100000001)))
21
+
22
+
23
+ extern uint32 hash_bytes(const unsigned char *k, int keylen);
24
+ extern uint64 hash_bytes_extended(const unsigned char *k,
25
+ int keylen, uint64 seed);
26
+ extern uint32 hash_bytes_uint32(uint32 k);
27
+ extern uint64 hash_bytes_uint32_extended(uint32 k, uint64 seed);
28
+
29
+ #ifndef FRONTEND
30
+ static inline Datum
31
+ hash_any(const unsigned char *k, int keylen)
32
+ {
33
+ return UInt32GetDatum(hash_bytes(k, keylen));
34
+ }
35
+
36
+ static inline Datum
37
+ hash_any_extended(const unsigned char *k, int keylen, uint64 seed)
38
+ {
39
+ return UInt64GetDatum(hash_bytes_extended(k, keylen, seed));
40
+ }
41
+
42
+ static inline Datum
43
+ hash_uint32(uint32 k)
44
+ {
45
+ return UInt32GetDatum(hash_bytes_uint32(k));
46
+ }
47
+
48
+ static inline Datum
49
+ hash_uint32_extended(uint32 k, uint64 seed)
50
+ {
51
+ return UInt64GetDatum(hash_bytes_uint32_extended(k, seed));
52
+ }
53
+ #endif
54
+
55
+ extern uint32 string_hash(const void *key, Size keysize);
56
+ extern uint32 tag_hash(const void *key, Size keysize);
57
+ extern uint32 uint32_hash(const void *key, Size keysize);
58
+
59
+ #define oid_hash uint32_hash /* Remove me eventually */
60
+
61
+ /*
62
+ * Combine two 32-bit hash values, resulting in another hash value, with
63
+ * decent bit mixing.
64
+ *
65
+ * Similar to boost's hash_combine().
66
+ */
67
+ static inline uint32
68
+ hash_combine(uint32 a, uint32 b)
69
+ {
70
+ a ^= b + 0x9e3779b9 + (a << 6) + (a >> 2);
71
+ return a;
72
+ }
73
+
74
+ /*
75
+ * Combine two 64-bit hash values, resulting in another hash value, using the
76
+ * same kind of technique as hash_combine(). Testing shows that this also
77
+ * produces good bit mixing.
78
+ */
79
+ static inline uint64
80
+ hash_combine64(uint64 a, uint64 b)
81
+ {
82
+ /* 0x49a0f4dd15e5a8e3 is 64bit random data */
83
+ a ^= b + UINT64CONST(0x49a0f4dd15e5a8e3) + (a << 54) + (a >> 7);
84
+ return a;
85
+ }
86
+
87
+ /*
88
+ * Simple inline murmur hash implementation hashing a 32 bit integer, for
89
+ * performance.
90
+ */
91
+ static inline uint32
92
+ murmurhash32(uint32 data)
93
+ {
94
+ uint32 h = data;
95
+
96
+ h ^= h >> 16;
97
+ h *= 0x85ebca6b;
98
+ h ^= h >> 13;
99
+ h *= 0xc2b2ae35;
100
+ h ^= h >> 16;
101
+ return h;
102
+ }
103
+
104
+ #endif /* HASHFN_H */
@@ -0,0 +1,37 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * ip.h
4
+ * Definitions for IPv6-aware network access.
5
+ *
6
+ * These definitions are used by both frontend and backend code.
7
+ *
8
+ * Copyright (c) 2003-2020, PostgreSQL Global Development Group
9
+ *
10
+ * src/include/common/ip.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef IP_H
15
+ #define IP_H
16
+
17
+ #include "getaddrinfo.h" /* pgrminclude ignore */
18
+ #include "libpq/pqcomm.h" /* pgrminclude ignore */
19
+
20
+
21
+ #ifdef HAVE_UNIX_SOCKETS
22
+ #define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
23
+ #else
24
+ #define IS_AF_UNIX(fam) (0)
25
+ #endif
26
+
27
+ extern int pg_getaddrinfo_all(const char *hostname, const char *servname,
28
+ const struct addrinfo *hintp,
29
+ struct addrinfo **result);
30
+ extern void pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo *ai);
31
+
32
+ extern int pg_getnameinfo_all(const struct sockaddr_storage *addr, int salen,
33
+ char *node, int nodelen,
34
+ char *service, int servicelen,
35
+ int flags);
36
+
37
+ #endif /* IP_H */
@@ -0,0 +1,33 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * keywords.h
4
+ * PostgreSQL's list of SQL keywords
5
+ *
6
+ *
7
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1994, Regents of the University of California
9
+ *
10
+ * src/include/common/keywords.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef KEYWORDS_H
15
+ #define KEYWORDS_H
16
+
17
+ #include "common/kwlookup.h"
18
+
19
+ /* Keyword categories --- should match lists in gram.y */
20
+ #define UNRESERVED_KEYWORD 0
21
+ #define COL_NAME_KEYWORD 1
22
+ #define TYPE_FUNC_NAME_KEYWORD 2
23
+ #define RESERVED_KEYWORD 3
24
+
25
+ #ifndef FRONTEND
26
+ extern PGDLLIMPORT const ScanKeywordList ScanKeywords;
27
+ extern PGDLLIMPORT const uint8 ScanKeywordCategories[];
28
+ #else
29
+ extern const ScanKeywordList ScanKeywords;
30
+ extern const uint8 ScanKeywordCategories[];
31
+ #endif
32
+
33
+ #endif /* KEYWORDS_H */
@@ -0,0 +1,44 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * kwlookup.h
4
+ * Key word lookup for PostgreSQL
5
+ *
6
+ *
7
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1994, Regents of the University of California
9
+ *
10
+ * src/include/common/kwlookup.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef KWLOOKUP_H
15
+ #define KWLOOKUP_H
16
+
17
+ /* Hash function used by ScanKeywordLookup */
18
+ typedef int (*ScanKeywordHashFunc) (const void *key, size_t keylen);
19
+
20
+ /*
21
+ * This struct contains the data needed by ScanKeywordLookup to perform a
22
+ * search within a set of keywords. The contents are typically generated by
23
+ * src/tools/gen_keywordlist.pl from a header containing PG_KEYWORD macros.
24
+ */
25
+ typedef struct ScanKeywordList
26
+ {
27
+ const char *kw_string; /* all keywords in order, separated by \0 */
28
+ const uint16 *kw_offsets; /* offsets to the start of each keyword */
29
+ ScanKeywordHashFunc hash; /* perfect hash function for keywords */
30
+ int num_keywords; /* number of keywords */
31
+ int max_kw_len; /* length of longest keyword */
32
+ } ScanKeywordList;
33
+
34
+
35
+ extern int ScanKeywordLookup(const char *text, const ScanKeywordList *keywords);
36
+
37
+ /* Code that wants to retrieve the text of the N'th keyword should use this. */
38
+ static inline const char *
39
+ GetScanKeyword(int n, const ScanKeywordList *keywords)
40
+ {
41
+ return keywords->kw_string + keywords->kw_offsets[n];
42
+ }
43
+
44
+ #endif /* KWLOOKUP_H */
@@ -0,0 +1,90 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * relpath.h
4
+ * Declarations for GetRelationPath() and friends
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/common/relpath.h
10
+ *
11
+ *-------------------------------------------------------------------------
12
+ */
13
+ #ifndef RELPATH_H
14
+ #define RELPATH_H
15
+
16
+ /*
17
+ * 'pgrminclude ignore' needed here because CppAsString2() does not throw
18
+ * an error if the symbol is not defined.
19
+ */
20
+ #include "catalog/catversion.h" /* pgrminclude ignore */
21
+
22
+
23
+ /*
24
+ * Name of major-version-specific tablespace subdirectories
25
+ */
26
+ #define TABLESPACE_VERSION_DIRECTORY "PG_" PG_MAJORVERSION "_" \
27
+ CppAsString2(CATALOG_VERSION_NO)
28
+
29
+ /* Characters to allow for an OID in a relation path */
30
+ #define OIDCHARS 10 /* max chars printed by %u */
31
+
32
+ /*
33
+ * Stuff for fork names.
34
+ *
35
+ * The physical storage of a relation consists of one or more forks.
36
+ * The main fork is always created, but in addition to that there can be
37
+ * additional forks for storing various metadata. ForkNumber is used when
38
+ * we need to refer to a specific fork in a relation.
39
+ */
40
+ typedef enum ForkNumber
41
+ {
42
+ InvalidForkNumber = -1,
43
+ MAIN_FORKNUM = 0,
44
+ FSM_FORKNUM,
45
+ VISIBILITYMAP_FORKNUM,
46
+ INIT_FORKNUM
47
+
48
+ /*
49
+ * NOTE: if you add a new fork, change MAX_FORKNUM and possibly
50
+ * FORKNAMECHARS below, and update the forkNames array in
51
+ * src/common/relpath.c
52
+ */
53
+ } ForkNumber;
54
+
55
+ #define MAX_FORKNUM INIT_FORKNUM
56
+
57
+ #define FORKNAMECHARS 4 /* max chars for a fork name */
58
+
59
+ extern const char *const forkNames[];
60
+
61
+ extern ForkNumber forkname_to_number(const char *forkName);
62
+ extern int forkname_chars(const char *str, ForkNumber *fork);
63
+
64
+ /*
65
+ * Stuff for computing filesystem pathnames for relations.
66
+ */
67
+ extern char *GetDatabasePath(Oid dbNode, Oid spcNode);
68
+
69
+ extern char *GetRelationPath(Oid dbNode, Oid spcNode, Oid relNode,
70
+ int backendId, ForkNumber forkNumber);
71
+
72
+ /*
73
+ * Wrapper macros for GetRelationPath. Beware of multiple
74
+ * evaluation of the RelFileNode or RelFileNodeBackend argument!
75
+ */
76
+
77
+ /* First argument is a RelFileNode */
78
+ #define relpathbackend(rnode, backend, forknum) \
79
+ GetRelationPath((rnode).dbNode, (rnode).spcNode, (rnode).relNode, \
80
+ backend, forknum)
81
+
82
+ /* First argument is a RelFileNode */
83
+ #define relpathperm(rnode, forknum) \
84
+ relpathbackend(rnode, InvalidBackendId, forknum)
85
+
86
+ /* First argument is a RelFileNodeBackend */
87
+ #define relpath(rnode, forknum) \
88
+ relpathbackend((rnode).node, (rnode).backend, forknum)
89
+
90
+ #endif /* RELPATH_H */
@@ -0,0 +1,19 @@
1
+ /*
2
+ * string.h
3
+ * string handling helpers
4
+ *
5
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1994, Regents of the University of California
7
+ *
8
+ * src/include/common/string.h
9
+ */
10
+ #ifndef COMMON_STRING_H
11
+ #define COMMON_STRING_H
12
+
13
+ extern bool pg_str_endswith(const char *str, const char *end);
14
+ extern int strtoint(const char *pg_restrict str, char **pg_restrict endptr,
15
+ int base);
16
+ extern void pg_clean_ascii(char *str);
17
+ extern int pg_strip_crlf(char *str);
18
+
19
+ #endif /* COMMON_STRING_H */
@@ -0,0 +1,196 @@
1
+ /* generated by src/common/unicode/generate-unicode_combining_table.pl, do not edit */
2
+
3
+ static const struct mbinterval combining[] = {
4
+ {0x0300, 0x036F},
5
+ {0x0483, 0x0489},
6
+ {0x0591, 0x05BD},
7
+ {0x05BF, 0x05BF},
8
+ {0x05C1, 0x05C2},
9
+ {0x05C4, 0x05C5},
10
+ {0x05C7, 0x05C7},
11
+ {0x0610, 0x061A},
12
+ {0x064B, 0x065F},
13
+ {0x0670, 0x0670},
14
+ {0x06D6, 0x06DC},
15
+ {0x06DF, 0x06E4},
16
+ {0x06E7, 0x06E8},
17
+ {0x06EA, 0x06ED},
18
+ {0x0711, 0x0711},
19
+ {0x0730, 0x074A},
20
+ {0x07A6, 0x07B0},
21
+ {0x07EB, 0x07F3},
22
+ {0x07FD, 0x07FD},
23
+ {0x0816, 0x0819},
24
+ {0x081B, 0x0823},
25
+ {0x0825, 0x0827},
26
+ {0x0829, 0x082D},
27
+ {0x0859, 0x085B},
28
+ {0x08D3, 0x08E1},
29
+ {0x08E3, 0x0902},
30
+ {0x093A, 0x093A},
31
+ {0x093C, 0x093C},
32
+ {0x0941, 0x0948},
33
+ {0x094D, 0x094D},
34
+ {0x0951, 0x0957},
35
+ {0x0962, 0x0963},
36
+ {0x0981, 0x0981},
37
+ {0x09BC, 0x09BC},
38
+ {0x09C1, 0x09C4},
39
+ {0x09CD, 0x09CD},
40
+ {0x09E2, 0x09E3},
41
+ {0x09FE, 0x0A02},
42
+ {0x0A3C, 0x0A3C},
43
+ {0x0A41, 0x0A51},
44
+ {0x0A70, 0x0A71},
45
+ {0x0A75, 0x0A75},
46
+ {0x0A81, 0x0A82},
47
+ {0x0ABC, 0x0ABC},
48
+ {0x0AC1, 0x0AC8},
49
+ {0x0ACD, 0x0ACD},
50
+ {0x0AE2, 0x0AE3},
51
+ {0x0AFA, 0x0B01},
52
+ {0x0B3C, 0x0B3C},
53
+ {0x0B3F, 0x0B3F},
54
+ {0x0B41, 0x0B44},
55
+ {0x0B4D, 0x0B56},
56
+ {0x0B62, 0x0B63},
57
+ {0x0B82, 0x0B82},
58
+ {0x0BC0, 0x0BC0},
59
+ {0x0BCD, 0x0BCD},
60
+ {0x0C00, 0x0C00},
61
+ {0x0C04, 0x0C04},
62
+ {0x0C3E, 0x0C40},
63
+ {0x0C46, 0x0C56},
64
+ {0x0C62, 0x0C63},
65
+ {0x0C81, 0x0C81},
66
+ {0x0CBC, 0x0CBC},
67
+ {0x0CBF, 0x0CBF},
68
+ {0x0CC6, 0x0CC6},
69
+ {0x0CCC, 0x0CCD},
70
+ {0x0CE2, 0x0CE3},
71
+ {0x0D00, 0x0D01},
72
+ {0x0D3B, 0x0D3C},
73
+ {0x0D41, 0x0D44},
74
+ {0x0D4D, 0x0D4D},
75
+ {0x0D62, 0x0D63},
76
+ {0x0D81, 0x0D81},
77
+ {0x0DCA, 0x0DCA},
78
+ {0x0DD2, 0x0DD6},
79
+ {0x0E31, 0x0E31},
80
+ {0x0E34, 0x0E3A},
81
+ {0x0E47, 0x0E4E},
82
+ {0x0EB1, 0x0EB1},
83
+ {0x0EB4, 0x0EBC},
84
+ {0x0EC8, 0x0ECD},
85
+ {0x0F18, 0x0F19},
86
+ {0x0F35, 0x0F35},
87
+ {0x0F37, 0x0F37},
88
+ {0x0F39, 0x0F39},
89
+ {0x0F71, 0x0F7E},
90
+ {0x0F80, 0x0F84},
91
+ {0x0F86, 0x0F87},
92
+ {0x0F8D, 0x0FBC},
93
+ {0x0FC6, 0x0FC6},
94
+ {0x102D, 0x1030},
95
+ {0x1032, 0x1037},
96
+ {0x1039, 0x103A},
97
+ {0x103D, 0x103E},
98
+ {0x1058, 0x1059},
99
+ {0x105E, 0x1060},
100
+ {0x1071, 0x1074},
101
+ {0x1082, 0x1082},
102
+ {0x1085, 0x1086},
103
+ {0x108D, 0x108D},
104
+ {0x109D, 0x109D},
105
+ {0x135D, 0x135F},
106
+ {0x1712, 0x1714},
107
+ {0x1732, 0x1734},
108
+ {0x1752, 0x1753},
109
+ {0x1772, 0x1773},
110
+ {0x17B4, 0x17B5},
111
+ {0x17B7, 0x17BD},
112
+ {0x17C6, 0x17C6},
113
+ {0x17C9, 0x17D3},
114
+ {0x17DD, 0x17DD},
115
+ {0x180B, 0x180D},
116
+ {0x1885, 0x1886},
117
+ {0x18A9, 0x18A9},
118
+ {0x1920, 0x1922},
119
+ {0x1927, 0x1928},
120
+ {0x1932, 0x1932},
121
+ {0x1939, 0x193B},
122
+ {0x1A17, 0x1A18},
123
+ {0x1A1B, 0x1A1B},
124
+ {0x1A56, 0x1A56},
125
+ {0x1A58, 0x1A60},
126
+ {0x1A62, 0x1A62},
127
+ {0x1A65, 0x1A6C},
128
+ {0x1A73, 0x1A7F},
129
+ {0x1AB0, 0x1B03},
130
+ {0x1B34, 0x1B34},
131
+ {0x1B36, 0x1B3A},
132
+ {0x1B3C, 0x1B3C},
133
+ {0x1B42, 0x1B42},
134
+ {0x1B6B, 0x1B73},
135
+ {0x1B80, 0x1B81},
136
+ {0x1BA2, 0x1BA5},
137
+ {0x1BA8, 0x1BA9},
138
+ {0x1BAB, 0x1BAD},
139
+ {0x1BE6, 0x1BE6},
140
+ {0x1BE8, 0x1BE9},
141
+ {0x1BED, 0x1BED},
142
+ {0x1BEF, 0x1BF1},
143
+ {0x1C2C, 0x1C33},
144
+ {0x1C36, 0x1C37},
145
+ {0x1CD0, 0x1CD2},
146
+ {0x1CD4, 0x1CE0},
147
+ {0x1CE2, 0x1CE8},
148
+ {0x1CED, 0x1CED},
149
+ {0x1CF4, 0x1CF4},
150
+ {0x1CF8, 0x1CF9},
151
+ {0x1DC0, 0x1DFF},
152
+ {0x20D0, 0x20F0},
153
+ {0x2CEF, 0x2CF1},
154
+ {0x2D7F, 0x2D7F},
155
+ {0x2DE0, 0x2DFF},
156
+ {0x302A, 0x302D},
157
+ {0x3099, 0x309A},
158
+ {0xA66F, 0xA672},
159
+ {0xA674, 0xA67D},
160
+ {0xA69E, 0xA69F},
161
+ {0xA6F0, 0xA6F1},
162
+ {0xA802, 0xA802},
163
+ {0xA806, 0xA806},
164
+ {0xA80B, 0xA80B},
165
+ {0xA825, 0xA826},
166
+ {0xA82C, 0xA82C},
167
+ {0xA8C4, 0xA8C5},
168
+ {0xA8E0, 0xA8F1},
169
+ {0xA8FF, 0xA8FF},
170
+ {0xA926, 0xA92D},
171
+ {0xA947, 0xA951},
172
+ {0xA980, 0xA982},
173
+ {0xA9B3, 0xA9B3},
174
+ {0xA9B6, 0xA9B9},
175
+ {0xA9BC, 0xA9BD},
176
+ {0xA9E5, 0xA9E5},
177
+ {0xAA29, 0xAA2E},
178
+ {0xAA31, 0xAA32},
179
+ {0xAA35, 0xAA36},
180
+ {0xAA43, 0xAA43},
181
+ {0xAA4C, 0xAA4C},
182
+ {0xAA7C, 0xAA7C},
183
+ {0xAAB0, 0xAAB0},
184
+ {0xAAB2, 0xAAB4},
185
+ {0xAAB7, 0xAAB8},
186
+ {0xAABE, 0xAABF},
187
+ {0xAAC1, 0xAAC1},
188
+ {0xAAEC, 0xAAED},
189
+ {0xAAF6, 0xAAF6},
190
+ {0xABE5, 0xABE5},
191
+ {0xABE8, 0xABE8},
192
+ {0xABED, 0xABED},
193
+ {0xFB1E, 0xFB1E},
194
+ {0xFE00, 0xFE0F},
195
+ {0xFE20, 0xFE2F},
196
+ };