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,67 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_language.h
4
+ * definition of the "language" system catalog (pg_language)
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_language.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_LANGUAGE_H
19
+ #define PG_LANGUAGE_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_language_d.h"
23
+
24
+ /* ----------------
25
+ * pg_language definition. cpp turns this into
26
+ * typedef struct FormData_pg_language
27
+ * ----------------
28
+ */
29
+ CATALOG(pg_language,2612,LanguageRelationId)
30
+ {
31
+ Oid oid; /* oid */
32
+
33
+ /* Language name */
34
+ NameData lanname;
35
+
36
+ /* Language's owner */
37
+ Oid lanowner BKI_DEFAULT(PGUID);
38
+
39
+ /* Is a procedural language */
40
+ bool lanispl BKI_DEFAULT(f);
41
+
42
+ /* PL is trusted */
43
+ bool lanpltrusted BKI_DEFAULT(f);
44
+
45
+ /* Call handler, if it's a PL */
46
+ Oid lanplcallfoid BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
47
+
48
+ /* Optional anonymous-block handler function */
49
+ Oid laninline BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
50
+
51
+ /* Optional validation function */
52
+ Oid lanvalidator BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
53
+
54
+ #ifdef CATALOG_VARLEN /* variable-length fields start here */
55
+ /* Access privileges */
56
+ aclitem lanacl[1] BKI_DEFAULT(_null_);
57
+ #endif
58
+ } FormData_pg_language;
59
+
60
+ /* ----------------
61
+ * Form_pg_language corresponds to a pointer to a tuple with
62
+ * the format of pg_language relation.
63
+ * ----------------
64
+ */
65
+ typedef FormData_pg_language *Form_pg_language;
66
+
67
+ #endif /* PG_LANGUAGE_H */
@@ -0,0 +1,39 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_language_d.h
4
+ * Macro definitions for pg_language
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_LANGUAGE_D_H
19
+ #define PG_LANGUAGE_D_H
20
+
21
+ #define LanguageRelationId 2612
22
+
23
+ #define Anum_pg_language_oid 1
24
+ #define Anum_pg_language_lanname 2
25
+ #define Anum_pg_language_lanowner 3
26
+ #define Anum_pg_language_lanispl 4
27
+ #define Anum_pg_language_lanpltrusted 5
28
+ #define Anum_pg_language_lanplcallfoid 6
29
+ #define Anum_pg_language_laninline 7
30
+ #define Anum_pg_language_lanvalidator 8
31
+ #define Anum_pg_language_lanacl 9
32
+
33
+ #define Natts_pg_language 9
34
+
35
+ #define INTERNALlanguageId 12
36
+ #define ClanguageId 13
37
+ #define SQLlanguageId 14
38
+
39
+ #endif /* PG_LANGUAGE_D_H */
@@ -0,0 +1,59 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_namespace.h
4
+ * definition of the "namespace" system catalog (pg_namespace)
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_namespace.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_NAMESPACE_H
19
+ #define PG_NAMESPACE_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/pg_namespace_d.h"
23
+ #include "utils/acl.h"
24
+
25
+ /* ----------------------------------------------------------------
26
+ * pg_namespace definition.
27
+ *
28
+ * cpp turns this into typedef struct FormData_pg_namespace
29
+ *
30
+ * nspname name of the namespace
31
+ * nspowner owner (creator) of the namespace
32
+ * nspacl access privilege list
33
+ * ----------------------------------------------------------------
34
+ */
35
+ CATALOG(pg_namespace,2615,NamespaceRelationId)
36
+ {
37
+ Oid oid; /* oid */
38
+
39
+ NameData nspname;
40
+ Oid nspowner;
41
+
42
+ #ifdef CATALOG_VARLEN /* variable-length fields start here */
43
+ aclitem nspacl[1];
44
+ #endif
45
+ } FormData_pg_namespace;
46
+
47
+ /* ----------------
48
+ * Form_pg_namespace corresponds to a pointer to a tuple with
49
+ * the format of pg_namespace relation.
50
+ * ----------------
51
+ */
52
+ typedef FormData_pg_namespace *Form_pg_namespace;
53
+
54
+ /*
55
+ * prototypes for functions in pg_namespace.c
56
+ */
57
+ extern Oid NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp);
58
+
59
+ #endif /* PG_NAMESPACE_H */
@@ -0,0 +1,34 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_namespace_d.h
4
+ * Macro definitions for pg_namespace
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_NAMESPACE_D_H
19
+ #define PG_NAMESPACE_D_H
20
+
21
+ #define NamespaceRelationId 2615
22
+
23
+ #define Anum_pg_namespace_oid 1
24
+ #define Anum_pg_namespace_nspname 2
25
+ #define Anum_pg_namespace_nspowner 3
26
+ #define Anum_pg_namespace_nspacl 4
27
+
28
+ #define Natts_pg_namespace 4
29
+
30
+ #define PG_CATALOG_NAMESPACE 11
31
+ #define PG_TOAST_NAMESPACE 99
32
+ #define PG_PUBLIC_NAMESPACE 2200
33
+
34
+ #endif /* PG_NAMESPACE_D_H */
@@ -0,0 +1,85 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_opclass.h
4
+ * definition of the "operator class" system catalog (pg_opclass)
5
+ *
6
+ * The primary key for this table is <opcmethod, opcname, opcnamespace> ---
7
+ * that is, there is a row for each valid combination of opclass name and
8
+ * index access method type. This row specifies the expected input data type
9
+ * for the opclass (the type of the heap column, or the expression output type
10
+ * in the case of an index expression). Note that types binary-coercible to
11
+ * the specified type will be accepted too.
12
+ *
13
+ * For a given <opcmethod, opcintype> pair, there can be at most one row that
14
+ * has opcdefault = true; this row is the default opclass for such data in
15
+ * such an index. (This is not currently enforced by an index, because we
16
+ * don't support partial indexes on system catalogs.)
17
+ *
18
+ * Normally opckeytype = InvalidOid (zero), indicating that the data stored
19
+ * in the index is the same as the data in the indexed column. If opckeytype
20
+ * is nonzero then it indicates that a conversion step is needed to produce
21
+ * the stored index data, which will be of type opckeytype (which might be
22
+ * the same or different from the input datatype). Performing such a
23
+ * conversion is the responsibility of the index access method --- not all
24
+ * AMs support this.
25
+ *
26
+ *
27
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
28
+ * Portions Copyright (c) 1994, Regents of the University of California
29
+ *
30
+ * src/include/catalog/pg_opclass.h
31
+ *
32
+ * NOTES
33
+ * The Catalog.pm module reads this file and derives schema
34
+ * information.
35
+ *
36
+ *-------------------------------------------------------------------------
37
+ */
38
+ #ifndef PG_OPCLASS_H
39
+ #define PG_OPCLASS_H
40
+
41
+ #include "catalog/genbki.h"
42
+ #include "catalog/pg_opclass_d.h"
43
+
44
+ /* ----------------
45
+ * pg_opclass definition. cpp turns this into
46
+ * typedef struct FormData_pg_opclass
47
+ * ----------------
48
+ */
49
+ CATALOG(pg_opclass,2616,OperatorClassRelationId)
50
+ {
51
+ Oid oid; /* oid */
52
+
53
+ /* index access method opclass is for */
54
+ Oid opcmethod BKI_LOOKUP(pg_am);
55
+
56
+ /* name of this opclass */
57
+ NameData opcname;
58
+
59
+ /* namespace of this opclass */
60
+ Oid opcnamespace BKI_DEFAULT(PGNSP);
61
+
62
+ /* opclass owner */
63
+ Oid opcowner BKI_DEFAULT(PGUID);
64
+
65
+ /* containing operator family */
66
+ Oid opcfamily BKI_LOOKUP(pg_opfamily);
67
+
68
+ /* type of data indexed by opclass */
69
+ Oid opcintype BKI_LOOKUP(pg_type);
70
+
71
+ /* T if opclass is default for opcintype */
72
+ bool opcdefault BKI_DEFAULT(t);
73
+
74
+ /* type of data in index, or InvalidOid */
75
+ Oid opckeytype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
76
+ } FormData_pg_opclass;
77
+
78
+ /* ----------------
79
+ * Form_pg_opclass corresponds to a pointer to a tuple with
80
+ * the format of pg_opclass relation.
81
+ * ----------------
82
+ */
83
+ typedef FormData_pg_opclass *Form_pg_opclass;
84
+
85
+ #endif /* PG_OPCLASS_H */
@@ -0,0 +1,49 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_opclass_d.h
4
+ * Macro definitions for pg_opclass
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_OPCLASS_D_H
19
+ #define PG_OPCLASS_D_H
20
+
21
+ #define OperatorClassRelationId 2616
22
+
23
+ #define Anum_pg_opclass_oid 1
24
+ #define Anum_pg_opclass_opcmethod 2
25
+ #define Anum_pg_opclass_opcname 3
26
+ #define Anum_pg_opclass_opcnamespace 4
27
+ #define Anum_pg_opclass_opcowner 5
28
+ #define Anum_pg_opclass_opcfamily 6
29
+ #define Anum_pg_opclass_opcintype 7
30
+ #define Anum_pg_opclass_opcdefault 8
31
+ #define Anum_pg_opclass_opckeytype 9
32
+
33
+ #define Natts_pg_opclass 9
34
+
35
+ #define DATE_BTREE_OPS_OID 3122
36
+ #define FLOAT8_BTREE_OPS_OID 3123
37
+ #define INT2_BTREE_OPS_OID 1979
38
+ #define INT4_BTREE_OPS_OID 1978
39
+ #define INT8_BTREE_OPS_OID 3124
40
+ #define NUMERIC_BTREE_OPS_OID 3125
41
+ #define OID_BTREE_OPS_OID 1981
42
+ #define TEXT_BTREE_OPS_OID 3126
43
+ #define TIMESTAMPTZ_BTREE_OPS_OID 3127
44
+ #define TIMESTAMP_BTREE_OPS_OID 3128
45
+ #define TEXT_BTREE_PATTERN_OPS_OID 4217
46
+ #define VARCHAR_BTREE_PATTERN_OPS_OID 4218
47
+ #define BPCHAR_BTREE_PATTERN_OPS_OID 4219
48
+
49
+ #endif /* PG_OPCLASS_D_H */
@@ -0,0 +1,102 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_operator.h
4
+ * definition of the "operator" system catalog (pg_operator)
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_operator.h
11
+ *
12
+ * NOTES
13
+ * The Catalog.pm module reads this file and derives schema
14
+ * information.
15
+ *
16
+ *-------------------------------------------------------------------------
17
+ */
18
+ #ifndef PG_OPERATOR_H
19
+ #define PG_OPERATOR_H
20
+
21
+ #include "catalog/genbki.h"
22
+ #include "catalog/objectaddress.h"
23
+ #include "catalog/pg_operator_d.h"
24
+ #include "nodes/pg_list.h"
25
+
26
+ /* ----------------
27
+ * pg_operator definition. cpp turns this into
28
+ * typedef struct FormData_pg_operator
29
+ * ----------------
30
+ */
31
+ CATALOG(pg_operator,2617,OperatorRelationId)
32
+ {
33
+ Oid oid; /* oid */
34
+
35
+ /* name of operator */
36
+ NameData oprname;
37
+
38
+ /* OID of namespace containing this oper */
39
+ Oid oprnamespace BKI_DEFAULT(PGNSP);
40
+
41
+ /* operator owner */
42
+ Oid oprowner BKI_DEFAULT(PGUID);
43
+
44
+ /* 'l', 'r', or 'b' */
45
+ char oprkind BKI_DEFAULT(b);
46
+
47
+ /* can be used in merge join? */
48
+ bool oprcanmerge BKI_DEFAULT(f);
49
+
50
+ /* can be used in hash join? */
51
+ bool oprcanhash BKI_DEFAULT(f);
52
+
53
+ /* left arg type, or 0 if 'l' oprkind */
54
+ Oid oprleft BKI_LOOKUP(pg_type);
55
+
56
+ /* right arg type, or 0 if 'r' oprkind */
57
+ Oid oprright BKI_LOOKUP(pg_type);
58
+
59
+ /* result datatype */
60
+ Oid oprresult BKI_LOOKUP(pg_type);
61
+
62
+ /* OID of commutator oper, or 0 if none */
63
+ Oid oprcom BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
64
+
65
+ /* OID of negator oper, or 0 if none */
66
+ Oid oprnegate BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
67
+
68
+ /* OID of underlying function */
69
+ regproc oprcode BKI_LOOKUP(pg_proc);
70
+
71
+ /* OID of restriction estimator, or 0 */
72
+ regproc oprrest BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
73
+
74
+ /* OID of join estimator, or 0 */
75
+ regproc oprjoin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
76
+ } FormData_pg_operator;
77
+
78
+ /* ----------------
79
+ * Form_pg_operator corresponds to a pointer to a tuple with
80
+ * the format of pg_operator relation.
81
+ * ----------------
82
+ */
83
+ typedef FormData_pg_operator *Form_pg_operator;
84
+
85
+
86
+ extern ObjectAddress OperatorCreate(const char *operatorName,
87
+ Oid operatorNamespace,
88
+ Oid leftTypeId,
89
+ Oid rightTypeId,
90
+ Oid procedureId,
91
+ List *commutatorName,
92
+ List *negatorName,
93
+ Oid restrictionId,
94
+ Oid joinId,
95
+ bool canMerge,
96
+ bool canHash);
97
+
98
+ extern ObjectAddress makeOperatorDependencies(HeapTuple tuple, bool isUpdate);
99
+
100
+ extern void OperatorUpd(Oid baseId, Oid commId, Oid negId, bool isDelete);
101
+
102
+ #endif /* PG_OPERATOR_H */
@@ -0,0 +1,106 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * pg_operator_d.h
4
+ * Macro definitions for pg_operator
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_OPERATOR_D_H
19
+ #define PG_OPERATOR_D_H
20
+
21
+ #define OperatorRelationId 2617
22
+
23
+ #define Anum_pg_operator_oid 1
24
+ #define Anum_pg_operator_oprname 2
25
+ #define Anum_pg_operator_oprnamespace 3
26
+ #define Anum_pg_operator_oprowner 4
27
+ #define Anum_pg_operator_oprkind 5
28
+ #define Anum_pg_operator_oprcanmerge 6
29
+ #define Anum_pg_operator_oprcanhash 7
30
+ #define Anum_pg_operator_oprleft 8
31
+ #define Anum_pg_operator_oprright 9
32
+ #define Anum_pg_operator_oprresult 10
33
+ #define Anum_pg_operator_oprcom 11
34
+ #define Anum_pg_operator_oprnegate 12
35
+ #define Anum_pg_operator_oprcode 13
36
+ #define Anum_pg_operator_oprrest 14
37
+ #define Anum_pg_operator_oprjoin 15
38
+
39
+ #define Natts_pg_operator 15
40
+
41
+ #define BooleanNotEqualOperator 85
42
+ #define BooleanEqualOperator 91
43
+ #define Int4EqualOperator 96
44
+ #define Int4LessOperator 97
45
+ #define TextEqualOperator 98
46
+ #define NameEqualTextOperator 254
47
+ #define NameLessTextOperator 255
48
+ #define NameGreaterEqualTextOperator 257
49
+ #define TIDEqualOperator 387
50
+ #define TIDLessOperator 2799
51
+ #define Int8LessOperator 412
52
+ #define OID_NAME_REGEXEQ_OP 639
53
+ #define OID_TEXT_REGEXEQ_OP 641
54
+ #define TextLessOperator 664
55
+ #define TextGreaterEqualOperator 667
56
+ #define Float8LessOperator 672
57
+ #define BpcharEqualOperator 1054
58
+ #define OID_BPCHAR_REGEXEQ_OP 1055
59
+ #define BpcharLessOperator 1058
60
+ #define BpcharGreaterEqualOperator 1061
61
+ #define ARRAY_EQ_OP 1070
62
+ #define ARRAY_LT_OP 1072
63
+ #define ARRAY_GT_OP 1073
64
+ #define OID_NAME_LIKE_OP 1207
65
+ #define OID_TEXT_LIKE_OP 1209
66
+ #define OID_BPCHAR_LIKE_OP 1211
67
+ #define OID_NAME_ICREGEXEQ_OP 1226
68
+ #define OID_TEXT_ICREGEXEQ_OP 1228
69
+ #define OID_BPCHAR_ICREGEXEQ_OP 1234
70
+ #define OID_INET_SUB_OP 931
71
+ #define OID_INET_SUBEQ_OP 932
72
+ #define OID_INET_SUP_OP 933
73
+ #define OID_INET_SUPEQ_OP 934
74
+ #define OID_INET_OVERLAP_OP 3552
75
+ #define OID_NAME_ICLIKE_OP 1625
76
+ #define OID_TEXT_ICLIKE_OP 1627
77
+ #define OID_BPCHAR_ICLIKE_OP 1629
78
+ #define ByteaEqualOperator 1955
79
+ #define ByteaLessOperator 1957
80
+ #define ByteaGreaterEqualOperator 1960
81
+ #define OID_BYTEA_LIKE_OP 2016
82
+ #define TextPatternLessOperator 2314
83
+ #define TextPatternGreaterEqualOperator 2317
84
+ #define BpcharPatternLessOperator 2326
85
+ #define BpcharPatternGreaterEqualOperator 2329
86
+ #define OID_ARRAY_OVERLAP_OP 2750
87
+ #define OID_ARRAY_CONTAINS_OP 2751
88
+ #define OID_ARRAY_CONTAINED_OP 2752
89
+ #define RECORD_EQ_OP 2988
90
+ #define RECORD_LT_OP 2990
91
+ #define RECORD_GT_OP 2991
92
+ #define OID_RANGE_LESS_OP 3884
93
+ #define OID_RANGE_LESS_EQUAL_OP 3885
94
+ #define OID_RANGE_GREATER_EQUAL_OP 3886
95
+ #define OID_RANGE_GREATER_OP 3887
96
+ #define OID_RANGE_OVERLAP_OP 3888
97
+ #define OID_RANGE_CONTAINS_ELEM_OP 3889
98
+ #define OID_RANGE_CONTAINS_OP 3890
99
+ #define OID_RANGE_ELEM_CONTAINED_OP 3891
100
+ #define OID_RANGE_CONTAINED_OP 3892
101
+ #define OID_RANGE_LEFT_OP 3893
102
+ #define OID_RANGE_RIGHT_OP 3894
103
+ #define OID_RANGE_OVERLAPS_LEFT_OP 3895
104
+ #define OID_RANGE_OVERLAPS_RIGHT_OP 3896
105
+
106
+ #endif /* PG_OPERATOR_D_H */