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,60 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_opfamily.h
4
+ * definition of the "operator family" system catalog (pg_opfamily)
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_opfamily.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_OPFAMILY_H
19
+ #define PG_OPFAMILY_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_opfamily_d.h"
23
+
24
+ /* ----------------
25
+ * pg_opfamily definition. cpp turns this into
26
+ * typedef struct FormData_pg_opfamily
27
+ * ----------------
28
+ */
29
+ CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
30
+ {
31
+ Oid oid; /* oid */
32
+
33
+ /* index access method opfamily is for */
34
+ Oid opfmethod BKI_LOOKUP(pg_am);
35
+
36
+ /* name of this opfamily */
37
+ NameData opfname;
38
+
39
+ /* namespace of this opfamily */
40
+ Oid opfnamespace BKI_DEFAULT(PGNSP);
41
+
42
+ /* opfamily owner */
43
+ Oid opfowner BKI_DEFAULT(PGUID);
44
+ } FormData_pg_opfamily;
45
+
46
+ /* ----------------
47
+ * Form_pg_opfamily corresponds to a pointer to a tuple with
48
+ * the format of pg_opfamily relation.
49
+ * ----------------
50
+ */
51
+ typedef FormData_pg_opfamily *Form_pg_opfamily;
52
+
53
+ #ifdef EXPOSE_TO_CLIENT_CODE
54
+
55
+ #define IsBooleanOpfamily(opfamily) \
56
+ ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
57
+
58
+ #endif /* EXPOSE_TO_CLIENT_CODE */
59
+
60
+ #endif /* PG_OPFAMILY_H */
@@ -0,0 +1,47 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_opfamily_d.h
4
+ * Macro definitions for pg_opfamily
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_OPFAMILY_D_H
19
+ #define PG_OPFAMILY_D_H
20
+
21
+ #define OperatorFamilyRelationId 2753
22
+
23
+ #define Anum_pg_opfamily_oid 1
24
+ #define Anum_pg_opfamily_opfmethod 2
25
+ #define Anum_pg_opfamily_opfname 3
26
+ #define Anum_pg_opfamily_opfnamespace 4
27
+ #define Anum_pg_opfamily_opfowner 5
28
+
29
+ #define Natts_pg_opfamily 5
30
+
31
+
32
+ #define IsBooleanOpfamily(opfamily) \
33
+ ((opfamily) == BOOL_BTREE_FAM_OID || (opfamily) == BOOL_HASH_FAM_OID)
34
+
35
+ #define BOOL_BTREE_FAM_OID 424
36
+ #define BPCHAR_BTREE_FAM_OID 426
37
+ #define BYTEA_BTREE_FAM_OID 428
38
+ #define NETWORK_BTREE_FAM_OID 1974
39
+ #define INTEGER_BTREE_FAM_OID 1976
40
+ #define OID_BTREE_FAM_OID 1989
41
+ #define TEXT_BTREE_FAM_OID 1994
42
+ #define TEXT_PATTERN_BTREE_FAM_OID 2095
43
+ #define BPCHAR_PATTERN_BTREE_FAM_OID 2097
44
+ #define BOOL_HASH_FAM_OID 2222
45
+ #define TEXT_SPGIST_FAM_OID 4017
46
+
47
+ #endif /* PG_OPFAMILY_D_H */
@@ -0,0 +1,63 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_partitioned_table.h
4
+ * definition of the "partitioned table" system catalog
5
+ * (pg_partitioned_table)
6
+ *
7
+ *
8
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1994, Regents of the University of California
10
+ *
11
+ * src/include/catalog/pg_partitioned_table.h
12
+ *
13
+ * NOTES
14
+ * The Catalog.pm module reads this file and derives schema
15
+ * information.
16
+ *
17
+ *-------------------------------------------------------------------------
18
+ */
19
+ #ifndef PG_PARTITIONED_TABLE_H
20
+ #define PG_PARTITIONED_TABLE_H
21
+
22
+ #include "catalog/genbki.h"
23
+ #include "catalog/pg_partitioned_table_d.h"
24
+
25
+ /* ----------------
26
+ * pg_partitioned_table definition. cpp turns this into
27
+ * typedef struct FormData_pg_partitioned_table
28
+ * ----------------
29
+ */
30
+ CATALOG(pg_partitioned_table,3350,PartitionedRelationId)
31
+ {
32
+ Oid partrelid; /* partitioned table oid */
33
+ char partstrat; /* partitioning strategy */
34
+ int16 partnatts; /* number of partition key columns */
35
+ Oid partdefid; /* default partition oid; InvalidOid if there
36
+ * isn't one */
37
+
38
+ /*
39
+ * variable-length fields start here, but we allow direct access to
40
+ * partattrs via the C struct. That's because the first variable-length
41
+ * field of a heap tuple can be reliably accessed using its C struct
42
+ * offset, as previous fields are all non-nullable fixed-length fields.
43
+ */
44
+ int2vector partattrs; /* each member of the array is the attribute
45
+ * number of a partition key column, or 0 if
46
+ * the column is actually an expression */
47
+
48
+ #ifdef CATALOG_VARLEN
49
+ oidvector partclass; /* operator class to compare keys */
50
+ oidvector partcollation; /* user-specified collation for keys */
51
+ pg_node_tree partexprs; /* list of expressions in the partition key;
52
+ * one item for each zero entry in partattrs[] */
53
+ #endif
54
+ } FormData_pg_partitioned_table;
55
+
56
+ /* ----------------
57
+ * Form_pg_partitioned_table corresponds to a pointer to a tuple with
58
+ * the format of pg_partitioned_table relation.
59
+ * ----------------
60
+ */
61
+ typedef FormData_pg_partitioned_table *Form_pg_partitioned_table;
62
+
63
+ #endif /* PG_PARTITIONED_TABLE_H */
@@ -0,0 +1,35 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_partitioned_table_d.h
4
+ * Macro definitions for pg_partitioned_table
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_PARTITIONED_TABLE_D_H
19
+ #define PG_PARTITIONED_TABLE_D_H
20
+
21
+ #define PartitionedRelationId 3350
22
+
23
+ #define Anum_pg_partitioned_table_partrelid 1
24
+ #define Anum_pg_partitioned_table_partstrat 2
25
+ #define Anum_pg_partitioned_table_partnatts 3
26
+ #define Anum_pg_partitioned_table_partdefid 4
27
+ #define Anum_pg_partitioned_table_partattrs 5
28
+ #define Anum_pg_partitioned_table_partclass 6
29
+ #define Anum_pg_partitioned_table_partcollation 7
30
+ #define Anum_pg_partitioned_table_partexprs 8
31
+
32
+ #define Natts_pg_partitioned_table 8
33
+
34
+
35
+ #endif /* PG_PARTITIONED_TABLE_D_H */
@@ -0,0 +1,211 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_proc.h
4
+ * definition of the "procedure" system catalog (pg_proc)
5
+ *
6
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * src/include/catalog/pg_proc.h
10
+ *
11
+ * NOTES
12
+ * The Catalog.pm module reads this file and derives schema
13
+ * information.
14
+ *
15
+ *-------------------------------------------------------------------------
16
+ */
17
+ #ifndef PG_PROC_H
18
+ #define PG_PROC_H
19
+
20
+ #include "catalog/genbki.h"
21
+ #include "catalog/objectaddress.h"
22
+ #include "catalog/pg_proc_d.h"
23
+ #include "nodes/pg_list.h"
24
+
25
+ /* ----------------
26
+ * pg_proc definition. cpp turns this into
27
+ * typedef struct FormData_pg_proc
28
+ * ----------------
29
+ */
30
+ CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,ProcedureRelation_Rowtype_Id) BKI_SCHEMA_MACRO
31
+ {
32
+ Oid oid; /* oid */
33
+
34
+ /* procedure name */
35
+ NameData proname;
36
+
37
+ /* OID of namespace containing this proc */
38
+ Oid pronamespace BKI_DEFAULT(PGNSP);
39
+
40
+ /* procedure owner */
41
+ Oid proowner BKI_DEFAULT(PGUID);
42
+
43
+ /* OID of pg_language entry */
44
+ Oid prolang BKI_DEFAULT(internal) BKI_LOOKUP(pg_language);
45
+
46
+ /* estimated execution cost */
47
+ float4 procost BKI_DEFAULT(1);
48
+
49
+ /* estimated # of rows out (if proretset) */
50
+ float4 prorows BKI_DEFAULT(0);
51
+
52
+ /* element type of variadic array, or 0 */
53
+ Oid provariadic BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
54
+
55
+ /* planner support function for this function, or 0 if none */
56
+ regproc prosupport BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
57
+
58
+ /* see PROKIND_ categories below */
59
+ char prokind BKI_DEFAULT(f);
60
+
61
+ /* security definer */
62
+ bool prosecdef BKI_DEFAULT(f);
63
+
64
+ /* is it a leak-proof function? */
65
+ bool proleakproof BKI_DEFAULT(f);
66
+
67
+ /* strict with respect to NULLs? */
68
+ bool proisstrict BKI_DEFAULT(t);
69
+
70
+ /* returns a set? */
71
+ bool proretset BKI_DEFAULT(f);
72
+
73
+ /* see PROVOLATILE_ categories below */
74
+ char provolatile BKI_DEFAULT(i);
75
+
76
+ /* see PROPARALLEL_ categories below */
77
+ char proparallel BKI_DEFAULT(s);
78
+
79
+ /* number of arguments */
80
+ /* Note: need not be given in pg_proc.dat; genbki.pl will compute it */
81
+ int16 pronargs;
82
+
83
+ /* number of arguments with defaults */
84
+ int16 pronargdefaults BKI_DEFAULT(0);
85
+
86
+ /* OID of result type */
87
+ Oid prorettype BKI_LOOKUP(pg_type);
88
+
89
+ /*
90
+ * variable-length fields start here, but we allow direct access to
91
+ * proargtypes
92
+ */
93
+
94
+ /* parameter types (excludes OUT params) */
95
+ oidvector proargtypes BKI_LOOKUP(pg_type);
96
+
97
+ #ifdef CATALOG_VARLEN
98
+
99
+ /* all param types (NULL if IN only) */
100
+ Oid proallargtypes[1] BKI_DEFAULT(_null_) BKI_LOOKUP(pg_type);
101
+
102
+ /* parameter modes (NULL if IN only) */
103
+ char proargmodes[1] BKI_DEFAULT(_null_);
104
+
105
+ /* parameter names (NULL if no names) */
106
+ text proargnames[1] BKI_DEFAULT(_null_);
107
+
108
+ /* list of expression trees for argument defaults (NULL if none) */
109
+ pg_node_tree proargdefaults BKI_DEFAULT(_null_);
110
+
111
+ /* types for which to apply transforms */
112
+ Oid protrftypes[1] BKI_DEFAULT(_null_);
113
+
114
+ /* procedure source text */
115
+ text prosrc BKI_FORCE_NOT_NULL;
116
+
117
+ /* secondary procedure info (can be NULL) */
118
+ text probin BKI_DEFAULT(_null_);
119
+
120
+ /* procedure-local GUC settings */
121
+ text proconfig[1] BKI_DEFAULT(_null_);
122
+
123
+ /* access permissions */
124
+ aclitem proacl[1] BKI_DEFAULT(_null_);
125
+ #endif
126
+ } FormData_pg_proc;
127
+
128
+ /* ----------------
129
+ * Form_pg_proc corresponds to a pointer to a tuple with
130
+ * the format of pg_proc relation.
131
+ * ----------------
132
+ */
133
+ typedef FormData_pg_proc *Form_pg_proc;
134
+
135
+ #ifdef EXPOSE_TO_CLIENT_CODE
136
+
137
+ /*
138
+ * Symbolic values for prokind column
139
+ */
140
+ #define PROKIND_FUNCTION 'f'
141
+ #define PROKIND_AGGREGATE 'a'
142
+ #define PROKIND_WINDOW 'w'
143
+ #define PROKIND_PROCEDURE 'p'
144
+
145
+ /*
146
+ * Symbolic values for provolatile column: these indicate whether the result
147
+ * of a function is dependent *only* on the values of its explicit arguments,
148
+ * or can change due to outside factors (such as parameter variables or
149
+ * table contents). NOTE: functions having side-effects, such as setval(),
150
+ * must be labeled volatile to ensure they will not get optimized away,
151
+ * even if the actual return value is not changeable.
152
+ */
153
+ #define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */
154
+ #define PROVOLATILE_STABLE 's' /* does not change within a scan */
155
+ #define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */
156
+
157
+ /*
158
+ * Symbolic values for proparallel column: these indicate whether a function
159
+ * can be safely be run in a parallel backend, during parallelism but
160
+ * necessarily in the master, or only in non-parallel mode.
161
+ */
162
+ #define PROPARALLEL_SAFE 's' /* can run in worker or master */
163
+ #define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */
164
+ #define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */
165
+
166
+ /*
167
+ * Symbolic values for proargmodes column. Note that these must agree with
168
+ * the FunctionParameterMode enum in parsenodes.h; we declare them here to
169
+ * be accessible from either header.
170
+ */
171
+ #define PROARGMODE_IN 'i'
172
+ #define PROARGMODE_OUT 'o'
173
+ #define PROARGMODE_INOUT 'b'
174
+ #define PROARGMODE_VARIADIC 'v'
175
+ #define PROARGMODE_TABLE 't'
176
+
177
+ #endif /* EXPOSE_TO_CLIENT_CODE */
178
+
179
+
180
+ extern ObjectAddress ProcedureCreate(const char *procedureName,
181
+ Oid procNamespace,
182
+ bool replace,
183
+ bool returnsSet,
184
+ Oid returnType,
185
+ Oid proowner,
186
+ Oid languageObjectId,
187
+ Oid languageValidator,
188
+ const char *prosrc,
189
+ const char *probin,
190
+ char prokind,
191
+ bool security_definer,
192
+ bool isLeakProof,
193
+ bool isStrict,
194
+ char volatility,
195
+ char parallel,
196
+ oidvector *parameterTypes,
197
+ Datum allParameterTypes,
198
+ Datum parameterModes,
199
+ Datum parameterNames,
200
+ List *parameterDefaults,
201
+ Datum trftypes,
202
+ Datum proconfig,
203
+ Oid prosupport,
204
+ float4 procost,
205
+ float4 prorows);
206
+
207
+ extern bool function_parse_error_transpose(const char *prosrc);
208
+
209
+ extern List *oid_array_to_list(Datum datum);
210
+
211
+ #endif /* PG_PROC_H */
@@ -0,0 +1,99 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_proc_d.h
4
+ * Macro definitions for pg_proc
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_PROC_D_H
19
+ #define PG_PROC_D_H
20
+
21
+ #define ProcedureRelationId 1255
22
+ #define ProcedureRelation_Rowtype_Id 81
23
+
24
+ #define Anum_pg_proc_oid 1
25
+ #define Anum_pg_proc_proname 2
26
+ #define Anum_pg_proc_pronamespace 3
27
+ #define Anum_pg_proc_proowner 4
28
+ #define Anum_pg_proc_prolang 5
29
+ #define Anum_pg_proc_procost 6
30
+ #define Anum_pg_proc_prorows 7
31
+ #define Anum_pg_proc_provariadic 8
32
+ #define Anum_pg_proc_prosupport 9
33
+ #define Anum_pg_proc_prokind 10
34
+ #define Anum_pg_proc_prosecdef 11
35
+ #define Anum_pg_proc_proleakproof 12
36
+ #define Anum_pg_proc_proisstrict 13
37
+ #define Anum_pg_proc_proretset 14
38
+ #define Anum_pg_proc_provolatile 15
39
+ #define Anum_pg_proc_proparallel 16
40
+ #define Anum_pg_proc_pronargs 17
41
+ #define Anum_pg_proc_pronargdefaults 18
42
+ #define Anum_pg_proc_prorettype 19
43
+ #define Anum_pg_proc_proargtypes 20
44
+ #define Anum_pg_proc_proallargtypes 21
45
+ #define Anum_pg_proc_proargmodes 22
46
+ #define Anum_pg_proc_proargnames 23
47
+ #define Anum_pg_proc_proargdefaults 24
48
+ #define Anum_pg_proc_protrftypes 25
49
+ #define Anum_pg_proc_prosrc 26
50
+ #define Anum_pg_proc_probin 27
51
+ #define Anum_pg_proc_proconfig 28
52
+ #define Anum_pg_proc_proacl 29
53
+
54
+ #define Natts_pg_proc 29
55
+
56
+
57
+ /*
58
+ * Symbolic values for prokind column
59
+ */
60
+ #define PROKIND_FUNCTION 'f'
61
+ #define PROKIND_AGGREGATE 'a'
62
+ #define PROKIND_WINDOW 'w'
63
+ #define PROKIND_PROCEDURE 'p'
64
+
65
+ /*
66
+ * Symbolic values for provolatile column: these indicate whether the result
67
+ * of a function is dependent *only* on the values of its explicit arguments,
68
+ * or can change due to outside factors (such as parameter variables or
69
+ * table contents). NOTE: functions having side-effects, such as setval(),
70
+ * must be labeled volatile to ensure they will not get optimized away,
71
+ * even if the actual return value is not changeable.
72
+ */
73
+ #define PROVOLATILE_IMMUTABLE 'i' /* never changes for given input */
74
+ #define PROVOLATILE_STABLE 's' /* does not change within a scan */
75
+ #define PROVOLATILE_VOLATILE 'v' /* can change even within a scan */
76
+
77
+ /*
78
+ * Symbolic values for proparallel column: these indicate whether a function
79
+ * can be safely be run in a parallel backend, during parallelism but
80
+ * necessarily in the master, or only in non-parallel mode.
81
+ */
82
+ #define PROPARALLEL_SAFE 's' /* can run in worker or master */
83
+ #define PROPARALLEL_RESTRICTED 'r' /* can run in parallel master only */
84
+ #define PROPARALLEL_UNSAFE 'u' /* banned while in parallel mode */
85
+
86
+ /*
87
+ * Symbolic values for proargmodes column. Note that these must agree with
88
+ * the FunctionParameterMode enum in parsenodes.h; we declare them here to
89
+ * be accessible from either header.
90
+ */
91
+ #define PROARGMODE_IN 'i'
92
+ #define PROARGMODE_OUT 'o'
93
+ #define PROARGMODE_INOUT 'b'
94
+ #define PROARGMODE_VARIADIC 'v'
95
+ #define PROARGMODE_TABLE 't'
96
+
97
+ #define HEAP_TABLE_AM_HANDLER_OID 3
98
+
99
+ #endif /* PG_PROC_D_H */