pg_query 1.1.0 → 2.0.1

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 (478) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +163 -52
  3. data/README.md +80 -69
  4. data/Rakefile +82 -1
  5. data/ext/pg_query/extconf.rb +3 -31
  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 +988 -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 +9953 -0
  381. data/ext/pg_query/pg_query_fingerprint.c +292 -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 +437 -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 +16 -1117
  460. data/lib/pg_query/filter_columns.rb +86 -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 -200
  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 +64 -43
  471. data/lib/pg_query/version.rb +2 -2
  472. metadata +473 -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/legacy_parsetree.rb +0 -109
  478. data/lib/pg_query/node_types.rb +0 -284
@@ -1,10 +0,0 @@
1
- #ifndef PG_QUERY_RUBY_H
2
- #define PG_QUERY_RUBY_H
3
-
4
- #include "pg_query.h"
5
-
6
- #include <ruby.h>
7
-
8
- void Init_pg_query(void);
9
-
10
- #endif
@@ -1,16 +0,0 @@
1
- class PgQuery
2
- def deep_dup(obj)
3
- case obj
4
- when Hash
5
- obj.each_with_object(obj.dup) do |(key, value), hash|
6
- hash[deep_dup(key)] = deep_dup(value)
7
- end
8
- when Array
9
- obj.map { |it| deep_dup(it) }
10
- when NilClass, FalseClass, TrueClass, Symbol, Numeric
11
- obj # Can't be duplicated
12
- else
13
- obj.dup
14
- end
15
- end
16
- end
@@ -1,42 +0,0 @@
1
- class PgQuery
2
- module Deparse
3
- module AlterTable
4
- # Returns a list of strings of length one or length two. The first string
5
- # will be placed before the column name and the second, if present, will be
6
- # placed after.
7
- #
8
- # If node['subtype'] is the integer 4 (AT_DropNotNull),
9
- # then return value of this method will be:
10
- #
11
- # ['ALTER COLUMN', 'DROP NOT NULL']
12
- #
13
- # Which will be composed into the SQL as:
14
- #
15
- # ALTER COLUMN {column_name} DROP NOT NULL
16
- #
17
- def self.commands(node)
18
- action = ALTER_TABLE_TYPES_MAPPING[node['subtype']] || raise(format("Can't deparse: %s", node.inspect))
19
- PgQuery::Deparse.instance_exec(node, &action)
20
- end
21
-
22
- ALTER_TABLE_TYPES_MAPPING = {
23
- AT_AddColumn => ->(_node) { ['ADD COLUMN'] },
24
- AT_ColumnDefault => ->(node) { ['ALTER COLUMN', node['def'] ? 'SET DEFAULT' : 'DROP DEFAULT'] },
25
- AT_DropNotNull => ->(_node) { ['ALTER COLUMN', 'DROP NOT NULL'] },
26
- AT_SetNotNull => ->(_node) { ['ALTER COLUMN', 'SET NOT NULL'] },
27
- AT_SetStatistics => ->(_node) { ['ALTER COLUMN', 'SET STATISTICS'] },
28
- AT_SetOptions => ->(_node) { ['ALTER COLUMN', 'SET'] },
29
- AT_ResetOptions => ->(_node) { ['ALTER COLUMN', 'RESET'] },
30
- AT_SetStorage => ->(_node) { ['ALTER COLUMN', 'SET STORAGE'] },
31
- AT_DropColumn => ->(_node) { ['DROP'] },
32
- AT_AddIndex => ->(_node) { ['ADD INDEX'] },
33
- AT_AddConstraint => ->(_node) { ['ADD'] },
34
- AT_AlterConstraint => ->(_node) { ['ALTER CONSTRAINT'] },
35
- AT_ValidateConstraint => ->(_node) { ['VALIDATE CONSTRAINT'] },
36
- AT_DropConstraint => ->(_node) { ['DROP CONSTRAINT'] },
37
- AT_AlterColumnType => ->(_node) { ['ALTER COLUMN', 'TYPE'] },
38
- AT_AlterColumnGenericOptions => ->(_node) { ['ALTER COLUMN', 'OPTIONS'] }
39
- }.freeze
40
- end
41
- end
42
- end
@@ -1,105 +0,0 @@
1
- class PgQuery
2
- module Deparse
3
- module Interval
4
- # A type called 'interval hour to minute' is stored in a compressed way by
5
- # simplifying 'hour to minute' to a simple integer. This integer is computed
6
- # by looking up the arbitrary number (always a power of two) for 'hour' and
7
- # the one for 'minute' and XORing them together.
8
- #
9
- # For example, when parsing "interval hour to minute":
10
- #
11
- # HOUR_MASK = 10
12
- # MINUTE_MASK = 11
13
- # mask = (1 << 10) | (1 << 11)
14
- # mask = 1024 | 2048
15
- # mask = (010000000000
16
- # xor
17
- # 100000000000)
18
- # mask = 110000000000
19
- # mask = 3072
20
- #
21
- # Postgres will store this type as 'interval,3072'
22
- # We deparse it by simply reversing that process.
23
- #
24
- def self.from_int(int)
25
- SQL_BY_MASK[int]
26
- end
27
-
28
- # From src/include/utils/datetime.h
29
- # The number is the power of 2 used for the mask.
30
- MASKS = {
31
- 0 => 'RESERV',
32
- 1 => 'MONTH',
33
- 2 => 'YEAR',
34
- 3 => 'DAY',
35
- 4 => 'JULIAN',
36
- 5 => 'TZ',
37
- 6 => 'DTZ',
38
- 7 => 'DYNTZ',
39
- 8 => 'IGNORE_DTF',
40
- 9 => 'AMPM',
41
- 10 => 'HOUR',
42
- 11 => 'MINUTE',
43
- 12 => 'SECOND',
44
- 13 => 'MILLISECOND',
45
- 14 => 'MICROSECOND',
46
- 15 => 'DOY',
47
- 16 => 'DOW',
48
- 17 => 'UNITS',
49
- 18 => 'ADBC',
50
- 19 => 'AGO',
51
- 20 => 'ABS_BEFORE',
52
- 21 => 'ABS_AFTER',
53
- 22 => 'ISODATE',
54
- 23 => 'ISOTIME',
55
- 24 => 'WEEK',
56
- 25 => 'DECADE',
57
- 26 => 'CENTURY',
58
- 27 => 'MILLENNIUM',
59
- 28 => 'DTZMOD'
60
- }.freeze
61
- KEYS = MASKS.invert
62
-
63
- # Postgres stores the interval 'day second' as 'day hour minute second' so
64
- # we need to reconstruct the sql with only the largest and smallest time
65
- # values. Since the rules for this are hardcoded in the grammar (and the
66
- # above list is not sorted in any sensible way) it makes sense to hardcode
67
- # the patterns here, too.
68
- #
69
- # This hash takes the form:
70
- #
71
- # { (1 << 1) | (1 << 2) => 'year to month' }
72
- #
73
- # Which is:
74
- #
75
- # { 6 => 'year to month' }
76
- #
77
- SQL_BY_MASK = {
78
- (1 << KEYS['YEAR']) => %w[year],
79
- (1 << KEYS['MONTH']) => %w[month],
80
- (1 << KEYS['DAY']) => %w[day],
81
- (1 << KEYS['HOUR']) => %w[hour],
82
- (1 << KEYS['MINUTE']) => %w[minute],
83
- (1 << KEYS['SECOND']) => %w[second],
84
- (1 << KEYS['YEAR'] |
85
- 1 << KEYS['MONTH']) => %w[year month],
86
- (1 << KEYS['DAY'] |
87
- 1 << KEYS['HOUR']) => %w[day hour],
88
- (1 << KEYS['DAY'] |
89
- 1 << KEYS['HOUR'] |
90
- 1 << KEYS['MINUTE']) => %w[day minute],
91
- (1 << KEYS['DAY'] |
92
- 1 << KEYS['HOUR'] |
93
- 1 << KEYS['MINUTE'] |
94
- 1 << KEYS['SECOND']) => %w[day second],
95
- (1 << KEYS['HOUR'] |
96
- 1 << KEYS['MINUTE']) => %w[hour minute],
97
- (1 << KEYS['HOUR'] |
98
- 1 << KEYS['MINUTE'] |
99
- 1 << KEYS['SECOND']) => %w[hour second],
100
- (1 << KEYS['MINUTE'] |
101
- 1 << KEYS['SECOND']) => %w[minute second]
102
- }.freeze
103
- end
104
- end
105
- end
@@ -1,109 +0,0 @@
1
- class PgQuery
2
- # Legacy parsetree from 0.7 and earlier versions - migrate to "tree" format if you can
3
- def parsetree # rubocop:disable Metrics/CyclomaticComplexity
4
- @parsetree ||= transform_nodes!(@tree) do |raw_node|
5
- node = raw_node.keys[0] == RAW_STMT ? raw_node.delete(RAW_STMT)[STMT_FIELD] : raw_node
6
-
7
- key = node.keys[0]
8
- new_key = LEGACY_NODE_NAMES[key] || key.upcase
9
-
10
- case key
11
- when A_CONST
12
- transform_parsetree_a_const(node)
13
- when A_EXPR
14
- node[A_EXPR]['name'] = transform_string_list(node[A_EXPR]['name'])
15
- node[key].delete('kind')
16
- when COLUMN_REF
17
- node[COLUMN_REF]['fields'] = transform_string_list(node[COLUMN_REF]['fields'])
18
- when CREATE_FUNCTION_STMT
19
- node[CREATE_FUNCTION_STMT]['funcname'] = transform_string_list(node[CREATE_FUNCTION_STMT]['funcname'])
20
- when CREATE_TRIG_STMT
21
- node[CREATE_TRIG_STMT]['funcname'] = transform_string_list(node[CREATE_TRIG_STMT]['funcname'])
22
- when CONSTRAINT
23
- node[CONSTRAINT]['contype'] = LEGACY_CONSTRAINT_TYPES[node[CONSTRAINT]['contype']]
24
- node[CONSTRAINT]['keys'] = transform_string_list(node[CONSTRAINT]['keys'])
25
- when COPY_STMT
26
- node[COPY_STMT]['attlist'] = transform_string_list(node[COPY_STMT]['attlist'])
27
- when DEF_ELEM
28
- node[DEF_ELEM]['arg'] = node[DEF_ELEM]['arg'][INTEGER]['ival'] if node[DEF_ELEM]['arg'].is_a?(Hash) && node[DEF_ELEM]['arg'].keys[0] == INTEGER
29
- node[DEF_ELEM]['arg'] = node[DEF_ELEM]['arg'][STRING]['str'] if node[DEF_ELEM]['arg'].is_a?(Hash) && node[DEF_ELEM]['arg'].keys[0] == STRING
30
- node[DEF_ELEM]['arg'] = transform_string_list(node[DEF_ELEM]['arg']) if node[DEF_ELEM]['arg'].is_a?(Array)
31
- when DROP_STMT
32
- node[DROP_STMT]['objects'].each_with_index do |obj, idx|
33
- node[DROP_STMT]['objects'][idx] = transform_string_list(obj)
34
- end
35
- when FUNC_CALL
36
- node[FUNC_CALL]['funcname'] = transform_string_list(node[FUNC_CALL]['funcname'])
37
- when GRANT_ROLE_STMT
38
- node[GRANT_ROLE_STMT]['grantee_roles'] = transform_string_list(node[GRANT_ROLE_STMT]['grantee_roles'])
39
- when RANGE_VAR
40
- node[RANGE_VAR]['inhOpt'] = node[RANGE_VAR].delete('inh') ? 2 : 0
41
- when TYPE_NAME
42
- node[TYPE_NAME]['names'] = transform_string_list(node[TYPE_NAME]['names'])
43
- end
44
-
45
- raw_node[new_key] = node.delete(key)
46
- end
47
- end
48
-
49
- private
50
-
51
- LEGACY_NODE_NAMES = {
52
- A_EXPR => 'AEXPR',
53
- SELECT_STMT => 'SELECT',
54
- ALTER_TABLE_CMD => 'ALTER TABLE CMD',
55
- ALTER_TABLE_STMT => 'ALTER TABLE',
56
- CHECK_POINT_STMT => 'CHECKPOINT',
57
- CREATE_SCHEMA_STMT => 'CREATE SCHEMA',
58
- CREATE_TABLE_AS_STMT => 'CREATE TABLE AS',
59
- COPY_STMT => 'COPY',
60
- DELETE_STMT => 'DELETE FROM',
61
- DROP_STMT => 'DROP',
62
- INSERT_STMT => 'INSERT INTO',
63
- EXPLAIN_STMT => 'EXPLAIN',
64
- LOCK_STMT => 'LOCK',
65
- TRANSACTION_STMT => 'TRANSACTION',
66
- TRUNCATE_STMT => 'TRUNCATE',
67
- UPDATE_STMT => 'UPDATE',
68
- VACUUM_STMT => 'VACUUM',
69
- VARIABLE_SET_STMT => 'SET',
70
- VARIABLE_SHOW_STMT => 'SHOW'
71
- # All others default to simply upper-casing the input name
72
- }.freeze
73
-
74
- LEGACY_CONSTRAINT_TYPES = {
75
- CONSTR_TYPE_PRIMARY => 'PRIMARY_KEY'
76
- }.freeze
77
-
78
- def transform_parsetree_a_const(node)
79
- type_key = node[A_CONST]['val'].keys[0]
80
-
81
- case type_key
82
- when INTEGER
83
- node[A_CONST]['type'] = 'integer'
84
- node[A_CONST]['val'] = node[A_CONST]['val'][INTEGER]['ival']
85
- when STRING
86
- node[A_CONST]['type'] = 'string'
87
- node[A_CONST]['val'] = node[A_CONST]['val'][STRING]['str']
88
- when FLOAT
89
- node[A_CONST]['type'] = 'float'
90
- node[A_CONST]['val'] = node[A_CONST]['val'][FLOAT]['str'].to_f
91
- when BIT_STRING
92
- node[A_CONST]['type'] = 'bitstring'
93
- node[A_CONST]['val'] = node[A_CONST]['val'][BIT_STRING]['str']
94
- when NULL
95
- node[A_CONST]['type'] = 'null'
96
- node[A_CONST]['val'] = nil
97
- end
98
- end
99
-
100
- def transform_string_list(list)
101
- return if list.nil?
102
-
103
- if list.is_a?(Array)
104
- list.map { |node| node.keys[0] == STRING ? node[STRING]['str'] : node }
105
- else
106
- [list.keys[0] == STRING ? list[STRING]['str'] : list]
107
- end
108
- end
109
- end
@@ -1,284 +0,0 @@
1
- # rubocop:disable Style/ConstantName
2
- class PgQuery
3
- # NODE TYPES
4
-
5
- A_ARRAY_EXPR = 'A_ArrayExpr'.freeze
6
- A_CONST = 'A_Const'.freeze
7
- A_EXPR = 'A_Expr'.freeze
8
- A_INDICES = 'A_Indices'.freeze
9
- A_INDIRECTION = 'A_Indirection'.freeze
10
- A_STAR = 'A_Star'.freeze
11
- ACCESS_PRIV = 'AccessPriv'.freeze
12
- ALIAS = 'Alias'.freeze
13
- ALTER_TABLE_CMD = 'AlterTableCmd'.freeze
14
- ALTER_TABLE_STMT = 'AlterTableStmt'.freeze
15
- BIT_STRING = 'BitString'.freeze
16
- BOOL_EXPR = 'BoolExpr'.freeze
17
- BOOLEAN_TEST = 'BooleanTest'.freeze
18
- CASE_EXPR = 'CaseExpr'.freeze
19
- CASE_WHEN = 'CaseWhen'.freeze
20
- CHECK_POINT_STMT = 'CheckPointStmt'.freeze
21
- CLOSE_PORTAL_STMT = 'ClosePortalStmt'.freeze
22
- COALESCE_EXPR = 'CoalesceExpr'.freeze
23
- COLUMN_DEF = 'ColumnDef'.freeze
24
- COLUMN_REF = 'ColumnRef'.freeze
25
- COMMON_TABLE_EXPR = 'CommonTableExpr'.freeze
26
- CONSTRAINT = 'Constraint'.freeze
27
- COPY_STMT = 'CopyStmt'.freeze
28
- CREATE_FUNCTION_STMT = 'CreateFunctionStmt'.freeze
29
- CREATE_SCHEMA_STMT = 'CreateSchemaStmt'.freeze
30
- CREATE_STMT = 'CreateStmt'.freeze
31
- CREATE_TABLE_AS_STMT = 'CreateTableAsStmt'.freeze
32
- CREATE_TRIG_STMT = 'CreateTrigStmt'.freeze
33
- DEALLOCATE_STMT = 'DeallocateStmt'.freeze
34
- DECLARE_CURSOR_STMT = 'DeclareCursorStmt'.freeze
35
- DEF_ELEM = 'DefElem'.freeze
36
- DELETE_STMT = 'DeleteStmt'.freeze
37
- DO_STMT = 'DoStmt'.freeze
38
- DROP_STMT = 'DropStmt'.freeze
39
- EXECUTE_STMT = 'ExecuteStmt'.freeze
40
- EXPLAIN_STMT = 'ExplainStmt'.freeze
41
- FETCH_STMT = 'FetchStmt'.freeze
42
- FLOAT = 'Float'.freeze
43
- FUNC_CALL = 'FuncCall'.freeze
44
- FUNCTION_PARAMETER = 'FunctionParameter'.freeze
45
- GRANT_ROLE_STMT = 'GrantRoleStmt'.freeze
46
- GRANT_STMT = 'GrantStmt'.freeze
47
- INDEX_ELEM = 'IndexElem'.freeze
48
- INDEX_STMT = 'IndexStmt'.freeze
49
- INSERT_STMT = 'InsertStmt'.freeze
50
- INT_LIST = 'IntList'.freeze
51
- INTEGER = 'Integer'.freeze
52
- INTO_CLAUSE = 'IntoClause'.freeze
53
- JOIN_EXPR = 'JoinExpr'.freeze
54
- LOCK_STMT = 'LockStmt'.freeze
55
- LOCKING_CLAUSE = 'LockingClause'.freeze
56
- NULL = 'Null'.freeze
57
- NULL_TEST = 'NullTest'.freeze
58
- OID_LIST = 'OidList'.freeze
59
- PARAM_REF = 'ParamRef'.freeze
60
- PREPARE_STMT = 'PrepareStmt'.freeze
61
- RANGE_FUNCTION = 'RangeFunction'.freeze
62
- RANGE_SUBSELECT = 'RangeSubselect'.freeze
63
- RANGE_VAR = 'RangeVar'.freeze
64
- RAW_STMT = 'RawStmt'.freeze
65
- REFRESH_MAT_VIEW_STMT = 'RefreshMatViewStmt'.freeze
66
- RENAME_STMT = 'RenameStmt'.freeze
67
- RES_TARGET = 'ResTarget'.freeze
68
- ROLE_SPEC = 'RoleSpec'.freeze
69
- ROW_EXPR = 'RowExpr'.freeze
70
- RULE_STMT = 'RuleStmt'.freeze
71
- SELECT_STMT = 'SelectStmt'.freeze
72
- SET_TO_DEFAULT = 'SetToDefault'.freeze
73
- SORT_BY = 'SortBy'.freeze
74
- SQL_VALUE_FUNCTION = 'SQLValueFunction'.freeze
75
- STRING = 'String'.freeze
76
- SUB_LINK = 'SubLink'.freeze
77
- TRANSACTION_STMT = 'TransactionStmt'.freeze
78
- TRUNCATE_STMT = 'TruncateStmt'.freeze
79
- TYPE_CAST = 'TypeCast'.freeze
80
- TYPE_NAME = 'TypeName'.freeze
81
- UPDATE_STMT = 'UpdateStmt'.freeze
82
- VACUUM_STMT = 'VacuumStmt'.freeze
83
- VARIABLE_SET_STMT = 'VariableSetStmt'.freeze
84
- VARIABLE_SHOW_STMT = 'VariableShowStmt'.freeze
85
- VIEW_STMT = 'ViewStmt'.freeze
86
- WINDOW_DEF = 'WindowDef'.freeze
87
- WITH_CLAUSE = 'WithClause'.freeze
88
-
89
- # FIELDS
90
-
91
- COLS_FIELD = 'cols'.freeze
92
- FROM_CLAUSE_FIELD = 'fromClause'.freeze
93
- RELPERSISTENCE_FIELD = 'relpersistence'.freeze
94
- REXPR_FIELD = 'rexpr'.freeze
95
- STMT_FIELD = 'stmt'.freeze
96
- TARGET_LIST_FIELD = 'targetList'.freeze
97
- VALUES_LISTS_FIELD = 'valuesLists'.freeze
98
-
99
- # ENUMS
100
-
101
- CONSTR_TYPE_NULL = 0 # not standard SQL, but a lot of people expect it
102
- CONSTR_TYPE_NOTNULL = 1
103
- CONSTR_TYPE_DEFAULT = 2
104
- CONSTR_TYPE_IDENTITY = 3
105
- CONSTR_TYPE_CHECK = 4
106
- CONSTR_TYPE_PRIMARY = 5
107
- CONSTR_TYPE_UNIQUE = 6
108
- CONSTR_TYPE_EXCLUSION = 7
109
- CONSTR_TYPE_FOREIGN = 8
110
- CONSTR_TYPE_ATTR_DEFERRABLE = 9 # attributes for previous constraint node
111
- CONSTR_TYPE_ATTR_NOT_DEFERRABLE = 10
112
- CONSTR_TYPE_ATTR_DEFERRED = 11
113
- CONSTR_TYPE_ATTR_IMMEDIATE = 12
114
-
115
- OBJECT_TYPE_ACCESS_METHOD = 0
116
- OBJECT_TYPE_AGGREGATE = 1
117
- OBJECT_TYPE_AMOP = 2
118
- OBJECT_TYPE_AMPROC = 3
119
- OBJECT_TYPE_ATTRIBUTE = 4
120
- OBJECT_TYPE_CAST = 5
121
- OBJECT_TYPE_COLUMN = 6
122
- OBJECT_TYPE_COLLATION = 7
123
- OBJECT_TYPE_CONVERSION = 8
124
- OBJECT_TYPE_DATABASE = 9
125
- OBJECT_TYPE_DEFAULT = 10
126
- OBJECT_TYPE_DEFACL = 11
127
- OBJECT_TYPE_DOMAIN = 12
128
- OBJECT_TYPE_DOMCONSTRAINT = 13
129
- OBJECT_TYPE_EVENT_TRIGGER = 14
130
- OBJECT_TYPE_EXTENSION = 15
131
- OBJECT_TYPE_FDW = 16
132
- OBJECT_TYPE_FOREIGN_SERVER = 17
133
- OBJECT_TYPE_FOREIGN_TABLE = 18
134
- OBJECT_TYPE_FUNCTION = 19
135
- OBJECT_TYPE_INDEX = 20
136
- OBJECT_TYPE_LANGUAGE = 21
137
- OBJECT_TYPE_LARGEOBJECT = 22
138
- OBJECT_TYPE_MATVIEW = 23
139
- OBJECT_TYPE_OPCLASS = 24
140
- OBJECT_TYPE_OPERATOR = 25
141
- OBJECT_TYPE_OPFAMILY = 26
142
- OBJECT_TYPE_POLICY = 27
143
- OBJECT_TYPE_PUBLICATION = 28
144
- OBJECT_TYPE_PUBLICATION_REL = 29
145
- OBJECT_TYPE_ROLE = 30
146
- OBJECT_TYPE_RULE = 31
147
- OBJECT_TYPE_SCHEMA = 32
148
- OBJECT_TYPE_SEQUENCE = 33
149
- OBJECT_TYPE_SUBSCRIPTION = 34
150
- OBJECT_TYPE_STATISTIC_EXT = 35
151
- OBJECT_TYPE_TABCONSTRAINT = 36
152
- OBJECT_TYPE_TABLE = 37
153
- OBJECT_TYPE_TABLESPACE = 38
154
- OBJECT_TYPE_TRANSFORM = 39
155
- OBJECT_TYPE_TRIGGER = 40
156
- OBJECT_TYPE_TSCONFIGURATION = 41
157
- OBJECT_TYPE_TSDICTIONARY = 42
158
- OBJECT_TYPE_TSPARSER = 43
159
- OBJECT_TYPE_TSTEMPLATE = 44
160
- OBJECT_TYPE_TYPE = 45
161
- OBJECT_TYPE_USER_MAPPING = 46
162
- OBJECT_TYPE_VIEW = 47
163
-
164
- BOOL_EXPR_AND = 0
165
- BOOL_EXPR_OR = 1
166
- BOOL_EXPR_NOT = 2
167
-
168
- BOOLEAN_TEST_TRUE = 0
169
- BOOLEAN_TEST_NOT_TRUE = 1
170
- BOOLEAN_TEST_FALSE = 2
171
- BOOLEAN_TEST_NOT_FALSE = 3
172
- BOOLEAN_TEST_UNKNOWN = 4
173
- BOOLEAN_TEST_NOT_UNKNOWN = 5
174
-
175
- AEXPR_OP = 0 # normal operator
176
- AEXPR_OP_ANY = 1 # scalar op ANY (array)
177
- AEXPR_OP_ALL = 2 # scalar op ALL (array)
178
- AEXPR_DISTINCT = 3 # IS DISTINCT FROM - name must be "="
179
- AEXPR_NOT_DISTINCT = 4 # IS NOT DISTINCT FROM - name must be "="
180
- AEXPR_NULLIF = 5 # NULLIF - name must be "="
181
- AEXPR_OF = 6 # IS [NOT] OF - name must be "=" or "<>"
182
- AEXPR_IN = 7 # [NOT] IN - name must be "=" or "<>"
183
- AEXPR_LIKE = 8 # [NOT] LIKE - name must be "~~" or "!~~"
184
- AEXPR_ILIKE = 9 # [NOT] ILIKE - name must be "~~*" or "!~~*"
185
- AEXPR_SIMILAR = 10 # [NOT] SIMILAR - name must be "~" or "!~"
186
- AEXPR_BETWEEN = 11 # name must be "BETWEEN"
187
- AEXPR_NOT_BETWEEN = 12 # name must be "NOT BETWEEN"
188
- AEXPR_BETWEEN_SYM = 13 # name must be "BETWEEN SYMMETRIC"
189
- AEXPR_NOT_BETWEEN_SYM = 14 # name must be "NOT BETWEEN SYMMETRIC"
190
- AEXPR_PAREN = 15 # nameless dummy node for parentheses
191
-
192
- TRANS_STMT_BEGIN = 0
193
- TRANS_STMT_START = 1 # semantically identical to BEGIN
194
- TRANS_STMT_COMMIT = 2
195
- TRANS_STMT_ROLLBACK = 3
196
- TRANS_STMT_SAVEPOINT = 4
197
- TRANS_STMT_RELEASE = 5
198
- TRANS_STMT_ROLLBACK_TO = 6
199
- TRANS_STMT_PREPARE = 7
200
- TRANS_STMT_COMMIT_PREPARED = 8
201
- TRANS_STMT_ROLLBACK_PREPARED = 9
202
-
203
- SUBLINK_TYPE_EXISTS = 0 # EXISTS(SELECT ...)
204
- SUBLINK_TYPE_ALL = 1 # (lefthand) op ALL (SELECT ...)
205
- SUBLINK_TYPE_ANY = 2 # (lefthand) op ANY (SELECT ...)
206
- SUBLINK_TYPE_ROWCOMPARE = 3 # (lefthand) op (SELECT ...)
207
- SUBLINK_TYPE_EXPR = 4 # (SELECT with single targetlist item ...)
208
- SUBLINK_TYPE_MULTIEXPR = 5 # (SELECT with multiple targetlist items ...)
209
- SUBLINK_TYPE_ARRAY = 6 # ARRAY(SELECT with single targetlist item ...)
210
- SUBLINK_TYPE_CTE = 7 # WITH query (never actually part of an expression), for SubPlans only
211
-
212
- LCS_NONE = 0 # no such clause - only used in PlanRowMark
213
- LCS_FORKEYSHARE = 1 # FOR KEY SHARE
214
- LCS_FORSHARE = 2 # FOR SHARE
215
- LCS_FORNOKEYUPDATE = 3 # FOR NO KEY UPDATE
216
- LCS_FORUPDATE = 4 # FOR UPDATE
217
-
218
- AT_AddColumn = 0 # add column
219
- AT_AddColumnRecurse = 1 # internal to commands/tablecmds.c
220
- AT_AddColumnToView = 2 # implicitly via CREATE OR REPLACE VIEW
221
- AT_ColumnDefault = 3 # alter column default
222
- AT_DropNotNull = 4 # alter column drop not null
223
- AT_SetNotNull = 5 # alter column set not null
224
- AT_SetStatistics = 6 # alter column set statistics
225
- AT_SetOptions = 7 # alter column set ( options )
226
- AT_ResetOptions = 8 # alter column reset ( options )
227
- AT_SetStorage = 9 # alter column set storage
228
- AT_DropColumn = 10 # drop column
229
- AT_DropColumnRecurse = 11 # internal to commands/tablecmds.c
230
- AT_AddIndex = 12 # add index
231
- AT_ReAddIndex = 13 # internal to commands/tablecmds.c
232
- AT_AddConstraint = 14 # add constraint
233
- AT_AddConstraintRecurse = 15 # internal to commands/tablecmds.c
234
- AT_ReAddConstraint = 16 # internal to commands/tablecmds.c
235
- AT_AlterConstraint = 17 # alter constraint
236
- AT_ValidateConstraint = 18 # validate constraint
237
- AT_ValidateConstraintRecurse = 19 # internal to commands/tablecmds.c
238
- AT_ProcessedConstraint = 20 # pre-processed add constraint (local in parser/parse_utilcmd.c)
239
- AT_AddIndexConstraint = 21 # add constraint using existing index
240
- AT_DropConstraint = 22 # drop constraint
241
- AT_DropConstraintRecurse = 23 # internal to commands/tablecmds.c
242
- AT_ReAddComment = 24 # internal to commands/tablecmds.c
243
- AT_AlterColumnType = 25 # alter column type
244
- AT_AlterColumnGenericOptions = 26 # alter column OPTIONS (...)
245
- AT_ChangeOwner = 27 # change owner
246
- AT_ClusterOn = 28 # CLUSTER ON
247
- AT_DropCluster = 29 # SET WITHOUT CLUSTER
248
- AT_SetLogged = 30 # SET LOGGED
249
- AT_SetUnLogged = 31 # SET UNLOGGED
250
- AT_AddOids = 32 # SET WITH OIDS
251
- AT_AddOidsRecurse = 33 # internal to commands/tablecmds.c
252
- AT_DropOids = 34 # SET WITHOUT OIDS
253
- AT_SetTableSpace = 35 # SET TABLESPACE
254
- AT_SetRelOptions = 36 # SET (...) -- AM specific parameters
255
- AT_ResetRelOptions = 37 # RESET (...) -- AM specific parameters
256
- AT_ReplaceRelOptions = 38 # replace reloption list in its entirety
257
- AT_EnableTrig = 39 # ENABLE TRIGGER name
258
- AT_EnableAlwaysTrig = 40 # ENABLE ALWAYS TRIGGER name
259
- AT_EnableReplicaTrig = 41 # ENABLE REPLICA TRIGGER name
260
- AT_DisableTrig = 42 # DISABLE TRIGGER name
261
- AT_EnableTrigAll = 43 # ENABLE TRIGGER ALL
262
- AT_DisableTrigAll = 44 # DISABLE TRIGGER ALL
263
- AT_EnableTrigUser = 45 # ENABLE TRIGGER USER
264
- AT_DisableTrigUser = 46 # DISABLE TRIGGER USER
265
- AT_EnableRule = 47 # ENABLE RULE name
266
- AT_EnableAlwaysRule = 48 # ENABLE ALWAYS RULE name
267
- AT_EnableReplicaRule = 49 # ENABLE REPLICA RULE name
268
- AT_DisableRule = 50 # DISABLE RULE name
269
- AT_AddInherit = 51 # INHERIT parent
270
- AT_DropInherit = 52 # NO INHERIT parent
271
- AT_AddOf = 53 # OF <type_name>
272
- AT_DropOf = 54 # NOT OF
273
- AT_ReplicaIdentity = 55 # REPLICA IDENTITY
274
- AT_EnableRowSecurity = 56 # ENABLE ROW SECURITY
275
- AT_DisableRowSecurity = 57 # DISABLE ROW SECURITY
276
- AT_ForceRowSecurity = 58 # FORCE ROW SECURITY
277
- AT_NoForceRowSecurity = 59 # NO FORCE ROW SECURITY
278
- AT_GenericOptions = 60 # OPTIONS (...)
279
- AT_AttachPartition = 61 # ATTACH PARTITION
280
- AT_DetachPartition = 62 # DETACH PARTITION
281
- AT_AddIdentity = 63 # ADD IDENTITY
282
- AT_SetIdentity = 64 # SET identity column options
283
- AT_DropIdentity = 65 # DROP IDENTITY
284
- end