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,194 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_statistic_d.h
4
+ * Macro definitions for pg_statistic
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_STATISTIC_D_H
19
+ #define PG_STATISTIC_D_H
20
+
21
+ #define StatisticRelationId 2619
22
+
23
+ #define Anum_pg_statistic_starelid 1
24
+ #define Anum_pg_statistic_staattnum 2
25
+ #define Anum_pg_statistic_stainherit 3
26
+ #define Anum_pg_statistic_stanullfrac 4
27
+ #define Anum_pg_statistic_stawidth 5
28
+ #define Anum_pg_statistic_stadistinct 6
29
+ #define Anum_pg_statistic_stakind1 7
30
+ #define Anum_pg_statistic_stakind2 8
31
+ #define Anum_pg_statistic_stakind3 9
32
+ #define Anum_pg_statistic_stakind4 10
33
+ #define Anum_pg_statistic_stakind5 11
34
+ #define Anum_pg_statistic_staop1 12
35
+ #define Anum_pg_statistic_staop2 13
36
+ #define Anum_pg_statistic_staop3 14
37
+ #define Anum_pg_statistic_staop4 15
38
+ #define Anum_pg_statistic_staop5 16
39
+ #define Anum_pg_statistic_stacoll1 17
40
+ #define Anum_pg_statistic_stacoll2 18
41
+ #define Anum_pg_statistic_stacoll3 19
42
+ #define Anum_pg_statistic_stacoll4 20
43
+ #define Anum_pg_statistic_stacoll5 21
44
+ #define Anum_pg_statistic_stanumbers1 22
45
+ #define Anum_pg_statistic_stanumbers2 23
46
+ #define Anum_pg_statistic_stanumbers3 24
47
+ #define Anum_pg_statistic_stanumbers4 25
48
+ #define Anum_pg_statistic_stanumbers5 26
49
+ #define Anum_pg_statistic_stavalues1 27
50
+ #define Anum_pg_statistic_stavalues2 28
51
+ #define Anum_pg_statistic_stavalues3 29
52
+ #define Anum_pg_statistic_stavalues4 30
53
+ #define Anum_pg_statistic_stavalues5 31
54
+
55
+ #define Natts_pg_statistic 31
56
+
57
+
58
+ /*
59
+ * Several statistical slot "kinds" are defined by core PostgreSQL, as
60
+ * documented below. Also, custom data types can define their own "kind"
61
+ * codes by mutual agreement between a custom typanalyze routine and the
62
+ * selectivity estimation functions of the type's operators.
63
+ *
64
+ * Code reading the pg_statistic relation should not assume that a particular
65
+ * data "kind" will appear in any particular slot. Instead, search the
66
+ * stakind fields to see if the desired data is available. (The standard
67
+ * function get_attstatsslot() may be used for this.)
68
+ */
69
+
70
+ /*
71
+ * The present allocation of "kind" codes is:
72
+ *
73
+ * 1-99: reserved for assignment by the core PostgreSQL project
74
+ * (values in this range will be documented in this file)
75
+ * 100-199: reserved for assignment by the PostGIS project
76
+ * (values to be documented in PostGIS documentation)
77
+ * 200-299: reserved for assignment by the ESRI ST_Geometry project
78
+ * (values to be documented in ESRI ST_Geometry documentation)
79
+ * 300-9999: reserved for future public assignments
80
+ *
81
+ * For private use you may choose a "kind" code at random in the range
82
+ * 10000-30000. However, for code that is to be widely disseminated it is
83
+ * better to obtain a publicly defined "kind" code by request from the
84
+ * PostgreSQL Global Development Group.
85
+ */
86
+
87
+ /*
88
+ * In a "most common values" slot, staop is the OID of the "=" operator
89
+ * used to decide whether values are the same or not, and stacoll is the
90
+ * collation used (same as column's collation). stavalues contains
91
+ * the K most common non-null values appearing in the column, and stanumbers
92
+ * contains their frequencies (fractions of total row count). The values
93
+ * shall be ordered in decreasing frequency. Note that since the arrays are
94
+ * variable-size, K may be chosen by the statistics collector. Values should
95
+ * not appear in MCV unless they have been observed to occur more than once;
96
+ * a unique column will have no MCV slot.
97
+ */
98
+ #define STATISTIC_KIND_MCV 1
99
+
100
+ /*
101
+ * A "histogram" slot describes the distribution of scalar data. staop is
102
+ * the OID of the "<" operator that describes the sort ordering, and stacoll
103
+ * is the relevant collation. (In theory more than one histogram could appear,
104
+ * if a datatype has more than one useful sort operator or we care about more
105
+ * than one collation. Currently the collation will always be that of the
106
+ * underlying column.) stavalues contains M (>=2) non-null values that
107
+ * divide the non-null column data values into M-1 bins of approximately equal
108
+ * population. The first stavalues item is the MIN and the last is the MAX.
109
+ * stanumbers is not used and should be NULL. IMPORTANT POINT: if an MCV
110
+ * slot is also provided, then the histogram describes the data distribution
111
+ * *after removing the values listed in MCV* (thus, it's a "compressed
112
+ * histogram" in the technical parlance). This allows a more accurate
113
+ * representation of the distribution of a column with some very-common
114
+ * values. In a column with only a few distinct values, it's possible that
115
+ * the MCV list describes the entire data population; in this case the
116
+ * histogram reduces to empty and should be omitted.
117
+ */
118
+ #define STATISTIC_KIND_HISTOGRAM 2
119
+
120
+ /*
121
+ * A "correlation" slot describes the correlation between the physical order
122
+ * of table tuples and the ordering of data values of this column, as seen
123
+ * by the "<" operator identified by staop with the collation identified by
124
+ * stacoll. (As with the histogram, more than one entry could theoretically
125
+ * appear.) stavalues is not used and should be NULL. stanumbers contains
126
+ * a single entry, the correlation coefficient between the sequence of data
127
+ * values and the sequence of their actual tuple positions. The coefficient
128
+ * ranges from +1 to -1.
129
+ */
130
+ #define STATISTIC_KIND_CORRELATION 3
131
+
132
+ /*
133
+ * A "most common elements" slot is similar to a "most common values" slot,
134
+ * except that it stores the most common non-null *elements* of the column
135
+ * values. This is useful when the column datatype is an array or some other
136
+ * type with identifiable elements (for instance, tsvector). staop contains
137
+ * the equality operator appropriate to the element type, and stacoll
138
+ * contains the collation to use with it. stavalues contains
139
+ * the most common element values, and stanumbers their frequencies. Unlike
140
+ * MCV slots, frequencies are measured as the fraction of non-null rows the
141
+ * element value appears in, not the frequency of all rows. Also unlike
142
+ * MCV slots, the values are sorted into the element type's default order
143
+ * (to support binary search for a particular value). Since this puts the
144
+ * minimum and maximum frequencies at unpredictable spots in stanumbers,
145
+ * there are two extra members of stanumbers, holding copies of the minimum
146
+ * and maximum frequencies. Optionally, there can be a third extra member,
147
+ * which holds the frequency of null elements (expressed in the same terms:
148
+ * the fraction of non-null rows that contain at least one null element). If
149
+ * this member is omitted, the column is presumed to contain no null elements.
150
+ *
151
+ * Note: in current usage for tsvector columns, the stavalues elements are of
152
+ * type text, even though their representation within tsvector is not
153
+ * exactly text.
154
+ */
155
+ #define STATISTIC_KIND_MCELEM 4
156
+
157
+ /*
158
+ * A "distinct elements count histogram" slot describes the distribution of
159
+ * the number of distinct element values present in each row of an array-type
160
+ * column. Only non-null rows are considered, and only non-null elements.
161
+ * staop contains the equality operator appropriate to the element type,
162
+ * and stacoll contains the collation to use with it.
163
+ * stavalues is not used and should be NULL. The last member of stanumbers is
164
+ * the average count of distinct element values over all non-null rows. The
165
+ * preceding M (>=2) members form a histogram that divides the population of
166
+ * distinct-elements counts into M-1 bins of approximately equal population.
167
+ * The first of these is the minimum observed count, and the last the maximum.
168
+ */
169
+ #define STATISTIC_KIND_DECHIST 5
170
+
171
+ /*
172
+ * A "length histogram" slot describes the distribution of range lengths in
173
+ * rows of a range-type column. stanumbers contains a single entry, the
174
+ * fraction of empty ranges. stavalues is a histogram of non-empty lengths, in
175
+ * a format similar to STATISTIC_KIND_HISTOGRAM: it contains M (>=2) range
176
+ * values that divide the column data values into M-1 bins of approximately
177
+ * equal population. The lengths are stored as float8s, as measured by the
178
+ * range type's subdiff function. Only non-null rows are considered.
179
+ */
180
+ #define STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM 6
181
+
182
+ /*
183
+ * A "bounds histogram" slot is similar to STATISTIC_KIND_HISTOGRAM, but for
184
+ * a range-type column. stavalues contains M (>=2) range values that divide
185
+ * the column data values into M-1 bins of approximately equal population.
186
+ * Unlike a regular scalar histogram, this is actually two histograms combined
187
+ * into a single array, with the lower bounds of each value forming a
188
+ * histogram of lower bounds, and the upper bounds a histogram of upper
189
+ * bounds. Only non-NULL, non-empty ranges are included.
190
+ */
191
+ #define STATISTIC_KIND_BOUNDS_HISTOGRAM 7
192
+
193
+
194
+ #endif /* PG_STATISTIC_D_H */
@@ -0,0 +1,74 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_statistic_ext.h
4
+ * definition of the "extended statistics" system catalog
5
+ * (pg_statistic_ext)
6
+ *
7
+ * Note that pg_statistic_ext contains the definitions of extended statistics
8
+ * objects, created by CREATE STATISTICS, but not the actual statistical data,
9
+ * created by running ANALYZE.
10
+ *
11
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
12
+ * Portions Copyright (c) 1994, Regents of the University of California
13
+ *
14
+ * src/include/catalog/pg_statistic_ext.h
15
+ *
16
+ * NOTES
17
+ * The Catalog.pm module reads this file and derives schema
18
+ * information.
19
+ *
20
+ *-------------------------------------------------------------------------
21
+ */
22
+ #ifndef PG_STATISTIC_EXT_H
23
+ #define PG_STATISTIC_EXT_H
24
+
25
+ #include "catalog/genbki.h"
26
+ #include "catalog/pg_statistic_ext_d.h"
27
+
28
+ /* ----------------
29
+ * pg_statistic_ext definition. cpp turns this into
30
+ * typedef struct FormData_pg_statistic_ext
31
+ * ----------------
32
+ */
33
+ CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
34
+ {
35
+ Oid oid; /* oid */
36
+
37
+ Oid stxrelid; /* relation containing attributes */
38
+
39
+ /* These two fields form the unique key for the entry: */
40
+ NameData stxname; /* statistics object name */
41
+ Oid stxnamespace; /* OID of statistics object's namespace */
42
+
43
+ Oid stxowner; /* statistics object's owner */
44
+ int32 stxstattarget BKI_DEFAULT(-1); /* statistics target */
45
+
46
+ /*
47
+ * variable-length fields start here, but we allow direct access to
48
+ * stxkeys
49
+ */
50
+ int2vector stxkeys; /* array of column keys */
51
+
52
+ #ifdef CATALOG_VARLEN
53
+ char stxkind[1] BKI_FORCE_NOT_NULL; /* statistics kinds requested
54
+ * to build */
55
+ #endif
56
+
57
+ } FormData_pg_statistic_ext;
58
+
59
+ /* ----------------
60
+ * Form_pg_statistic_ext corresponds to a pointer to a tuple with
61
+ * the format of pg_statistic_ext relation.
62
+ * ----------------
63
+ */
64
+ typedef FormData_pg_statistic_ext *Form_pg_statistic_ext;
65
+
66
+ #ifdef EXPOSE_TO_CLIENT_CODE
67
+
68
+ #define STATS_EXT_NDISTINCT 'd'
69
+ #define STATS_EXT_DEPENDENCIES 'f'
70
+ #define STATS_EXT_MCV 'm'
71
+
72
+ #endif /* EXPOSE_TO_CLIENT_CODE */
73
+
74
+ #endif /* PG_STATISTIC_EXT_H */
@@ -0,0 +1,40 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_statistic_ext_d.h
4
+ * Macro definitions for pg_statistic_ext
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_STATISTIC_EXT_D_H
19
+ #define PG_STATISTIC_EXT_D_H
20
+
21
+ #define StatisticExtRelationId 3381
22
+
23
+ #define Anum_pg_statistic_ext_oid 1
24
+ #define Anum_pg_statistic_ext_stxrelid 2
25
+ #define Anum_pg_statistic_ext_stxname 3
26
+ #define Anum_pg_statistic_ext_stxnamespace 4
27
+ #define Anum_pg_statistic_ext_stxowner 5
28
+ #define Anum_pg_statistic_ext_stxstattarget 6
29
+ #define Anum_pg_statistic_ext_stxkeys 7
30
+ #define Anum_pg_statistic_ext_stxkind 8
31
+
32
+ #define Natts_pg_statistic_ext 8
33
+
34
+
35
+ #define STATS_EXT_NDISTINCT 'd'
36
+ #define STATS_EXT_DEPENDENCIES 'f'
37
+ #define STATS_EXT_MCV 'm'
38
+
39
+
40
+ #endif /* PG_STATISTIC_EXT_D_H */
@@ -0,0 +1,45 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_transform.h
4
+ * definition of the "transform" system catalog (pg_transform)
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_transform.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_TRANSFORM_H
19
+ #define PG_TRANSFORM_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_transform_d.h"
23
+
24
+ /* ----------------
25
+ * pg_transform definition. cpp turns this into
26
+ * typedef struct FormData_pg_transform
27
+ * ----------------
28
+ */
29
+ CATALOG(pg_transform,3576,TransformRelationId)
30
+ {
31
+ Oid oid; /* oid */
32
+ Oid trftype;
33
+ Oid trflang;
34
+ regproc trffromsql;
35
+ regproc trftosql;
36
+ } FormData_pg_transform;
37
+
38
+ /* ----------------
39
+ * Form_pg_transform corresponds to a pointer to a tuple with
40
+ * the format of pg_transform relation.
41
+ * ----------------
42
+ */
43
+ typedef FormData_pg_transform *Form_pg_transform;
44
+
45
+ #endif /* PG_TRANSFORM_H */
@@ -0,0 +1,32 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_transform_d.h
4
+ * Macro definitions for pg_transform
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_TRANSFORM_D_H
19
+ #define PG_TRANSFORM_D_H
20
+
21
+ #define TransformRelationId 3576
22
+
23
+ #define Anum_pg_transform_oid 1
24
+ #define Anum_pg_transform_trftype 2
25
+ #define Anum_pg_transform_trflang 3
26
+ #define Anum_pg_transform_trffromsql 4
27
+ #define Anum_pg_transform_trftosql 5
28
+
29
+ #define Natts_pg_transform 5
30
+
31
+
32
+ #endif /* PG_TRANSFORM_D_H */
@@ -0,0 +1,137 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_trigger.h
4
+ * definition of the "trigger" system catalog (pg_trigger)
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_trigger.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_TRIGGER_H
19
+ #define PG_TRIGGER_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_trigger_d.h"
23
+
24
+ /* ----------------
25
+ * pg_trigger definition. cpp turns this into
26
+ * typedef struct FormData_pg_trigger
27
+ *
28
+ * Note: when tgconstraint is nonzero, tgconstrrelid, tgconstrindid,
29
+ * tgdeferrable, and tginitdeferred are largely redundant with the referenced
30
+ * pg_constraint entry. However, it is possible for a non-deferrable trigger
31
+ * to be associated with a deferrable constraint.
32
+ * ----------------
33
+ */
34
+ CATALOG(pg_trigger,2620,TriggerRelationId)
35
+ {
36
+ Oid oid; /* oid */
37
+ Oid tgrelid; /* relation trigger is attached to */
38
+ Oid tgparentid; /* OID of parent trigger, if any */
39
+ NameData tgname; /* trigger's name */
40
+ Oid tgfoid; /* OID of function to be called */
41
+ int16 tgtype; /* BEFORE/AFTER/INSTEAD, UPDATE/DELETE/INSERT,
42
+ * ROW/STATEMENT; see below */
43
+ char tgenabled; /* trigger's firing configuration WRT
44
+ * session_replication_role */
45
+ bool tgisinternal; /* trigger is system-generated */
46
+ Oid tgconstrrelid; /* constraint's FROM table, if any */
47
+ Oid tgconstrindid; /* constraint's supporting index, if any */
48
+ Oid tgconstraint; /* associated pg_constraint entry, if any */
49
+ bool tgdeferrable; /* constraint trigger is deferrable */
50
+ bool tginitdeferred; /* constraint trigger is deferred initially */
51
+ int16 tgnargs; /* # of extra arguments in tgargs */
52
+
53
+ /*
54
+ * Variable-length fields start here, but we allow direct access to
55
+ * tgattr. Note: tgattr and tgargs must not be null.
56
+ */
57
+ int2vector tgattr; /* column numbers, if trigger is on columns */
58
+
59
+ #ifdef CATALOG_VARLEN
60
+ bytea tgargs BKI_FORCE_NOT_NULL; /* first\000second\000tgnargs\000 */
61
+ pg_node_tree tgqual; /* WHEN expression, or NULL if none */
62
+ NameData tgoldtable; /* old transition table, or NULL if none */
63
+ NameData tgnewtable; /* new transition table, or NULL if none */
64
+ #endif
65
+ } FormData_pg_trigger;
66
+
67
+ /* ----------------
68
+ * Form_pg_trigger corresponds to a pointer to a tuple with
69
+ * the format of pg_trigger relation.
70
+ * ----------------
71
+ */
72
+ typedef FormData_pg_trigger *Form_pg_trigger;
73
+
74
+ #ifdef EXPOSE_TO_CLIENT_CODE
75
+
76
+ /* Bits within tgtype */
77
+ #define TRIGGER_TYPE_ROW (1 << 0)
78
+ #define TRIGGER_TYPE_BEFORE (1 << 1)
79
+ #define TRIGGER_TYPE_INSERT (1 << 2)
80
+ #define TRIGGER_TYPE_DELETE (1 << 3)
81
+ #define TRIGGER_TYPE_UPDATE (1 << 4)
82
+ #define TRIGGER_TYPE_TRUNCATE (1 << 5)
83
+ #define TRIGGER_TYPE_INSTEAD (1 << 6)
84
+
85
+ #define TRIGGER_TYPE_LEVEL_MASK (TRIGGER_TYPE_ROW)
86
+ #define TRIGGER_TYPE_STATEMENT 0
87
+
88
+ /* Note bits within TRIGGER_TYPE_TIMING_MASK aren't adjacent */
89
+ #define TRIGGER_TYPE_TIMING_MASK \
90
+ (TRIGGER_TYPE_BEFORE | TRIGGER_TYPE_INSTEAD)
91
+ #define TRIGGER_TYPE_AFTER 0
92
+
93
+ #define TRIGGER_TYPE_EVENT_MASK \
94
+ (TRIGGER_TYPE_INSERT | TRIGGER_TYPE_DELETE | TRIGGER_TYPE_UPDATE | TRIGGER_TYPE_TRUNCATE)
95
+
96
+ /* Macros for manipulating tgtype */
97
+ #define TRIGGER_CLEAR_TYPE(type) ((type) = 0)
98
+
99
+ #define TRIGGER_SETT_ROW(type) ((type) |= TRIGGER_TYPE_ROW)
100
+ #define TRIGGER_SETT_STATEMENT(type) ((type) |= TRIGGER_TYPE_STATEMENT)
101
+ #define TRIGGER_SETT_BEFORE(type) ((type) |= TRIGGER_TYPE_BEFORE)
102
+ #define TRIGGER_SETT_AFTER(type) ((type) |= TRIGGER_TYPE_AFTER)
103
+ #define TRIGGER_SETT_INSTEAD(type) ((type) |= TRIGGER_TYPE_INSTEAD)
104
+ #define TRIGGER_SETT_INSERT(type) ((type) |= TRIGGER_TYPE_INSERT)
105
+ #define TRIGGER_SETT_DELETE(type) ((type) |= TRIGGER_TYPE_DELETE)
106
+ #define TRIGGER_SETT_UPDATE(type) ((type) |= TRIGGER_TYPE_UPDATE)
107
+ #define TRIGGER_SETT_TRUNCATE(type) ((type) |= TRIGGER_TYPE_TRUNCATE)
108
+
109
+ #define TRIGGER_FOR_ROW(type) ((type) & TRIGGER_TYPE_ROW)
110
+ #define TRIGGER_FOR_BEFORE(type) (((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_BEFORE)
111
+ #define TRIGGER_FOR_AFTER(type) (((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_AFTER)
112
+ #define TRIGGER_FOR_INSTEAD(type) (((type) & TRIGGER_TYPE_TIMING_MASK) == TRIGGER_TYPE_INSTEAD)
113
+ #define TRIGGER_FOR_INSERT(type) ((type) & TRIGGER_TYPE_INSERT)
114
+ #define TRIGGER_FOR_DELETE(type) ((type) & TRIGGER_TYPE_DELETE)
115
+ #define TRIGGER_FOR_UPDATE(type) ((type) & TRIGGER_TYPE_UPDATE)
116
+ #define TRIGGER_FOR_TRUNCATE(type) ((type) & TRIGGER_TYPE_TRUNCATE)
117
+
118
+ /*
119
+ * Efficient macro for checking if tgtype matches a particular level
120
+ * (TRIGGER_TYPE_ROW or TRIGGER_TYPE_STATEMENT), timing (TRIGGER_TYPE_BEFORE,
121
+ * TRIGGER_TYPE_AFTER or TRIGGER_TYPE_INSTEAD), and event (TRIGGER_TYPE_INSERT,
122
+ * TRIGGER_TYPE_DELETE, TRIGGER_TYPE_UPDATE, or TRIGGER_TYPE_TRUNCATE). Note
123
+ * that a tgtype can match more than one event, but only one level or timing.
124
+ */
125
+ #define TRIGGER_TYPE_MATCHES(type, level, timing, event) \
126
+ (((type) & (TRIGGER_TYPE_LEVEL_MASK | TRIGGER_TYPE_TIMING_MASK | (event))) == ((level) | (timing) | (event)))
127
+
128
+ /*
129
+ * Macro to determine whether tgnewtable or tgoldtable has been specified for
130
+ * a trigger.
131
+ */
132
+ #define TRIGGER_USES_TRANSITION_TABLE(namepointer) \
133
+ ((namepointer) != (char *) NULL)
134
+
135
+ #endif /* EXPOSE_TO_CLIENT_CODE */
136
+
137
+ #endif /* PG_TRIGGER_H */