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,58 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_authid.h
4
+ * definition of the "authorization identifier" system catalog (pg_authid)
5
+ *
6
+ * pg_shadow and pg_group are now publicly accessible views on pg_authid.
7
+ *
8
+ *
9
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
10
+ * Portions Copyright (c) 1994, Regents of the University of California
11
+ *
12
+ * src/include/catalog/pg_authid.h
13
+ *
14
+ * NOTES
15
+ * The Catalog.pm module reads this file and derives schema
16
+ * information.
17
+ *
18
+ *-------------------------------------------------------------------------
19
+ */
20
+ #ifndef PG_AUTHID_H
21
+ #define PG_AUTHID_H
22
+
23
+ #include "catalog/genbki.h"
24
+ #include "catalog/pg_authid_d.h"
25
+
26
+ /* ----------------
27
+ * pg_authid definition. cpp turns this into
28
+ * typedef struct FormData_pg_authid
29
+ * ----------------
30
+ */
31
+ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(2842,AuthIdRelation_Rowtype_Id) BKI_SCHEMA_MACRO
32
+ {
33
+ Oid oid; /* oid */
34
+ NameData rolname; /* name of role */
35
+ bool rolsuper; /* read this field via superuser() only! */
36
+ bool rolinherit; /* inherit privileges from other roles? */
37
+ bool rolcreaterole; /* allowed to create more roles? */
38
+ bool rolcreatedb; /* allowed to create databases? */
39
+ bool rolcanlogin; /* allowed to log in as session user? */
40
+ bool rolreplication; /* role used for streaming replication */
41
+ bool rolbypassrls; /* bypasses row level security? */
42
+ int32 rolconnlimit; /* max connections allowed (-1=no limit) */
43
+
44
+ /* remaining fields may be null; use heap_getattr to read them! */
45
+ #ifdef CATALOG_VARLEN /* variable-length fields start here */
46
+ text rolpassword; /* password, if any */
47
+ timestamptz rolvaliduntil; /* password expiration time, if any */
48
+ #endif
49
+ } FormData_pg_authid;
50
+
51
+ /* ----------------
52
+ * Form_pg_authid corresponds to a pointer to a tuple with
53
+ * the format of pg_authid relation.
54
+ * ----------------
55
+ */
56
+ typedef FormData_pg_authid *Form_pg_authid;
57
+
58
+ #endif /* PG_AUTHID_H */
@@ -0,0 +1,49 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_authid_d.h
4
+ * Macro definitions for pg_authid
5
+ *
6
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * NOTES
10
+ * ******************************
11
+ * *** DO NOT EDIT THIS FILE! ***
12
+ * ******************************
13
+ *
14
+ * It has been GENERATED by src/backend/catalog/genbki.pl
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_AUTHID_D_H
19
+ #define PG_AUTHID_D_H
20
+
21
+ #define AuthIdRelationId 1260
22
+ #define AuthIdRelation_Rowtype_Id 2842
23
+
24
+ #define Anum_pg_authid_oid 1
25
+ #define Anum_pg_authid_rolname 2
26
+ #define Anum_pg_authid_rolsuper 3
27
+ #define Anum_pg_authid_rolinherit 4
28
+ #define Anum_pg_authid_rolcreaterole 5
29
+ #define Anum_pg_authid_rolcreatedb 6
30
+ #define Anum_pg_authid_rolcanlogin 7
31
+ #define Anum_pg_authid_rolreplication 8
32
+ #define Anum_pg_authid_rolbypassrls 9
33
+ #define Anum_pg_authid_rolconnlimit 10
34
+ #define Anum_pg_authid_rolpassword 11
35
+ #define Anum_pg_authid_rolvaliduntil 12
36
+
37
+ #define Natts_pg_authid 12
38
+
39
+ #define BOOTSTRAP_SUPERUSERID 10
40
+ #define DEFAULT_ROLE_MONITOR 3373
41
+ #define DEFAULT_ROLE_READ_ALL_SETTINGS 3374
42
+ #define DEFAULT_ROLE_READ_ALL_STATS 3375
43
+ #define DEFAULT_ROLE_STAT_SCAN_TABLES 3377
44
+ #define DEFAULT_ROLE_READ_SERVER_FILES 4569
45
+ #define DEFAULT_ROLE_WRITE_SERVER_FILES 4570
46
+ #define DEFAULT_ROLE_EXECUTE_SERVER_PROGRAM 4571
47
+ #define DEFAULT_ROLE_SIGNAL_BACKENDID 4200
48
+
49
+ #endif /* PG_AUTHID_D_H */
@@ -0,0 +1,200 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_class.h
4
+ * definition of the "relation" system catalog (pg_class)
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/catalog/pg_class.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_CLASS_H
19
+ #define PG_CLASS_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_class_d.h"
23
+
24
+ /* ----------------
25
+ * pg_class definition. cpp turns this into
26
+ * typedef struct FormData_pg_class
27
+ *
28
+ * Note that the BKI_DEFAULT values below are only used for rows describing
29
+ * BKI_BOOTSTRAP catalogs, since only those rows appear in pg_class.dat.
30
+ * ----------------
31
+ */
32
+ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,RelationRelation_Rowtype_Id) BKI_SCHEMA_MACRO
33
+ {
34
+ /* oid */
35
+ Oid oid;
36
+
37
+ /* class name */
38
+ NameData relname;
39
+
40
+ /* OID of namespace containing this class */
41
+ Oid relnamespace BKI_DEFAULT(PGNSP);
42
+
43
+ /* OID of entry in pg_type for table's implicit row type */
44
+ Oid reltype BKI_LOOKUP(pg_type);
45
+
46
+ /* OID of entry in pg_type for underlying composite type */
47
+ Oid reloftype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
48
+
49
+ /* class owner */
50
+ Oid relowner BKI_DEFAULT(PGUID);
51
+
52
+ /* access method; 0 if not a table / index */
53
+ Oid relam BKI_DEFAULT(heap) BKI_LOOKUP(pg_am);
54
+
55
+ /* identifier of physical storage file */
56
+ /* relfilenode == 0 means it is a "mapped" relation, see relmapper.c */
57
+ Oid relfilenode BKI_DEFAULT(0);
58
+
59
+ /* identifier of table space for relation (0 means default for database) */
60
+ Oid reltablespace BKI_DEFAULT(0) BKI_LOOKUP(pg_tablespace);
61
+
62
+ /* # of blocks (not always up-to-date) */
63
+ int32 relpages BKI_DEFAULT(0);
64
+
65
+ /* # of tuples (not always up-to-date) */
66
+ float4 reltuples BKI_DEFAULT(0);
67
+
68
+ /* # of all-visible blocks (not always up-to-date) */
69
+ int32 relallvisible BKI_DEFAULT(0);
70
+
71
+ /* OID of toast table; 0 if none */
72
+ Oid reltoastrelid BKI_DEFAULT(0);
73
+
74
+ /* T if has (or has had) any indexes */
75
+ bool relhasindex BKI_DEFAULT(f);
76
+
77
+ /* T if shared across databases */
78
+ bool relisshared BKI_DEFAULT(f);
79
+
80
+ /* see RELPERSISTENCE_xxx constants below */
81
+ char relpersistence BKI_DEFAULT(p);
82
+
83
+ /* see RELKIND_xxx constants below */
84
+ char relkind BKI_DEFAULT(r);
85
+
86
+ /* number of user attributes */
87
+ int16 relnatts BKI_DEFAULT(0); /* genbki.pl will fill this in */
88
+
89
+ /*
90
+ * Class pg_attribute must contain exactly "relnatts" user attributes
91
+ * (with attnums ranging from 1 to relnatts) for this class. It may also
92
+ * contain entries with negative attnums for system attributes.
93
+ */
94
+
95
+ /* # of CHECK constraints for class */
96
+ int16 relchecks BKI_DEFAULT(0);
97
+
98
+ /* has (or has had) any rules */
99
+ bool relhasrules BKI_DEFAULT(f);
100
+
101
+ /* has (or has had) any TRIGGERs */
102
+ bool relhastriggers BKI_DEFAULT(f);
103
+
104
+ /* has (or has had) child tables or indexes */
105
+ bool relhassubclass BKI_DEFAULT(f);
106
+
107
+ /* row security is enabled or not */
108
+ bool relrowsecurity BKI_DEFAULT(f);
109
+
110
+ /* row security forced for owners or not */
111
+ bool relforcerowsecurity BKI_DEFAULT(f);
112
+
113
+ /* matview currently holds query results */
114
+ bool relispopulated BKI_DEFAULT(t);
115
+
116
+ /* see REPLICA_IDENTITY_xxx constants */
117
+ char relreplident BKI_DEFAULT(n);
118
+
119
+ /* is relation a partition? */
120
+ bool relispartition BKI_DEFAULT(f);
121
+
122
+ /* heap for rewrite during DDL, link to original rel */
123
+ Oid relrewrite BKI_DEFAULT(0);
124
+
125
+ /* all Xids < this are frozen in this rel */
126
+ TransactionId relfrozenxid BKI_DEFAULT(3); /* FirstNormalTransactionId */
127
+
128
+ /* all multixacts in this rel are >= this; it is really a MultiXactId */
129
+ TransactionId relminmxid BKI_DEFAULT(1); /* FirstMultiXactId */
130
+
131
+ #ifdef CATALOG_VARLEN /* variable-length fields start here */
132
+ /* NOTE: These fields are not present in a relcache entry's rd_rel field. */
133
+ /* access permissions */
134
+ aclitem relacl[1] BKI_DEFAULT(_null_);
135
+
136
+ /* access-method-specific options */
137
+ text reloptions[1] BKI_DEFAULT(_null_);
138
+
139
+ /* partition bound node tree */
140
+ pg_node_tree relpartbound BKI_DEFAULT(_null_);
141
+ #endif
142
+ } FormData_pg_class;
143
+
144
+ /* Size of fixed part of pg_class tuples, not counting var-length fields */
145
+ #define CLASS_TUPLE_SIZE \
146
+ (offsetof(FormData_pg_class,relminmxid) + sizeof(TransactionId))
147
+
148
+ /* ----------------
149
+ * Form_pg_class corresponds to a pointer to a tuple with
150
+ * the format of pg_class relation.
151
+ * ----------------
152
+ */
153
+ typedef FormData_pg_class *Form_pg_class;
154
+
155
+ #ifdef EXPOSE_TO_CLIENT_CODE
156
+
157
+ #define RELKIND_RELATION 'r' /* ordinary table */
158
+ #define RELKIND_INDEX 'i' /* secondary index */
159
+ #define RELKIND_SEQUENCE 'S' /* sequence object */
160
+ #define RELKIND_TOASTVALUE 't' /* for out-of-line values */
161
+ #define RELKIND_VIEW 'v' /* view */
162
+ #define RELKIND_MATVIEW 'm' /* materialized view */
163
+ #define RELKIND_COMPOSITE_TYPE 'c' /* composite type */
164
+ #define RELKIND_FOREIGN_TABLE 'f' /* foreign table */
165
+ #define RELKIND_PARTITIONED_TABLE 'p' /* partitioned table */
166
+ #define RELKIND_PARTITIONED_INDEX 'I' /* partitioned index */
167
+
168
+ #define RELPERSISTENCE_PERMANENT 'p' /* regular table */
169
+ #define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */
170
+ #define RELPERSISTENCE_TEMP 't' /* temporary table */
171
+
172
+ /* default selection for replica identity (primary key or nothing) */
173
+ #define REPLICA_IDENTITY_DEFAULT 'd'
174
+ /* no replica identity is logged for this relation */
175
+ #define REPLICA_IDENTITY_NOTHING 'n'
176
+ /* all columns are logged as replica identity */
177
+ #define REPLICA_IDENTITY_FULL 'f'
178
+ /*
179
+ * an explicitly chosen candidate key's columns are used as replica identity.
180
+ * Note this will still be set if the index has been dropped; in that case it
181
+ * has the same meaning as 'd'.
182
+ */
183
+ #define REPLICA_IDENTITY_INDEX 'i'
184
+
185
+ /*
186
+ * Relation kinds that have physical storage. These relations normally have
187
+ * relfilenode set to non-zero, but it can also be zero if the relation is
188
+ * mapped.
189
+ */
190
+ #define RELKIND_HAS_STORAGE(relkind) \
191
+ ((relkind) == RELKIND_RELATION || \
192
+ (relkind) == RELKIND_INDEX || \
193
+ (relkind) == RELKIND_SEQUENCE || \
194
+ (relkind) == RELKIND_TOASTVALUE || \
195
+ (relkind) == RELKIND_MATVIEW)
196
+
197
+
198
+ #endif /* EXPOSE_TO_CLIENT_CODE */
199
+
200
+ #endif /* PG_CLASS_H */
@@ -0,0 +1,103 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_class_d.h
4
+ * Macro definitions for pg_class
5
+ *
6
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * NOTES
10
+ * ******************************
11
+ * *** DO NOT EDIT THIS FILE! ***
12
+ * ******************************
13
+ *
14
+ * It has been GENERATED by src/backend/catalog/genbki.pl
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_CLASS_D_H
19
+ #define PG_CLASS_D_H
20
+
21
+ #define RelationRelationId 1259
22
+ #define RelationRelation_Rowtype_Id 83
23
+
24
+ #define Anum_pg_class_oid 1
25
+ #define Anum_pg_class_relname 2
26
+ #define Anum_pg_class_relnamespace 3
27
+ #define Anum_pg_class_reltype 4
28
+ #define Anum_pg_class_reloftype 5
29
+ #define Anum_pg_class_relowner 6
30
+ #define Anum_pg_class_relam 7
31
+ #define Anum_pg_class_relfilenode 8
32
+ #define Anum_pg_class_reltablespace 9
33
+ #define Anum_pg_class_relpages 10
34
+ #define Anum_pg_class_reltuples 11
35
+ #define Anum_pg_class_relallvisible 12
36
+ #define Anum_pg_class_reltoastrelid 13
37
+ #define Anum_pg_class_relhasindex 14
38
+ #define Anum_pg_class_relisshared 15
39
+ #define Anum_pg_class_relpersistence 16
40
+ #define Anum_pg_class_relkind 17
41
+ #define Anum_pg_class_relnatts 18
42
+ #define Anum_pg_class_relchecks 19
43
+ #define Anum_pg_class_relhasrules 20
44
+ #define Anum_pg_class_relhastriggers 21
45
+ #define Anum_pg_class_relhassubclass 22
46
+ #define Anum_pg_class_relrowsecurity 23
47
+ #define Anum_pg_class_relforcerowsecurity 24
48
+ #define Anum_pg_class_relispopulated 25
49
+ #define Anum_pg_class_relreplident 26
50
+ #define Anum_pg_class_relispartition 27
51
+ #define Anum_pg_class_relrewrite 28
52
+ #define Anum_pg_class_relfrozenxid 29
53
+ #define Anum_pg_class_relminmxid 30
54
+ #define Anum_pg_class_relacl 31
55
+ #define Anum_pg_class_reloptions 32
56
+ #define Anum_pg_class_relpartbound 33
57
+
58
+ #define Natts_pg_class 33
59
+
60
+
61
+ #define RELKIND_RELATION 'r' /* ordinary table */
62
+ #define RELKIND_INDEX 'i' /* secondary index */
63
+ #define RELKIND_SEQUENCE 'S' /* sequence object */
64
+ #define RELKIND_TOASTVALUE 't' /* for out-of-line values */
65
+ #define RELKIND_VIEW 'v' /* view */
66
+ #define RELKIND_MATVIEW 'm' /* materialized view */
67
+ #define RELKIND_COMPOSITE_TYPE 'c' /* composite type */
68
+ #define RELKIND_FOREIGN_TABLE 'f' /* foreign table */
69
+ #define RELKIND_PARTITIONED_TABLE 'p' /* partitioned table */
70
+ #define RELKIND_PARTITIONED_INDEX 'I' /* partitioned index */
71
+
72
+ #define RELPERSISTENCE_PERMANENT 'p' /* regular table */
73
+ #define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */
74
+ #define RELPERSISTENCE_TEMP 't' /* temporary table */
75
+
76
+ /* default selection for replica identity (primary key or nothing) */
77
+ #define REPLICA_IDENTITY_DEFAULT 'd'
78
+ /* no replica identity is logged for this relation */
79
+ #define REPLICA_IDENTITY_NOTHING 'n'
80
+ /* all columns are logged as replica identity */
81
+ #define REPLICA_IDENTITY_FULL 'f'
82
+ /*
83
+ * an explicitly chosen candidate key's columns are used as replica identity.
84
+ * Note this will still be set if the index has been dropped; in that case it
85
+ * has the same meaning as 'd'.
86
+ */
87
+ #define REPLICA_IDENTITY_INDEX 'i'
88
+
89
+ /*
90
+ * Relation kinds that have physical storage. These relations normally have
91
+ * relfilenode set to non-zero, but it can also be zero if the relation is
92
+ * mapped.
93
+ */
94
+ #define RELKIND_HAS_STORAGE(relkind) \
95
+ ((relkind) == RELKIND_RELATION || \
96
+ (relkind) == RELKIND_INDEX || \
97
+ (relkind) == RELKIND_SEQUENCE || \
98
+ (relkind) == RELKIND_TOASTVALUE || \
99
+ (relkind) == RELKIND_MATVIEW)
100
+
101
+
102
+
103
+ #endif /* PG_CLASS_D_H */
@@ -0,0 +1,73 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_collation.h
4
+ * definition of the "collation" system catalog (pg_collation)
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/catalog/pg_collation.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_COLLATION_H
19
+ #define PG_COLLATION_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_collation_d.h"
23
+
24
+ /* ----------------
25
+ * pg_collation definition. cpp turns this into
26
+ * typedef struct FormData_pg_collation
27
+ * ----------------
28
+ */
29
+ CATALOG(pg_collation,3456,CollationRelationId)
30
+ {
31
+ Oid oid; /* oid */
32
+ NameData collname; /* collation name */
33
+ Oid collnamespace; /* OID of namespace containing collation */
34
+ Oid collowner; /* owner of collation */
35
+ char collprovider; /* see constants below */
36
+ bool collisdeterministic BKI_DEFAULT(t);
37
+ int32 collencoding; /* encoding for this collation; -1 = "all" */
38
+ NameData collcollate; /* LC_COLLATE setting */
39
+ NameData collctype; /* LC_CTYPE setting */
40
+ #ifdef CATALOG_VARLEN /* variable-length fields start here */
41
+ text collversion; /* provider-dependent version of collation
42
+ * data */
43
+ #endif
44
+ } FormData_pg_collation;
45
+
46
+ /* ----------------
47
+ * Form_pg_collation corresponds to a pointer to a row with
48
+ * the format of pg_collation relation.
49
+ * ----------------
50
+ */
51
+ typedef FormData_pg_collation *Form_pg_collation;
52
+
53
+ #ifdef EXPOSE_TO_CLIENT_CODE
54
+
55
+ #define COLLPROVIDER_DEFAULT 'd'
56
+ #define COLLPROVIDER_ICU 'i'
57
+ #define COLLPROVIDER_LIBC 'c'
58
+
59
+ #endif /* EXPOSE_TO_CLIENT_CODE */
60
+
61
+
62
+ extern Oid CollationCreate(const char *collname, Oid collnamespace,
63
+ Oid collowner,
64
+ char collprovider,
65
+ bool collisdeterministic,
66
+ int32 collencoding,
67
+ const char *collcollate, const char *collctype,
68
+ const char *collversion,
69
+ bool if_not_exists,
70
+ bool quiet);
71
+ extern void RemoveCollationById(Oid collationOid);
72
+
73
+ #endif /* PG_COLLATION_H */