pg_query 1.3.0 → 2.1.0

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 +237 -117
  3. data/README.md +84 -65
  4. data/Rakefile +71 -5
  5. data/ext/pg_query/extconf.rb +4 -38
  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 +1334 -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 +620 -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 +2523 -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 +257 -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 +357 -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 +2438 -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 +2879 -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 +1110 -0
  252. data/ext/pg_query/include/protobuf-c/protobuf-c.h +1110 -0
  253. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +10851 -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 +459 -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 +198 -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 +37643 -0
  380. data/ext/pg_query/pg_query_deparse.c +9965 -0
  381. data/ext/pg_query/pg_query_fingerprint.c +367 -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 +491 -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 +3667 -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 +1042 -0
  432. data/ext/pg_query/src_common_encnames.c +158 -0
  433. data/ext/pg_query/src_common_hashfn.c +420 -0
  434. data/ext/pg_query/src_common_keywords.c +39 -0
  435. data/ext/pg_query/src_common_kwlist_d.h +1081 -0
  436. data/ext/pg_query/src_common_kwlookup.c +91 -0
  437. data/ext/pg_query/src_common_psprintf.c +158 -0
  438. data/ext/pg_query/src_common_string.c +86 -0
  439. data/ext/pg_query/src_common_stringinfo.c +336 -0
  440. data/ext/pg_query/src_common_wchar.c +1651 -0
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1133 -0
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +877 -0
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +6533 -0
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +107 -0
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +123 -0
  446. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +671 -0
  447. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +255 -0
  448. data/ext/pg_query/src_port_erand48.c +127 -0
  449. data/ext/pg_query/src_port_pg_bitutils.c +246 -0
  450. data/ext/pg_query/src_port_pgsleep.c +69 -0
  451. data/ext/pg_query/src_port_pgstrcasecmp.c +83 -0
  452. data/ext/pg_query/src_port_qsort.c +240 -0
  453. data/ext/pg_query/src_port_random.c +31 -0
  454. data/ext/pg_query/src_port_snprintf.c +1449 -0
  455. data/ext/pg_query/src_port_strerror.c +324 -0
  456. data/ext/pg_query/src_port_strnlen.c +39 -0
  457. data/ext/pg_query/xxhash.c +43 -0
  458. data/lib/pg_query.rb +6 -4
  459. data/lib/pg_query/constants.rb +21 -0
  460. data/lib/pg_query/deparse.rb +15 -1673
  461. data/lib/pg_query/filter_columns.rb +88 -85
  462. data/lib/pg_query/fingerprint.rb +120 -87
  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 +274 -202
  466. data/lib/pg_query/parse_error.rb +1 -1
  467. data/lib/pg_query/pg_query_pb.rb +3213 -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 -297
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3d7de9759711a5e173db293a6120a15ee6ab1f0f4c5804e7f68aaba99ec8ff8
4
- data.tar.gz: 974e3fb0b709021a771803e52de2a8ca19309a679d81c1ee2a3deb105f297769
3
+ metadata.gz: ede23ff0f5d9af4599a7732fe624b3e2fba355ebb54bb6b88df3ef3932d7692a
4
+ data.tar.gz: d11105ea7323b8908dde6b328908190858d150f12a13a109d943ae3bf8af475b
5
5
  SHA512:
6
- metadata.gz: 3c13b36c353e6de6aaaba2b6428be7e21c933bf8ef159212cdd64ee4a765f8a664defe735f2f3e94ef6441f3403d7be6fbf19ca4d6b98e07a6b42a68a635238a
7
- data.tar.gz: cc742d80bdf934c89e1faa1dd6e6560764339ecabb6fe2af67fd219b2a71b4fb6756e649ddc237d995413a90c6b036d33fe8492eb91030d8a891f970ca10510a
6
+ metadata.gz: 37b3301df52b4743098ded9bbb69b05f4a360f7e1335386833ac619f4e5423f7b3c42a6506b3519c59ed3d0bb62e6e59ef04c8515fc9a3eb5daa95c53ab228e7
7
+ data.tar.gz: cd94026574593d6e78ac41e88c3378a6c46ea6d0869f8ddd9a200c367a969ff67695a780b0609518eafcff7a8dfaff015ce6408662eff7616cb866b46b52593a
data/CHANGELOG.md CHANGED
@@ -1,28 +1,123 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ * ...
6
+
7
+
8
+ ## 2.1.0 2021-07-04
9
+
10
+ * Update to libpg_query 13-2.0.6
11
+ - Update to Postgres 13.3 patch release
12
+ - Normalize: Don't touch "GROUP BY 1" and "ORDER BY 1" expressions, keep original text
13
+ - Fingerprint: Cache list item hashes to fingerprint complex queries faster
14
+ - Deparser: Emit the RangeVar catalogname if present
15
+ - Fix crash in pg_scan function when encountering backslash escapes
16
+ * Support extracting functions from a parsed query ([#147](https://github.com/pganalyze/pg_query/pull/147))
17
+ - Adds new `functions`, `ddl_functions` and `call_functions` methods
18
+ - Note that functions are identified by their name only, not their full type definition,
19
+ since raw query parsetrees don't contain sufficient data to identify the types of
20
+ arguments when functions are called
21
+ * Relax google-protobuf dependency ([#213](https://github.com/pganalyze/pg_query/pull/213))
22
+ * Update google-protobuf to 3.17.1 ([#212](https://github.com/pganalyze/pg_query/pull/212))
23
+ - google-protobuf 3.15.x has a bug that causes a seg fault in Ruby under
24
+ certain conditions (https://github.com/protocolbuffers/protobuf/pull/8639). Use
25
+ google-protobuf 3.17.1 instead.
26
+ * Use Protobuf definition for determining JSON field names
27
+ - Note you may see a breaking change if you were using `PgQuery::ParseResult.encode_json`
28
+ to map the protobuf result to JSON, since this now respects the intended JSON names
29
+ from the Proto3 definition (instead of the differently formatted Protobuf field names)
30
+ * Rakefile: Fix "rake clean" by using CLEAN.include instead of CLEAN.<<
31
+ * Find tables inside COALESCE/MIN/MAX functions, UPDATE FROM list
32
+ * Extconf: Add library include path using $INCFLAGS, list it first
33
+ - This ensures any system installed libpg_query gets considered after
34
+ the bundled libpg_query, avoiding errors where the wrong header files
35
+ are used.
36
+
37
+
38
+ ## 2.0.3 2021-04-05
39
+
40
+ * Update to libpg_query 13-2.0.4
41
+ - Normalize: Fix handling of two subsequent DefElem elements (avoids crash)
42
+ - Deparser: Fix crash in CopyStmt with HEADER or FREEZE inside WITH parens
43
+
44
+
45
+ ## 2.0.2 2021-03-31
46
+
47
+ * `COALESCE` arguments are now included in `#filter_columns`
48
+ * Improve error message for protobuf parse failures
49
+ * Extconf: Fix object path regexp
50
+ - This accidentally replaced `.c` in the wrong parts of the path in some cases,
51
+ causing build failures
52
+ * Update to libpg_query 13-2.0.2
53
+ - Fix ARM builds: Avoid dependency on cpuid.h header
54
+ - Simplify deparser of TableLikeClause
55
+ - Fix asprintf warnings by ensuring _GNU_SOURCE is set early enough
56
+
57
+
58
+ ## 2.0.1 2021-03-18
59
+
60
+ * Fix gemspec to correctly reference include files
61
+ - This would have shown as a build failure when using the published `2.0.0` gem
62
+
63
+
64
+ ## 2.0.0 2021-03-18
65
+
66
+ * Update to PostgreSQL 13 parser
67
+ * Update to libpg_query v2, and new Protobuf-based format
68
+ * WARNING: This is a breaking change if you are directly interacting with the
69
+ parsetree (helpers like `table` and such still work the same way)
70
+ * Use actual Ruby classes for parser result, instead of decoded JSON
71
+ * This is essentialy to enable easy and fast two-way communication with
72
+ the C library, and as a bonus makes for a better interaction on the Ruby
73
+ side, as we are handling actual objects instead of hashes and arrays.
74
+ * Use new deparser maintained directly in libpg_query
75
+ * This replaces the complete Ruby deparser with a new, more complete deparser
76
+ that is directly maintained in libpg_query. Further deparser improvements
77
+ should be directly contributed to [libpg_query]
78
+ * Tables helper: Return more details through `#tables_with_details` method
79
+ * This is renamed from the previously badly named `#tables_with_types`
80
+ method. Note that this change should not affect the output of the
81
+ primary `tables` helper.
82
+ * Replace on-demand libpg_query source download with bundled source code
83
+ * Its unnecessary to download the source on-demand, and makes this more
84
+ complex than it needs to be. Instead, introduce a new "update_source" rake
85
+ task that can be called to refresh the source for a specified revision.
86
+ * Re-implement smart truncation without requiring a special node type
87
+ * This ensures the `#truncate` method works with the new deparser, without
88
+ the C level code needing to know about it. We may add it in the C library
89
+ in the future for edge cases that can't be covered by this slightly
90
+ hack-ish approach, but for now this avoids unnecessary C library
91
+ deparser modifications with non-standard node types.
92
+ * Update Ruby fingerprinting to new fingerprint format and XXH3 hash
93
+ * Note that its recommended to use `PgQuery.fingerprint` for performance
94
+ reasons, but when the tree has been modified, it can be convenient to
95
+ run a Ruby-side fingerprint instead of the C-based one that is faster.
96
+
97
+
3
98
  ## 1.3.0 2020-12-28
4
99
 
5
100
  * Incorporate newer libpg_query updates in 10-1.0.3 and 10-1.0.4
6
101
  * Adds support for running on ARM
7
- * Fixes asprintf warning during builds
102
+ * Fixes an asprintf warning during builds
8
103
  * Updates to newer Postgres 10 patch release (10.15)
9
- * Deparsing improvements by [@emin100](https://github.com/emin100)
10
- * Add support for additional DROP statements (#147)
11
- * Fix CREATE TABLE AS - Support without TEMP, Add ON COMMIT (#149)
12
- * Empty target list support (#156)
13
- * UNION parentheses (#158)
14
- * OVERLAY keyword function (#161)
15
- * Array indirection (#162)
16
- * ARRAY functions (#163)
17
- * Correctly handle column names that need escaping in INSERT and UPDATE statements (#164)
18
- * INSERT INTO ON CONFLICT (#166)
19
- * LATERAL JOIN (#168)
20
- * UPDATE FROM clause (#170)
21
- * SELECT aggregate FILTER (#175)
22
- * INTERSECT operator (#176)
23
- * Deparsing: Improve handling of boolean type casts [@himanshu-pro](https://github.com/himanshu-pro) & [@emin100](https://github.com/emin100)
24
- * `tables` method: Find tables in the subquery of CREATE TABLE AS (#172) [@Tassosb](https://github.com/Tassosb)
25
- * Support Ruby 3.0, verify SHA256 checksum of downloaded libpg_query (#178) [@stanhu](https://github.com/stanhu)
104
+ * Deparsing improvements by [@emin100]
105
+ * Add support for additional DROP statements ([#147](https://github.com/pganalyze/pg_query/pull/147))
106
+ * Fix `CREATE TABLE AS` - Support without `TEMP`, Add `ON COMMIT` ([#149](https://github.com/pganalyze/pg_query/pull/149))
107
+ * Empty target list support ([#156](https://github.com/pganalyze/pg_query/pull/156))
108
+ * `UNION` parentheses ([#158](https://github.com/pganalyze/pg_query/pull/158))
109
+ * `OVERLAY` keyword function ([#161](https://github.com/pganalyze/pg_query/pull/161))
110
+ * Array indirection ([#162](https://github.com/pganalyze/pg_query/pull/162))
111
+ * `ARRAY` functions ([#163](https://github.com/pganalyze/pg_query/pull/163))
112
+ * Correctly handle column names that need escaping in `INSERT` and `UPDATE` statements ([#164](https://github.com/pganalyze/pg_query/pull/164))
113
+ * `INSERT INTO ON CONFLICT` ([#166](https://github.com/pganalyze/pg_query/pull/166))
114
+ * `LATERAL JOIN` ([#168](https://github.com/pganalyze/pg_query/pull/168))
115
+ * `UPDATE FROM` clause ([#170](https://github.com/pganalyze/pg_query/pull/170))
116
+ * `SELECT` aggregate `FILTER` ([#175](https://github.com/pganalyze/pg_query/pull/175))
117
+ * `INTERSECT` operator ([#176](https://github.com/pganalyze/pg_query/pull/176))
118
+ * Deparsing: Improve handling of boolean type casts [@himanshu-pro] & [@emin100]
119
+ * `tables` method: Find tables in the subquery of `CREATE TABLE AS` ([#172](https://github.com/pganalyze/pg_query/pull/172)) [@Tassosb]
120
+ * Support Ruby 3.0, verify SHA256 checksum of downloaded libpg_query ([#178](https://github.com/pganalyze/pg_query/pull/178)) [@stanhu]
26
121
  * Verify SHA256 checksum to guard against any malicious attempts to change the archive
27
122
  * Use `URI.open` to fix Ruby 3.0 support
28
123
 
@@ -38,69 +133,69 @@
38
133
 
39
134
  ## 1.1.1 2019-11-10
40
135
 
41
- * Deparsing improvements by [@emin100](https://github.com/emin100)
42
- * Deparse ILIKE, COLLATE and DISCARD (#133)
43
- * CREATE CAST (#136)
44
- * CREATE SCHEMA (#136)
45
- * UNION, UNION ALL and EXCEPT in SELECT queries (#136)
46
- * CREATE DOMAIN (#145)
47
- * Subquery indirection (#157)
48
- * Fix Type Cast Parentheses Problem (#152)
49
- * SELECT INTO (#151)
50
- * SET DEFAULT in INSERT INTO (#154)
51
- * REVOKE (#155)
52
- * PREPARE and EXECUTE (#148)
53
- * INSERT INTO ... RETURNING (#153)
54
- * Fix Alter .. RENAME SQL (#146)
55
- * Deparsing improvements by [@herwinw](https://github.com/herwinw)
56
- * Fix subquery in COPY in deparse (#112)
57
- * Function call indirection (#116)
58
- * Function without parameters (#117)
59
- * CREATE AGGREGATE
60
- * CREATE OPERATOR
61
- * CREATE TYPE
62
- * GRANT statements
63
- * DROP SCHEMA
64
- * Deparsing improvements by [@akiellor](https://github.com/akiellor)
65
- * Named window functions (#150)
66
- * Deparsing improvements by [@himanshu](https://github.com/himanshu)
67
- * Arguments in custom types (#143)
68
- * Use "double precision" instead of "double" type name (#139)
69
- * Use explicit -z flag to support OpenBSD tar (#134) [@sirn](https://github.com/sirn)
136
+ * Deparsing improvements by [@emin100]
137
+ * Deparse `ILIKE`, `COLLATE` and `DISCARD` ([#133](https://github.com/pganalyze/pg_query/pull/133))
138
+ * `CREATE CAST` ([#136](https://github.com/pganalyze/pg_query/pull/136))
139
+ * `CREATE SCHEMA` ([#136](https://github.com/pganalyze/pg_query/pull/136))
140
+ * `UNION`, `UNION ALL` and `EXCEPT` in `SELECT` queries ([#136](https://github.com/pganalyze/pg_query/pull/136))
141
+ * `CREATE DOMAIN` ([#145](https://github.com/pganalyze/pg_query/pull/145))
142
+ * Subquery indirection ([#157](https://github.com/pganalyze/pg_query/pull/157))
143
+ * Fix Type Cast Parentheses Problem ([#152](https://github.com/pganalyze/pg_query/pull/152))
144
+ * `SELECT INTO` ([#151](https://github.com/pganalyze/pg_query/pull/151))
145
+ * `SET DEFAULT` in `INSERT INTO` ([#154](https://github.com/pganalyze/pg_query/pull/154))
146
+ * `REVOKE` ([#155](https://github.com/pganalyze/pg_query/pull/155))
147
+ * `PREPARE` and `EXECUTE` ([#148](https://github.com/pganalyze/pg_query/pull/148))
148
+ * `INSERT INTO ... RETURNING` ([#153](https://github.com/pganalyze/pg_query/pull/153))
149
+ * Fix Alter .. `RENAME SQL` ([#146](https://github.com/pganalyze/pg_query/pull/146))
150
+ * Deparsing improvements by [@herwinw]
151
+ * Fix subquery in `COPY` in deparse ([#112](https://github.com/pganalyze/pg_query/pull/112))
152
+ * Function call indirection ([#116](https://github.com/pganalyze/pg_query/pull/116))
153
+ * Function without parameters ([#117](https://github.com/pganalyze/pg_query/pull/117))
154
+ * `CREATE AGGREGATE`
155
+ * `CREATE OPERATOR`
156
+ * `CREATE TYPE`
157
+ * `GRANT` statements
158
+ * `DROP SCHEMA`
159
+ * Deparsing improvements by [@akiellor]
160
+ * Named window functions ([#150](https://github.com/pganalyze/pg_query/pull/150))
161
+ * Deparsing improvements by [@himanshu]
162
+ * Arguments in custom types ([#143](https://github.com/pganalyze/pg_query/pull/143))
163
+ * Use "double precision" instead of "double" type name ([#139](https://github.com/pganalyze/pg_query/pull/139))
164
+ * Use explicit -z flag to support OpenBSD tar ([#134](https://github.com/pganalyze/pg_query/pull/134)) [@sirn]
70
165
  * Add Ruby 2.6 to Travis tests
71
166
  * Escape identifiers in more cases, if necessary
72
167
 
73
168
 
74
169
  ## 1.1.0 2018-10-04
75
170
 
76
- * Deparsing improvements by [@herwinw](https://github.com/herwinw)
77
- * Add NULLS FIRST/LAST to ORDER BY [#95](https://github.com/lfittl/pg_query/pull/95)
78
- * VACUUM [#97](https://github.com/lfittl/pg_query/pull/97)
79
- * UPDATE with multiple columns [#99](https://github.com/lfittl/pg_query/pull/99)
80
- * DISTINCT ON [#101](https://github.com/lfittl/pg_query/pull/101)
81
- * CREATE TABLE AS [#102](https://github.com/lfittl/pg_query/pull/102)
82
- * SQL value functions [#103](https://github.com/lfittl/pg_query/pull/103)
83
- * LOCK [#105](https://github.com/lfittl/pg_query/pull/105)
84
- * EXPLAIN [#107](https://github.com/lfittl/pg_query/pull/107)
85
- * COPY [#108](https://github.com/lfittl/pg_query/pull/108)
86
- * DO [#109](https://github.com/lfittl/pg_query/pull/109)
87
- * Ignore pg_query.so in git checkout [#110](https://github.com/lfittl/pg_query/pull/110) [@herwinw](https://github.com/herwinw)
88
- * Prefer __dir__ over File.dirname(__FILE__) [#110](https://github.com/lfittl/pg_query/pull/104) [@herwinw](https://github.com/herwinw)
171
+ * Deparsing improvements by [@herwinw]
172
+ * Add `NULLS FIRST`/`LAST` to `ORDER BY` [#95](https://github.com/pganalyze/pg_query/pull/95)
173
+ * `VACUUM` [#97](https://github.com/pganalyze/pg_query/pull/97)
174
+ * `UPDATE` with multiple columns [#99](https://github.com/pganalyze/pg_query/pull/99)
175
+ * `DISTINCT ON` [#101](https://github.com/pganalyze/pg_query/pull/101)
176
+ * `CREATE TABLE AS` [#102](https://github.com/pganalyze/pg_query/pull/102)
177
+ * SQL value functions [#103](https://github.com/pganalyze/pg_query/pull/103)
178
+ * `LOCK` [#105](https://github.com/pganalyze/pg_query/pull/105)
179
+ * `EXPLAIN` [#107](https://github.com/pganalyze/pg_query/pull/107)
180
+ * `COPY` [#108](https://github.com/pganalyze/pg_query/pull/108)
181
+ * `DO` [#109](https://github.com/pganalyze/pg_query/pull/109)
182
+ * Ignore pg_query.so in git checkout [#110](https://github.com/pganalyze/pg_query/pull/110) [@herwinw]
183
+ * Prefer `__dir__` over `File.dirname(__FILE__)` [#110](https://github.com/pganalyze/pg_query/pull/104) [@herwinw]
89
184
 
90
185
 
91
186
  ## 1.0.2 2018-04-11
92
187
 
93
188
  * Deparsing improvements
94
- * SELECT DISTINCT clause [#77](https://github.com/lfittl/pg_query/pull/77) [@Papierkorb](https://github.com/Papierkorb)
95
- * "CASE expr WHEN ... END" clause [#78](https://github.com/lfittl/pg_query/pull/78) [@Papierkorb](https://github.com/Papierkorb)
96
- * LEFT/RIGHT/FULL/NATURAL JOIN [#79](https://github.com/lfittl/pg_query/pull/79) [@Papierkorb](https://github.com/Papierkorb)
97
- * SELECT that includes schema name [#80](https://github.com/lfittl/pg_query/pull/80) [@jcsjcs](https://github.com/jcsjcs)
189
+ * `SELECT DISTINCT` clause [#77](https://github.com/pganalyze/pg_query/pull/77) [@Papierkorb]
190
+ * "`CASE expr WHEN ... END`" clause [#78](https://github.com/pganalyze/pg_query/pull/78) [@Papierkorb]
191
+ * `LEFT`/`RIGHT`/`FULL`/`NATURAL JOIN` [#79](https://github.com/pganalyze/pg_query/pull/79) [@Papierkorb]
192
+ * `SELECT` that includes schema name [#80](https://github.com/pganalyze/pg_query/pull/80) [@jcsjcs]
98
193
 
99
194
 
100
195
  ## 1.0.1 2018-02-02
101
196
 
102
- * Parse CTEs and nested selects in INSERT/UPDATE [#76](https://github.com/lfittl/pg_query/pull/76) [@jcoleman](https://github.com/jcoleman)
103
- * Drop explicit json dependency [#74](https://github.com/lfittl/pg_query/pull/74) [@yuki24](https://github.com/yuki24)
197
+ * Parse CTEs and nested selects in INSERT/UPDATE [#76](https://github.com/pganalyze/pg_query/pull/76) [@jcoleman]
198
+ * Drop explicit json dependency [#74](https://github.com/pganalyze/pg_query/pull/74) [@yuki24]
104
199
 
105
200
 
106
201
  ## 1.0.0 2017-10-31
@@ -115,37 +210,37 @@
115
210
  ## 0.13.5 2017-10-26
116
211
 
117
212
  * Update to libpg_query 9.5-1.7.1
118
- - Allow "$1 FROM $2" to be parsed (new with pg_stat_statements in Postgres 10)
213
+ - Allow "`$1 FROM $2`" to be parsed (new with pg_stat_statements in Postgres 10)
119
214
 
120
215
 
121
216
  ## 0.13.4 2017-10-20
122
217
 
123
218
  * Update to libpg_query 9.5-1.7.0
124
- - Fixes compilation old gcc before 4.6.0 [#73](https://github.com/lfittl/pg_query/issues/73)
219
+ - Fixes compilation old gcc before 4.6.0 [#73](https://github.com/pganalyze/pg_query/issues/73)
125
220
 
126
221
 
127
222
  ## 0.13.3 2017-09-04
128
223
 
129
- * Fix table detection for SELECTs that have sub-SELECTs without FROM clause [#69](https://github.com/lfittl/pg_query/issues/69)
224
+ * Fix table detection for SELECTs that have sub-SELECTs without `FROM` clause [#69](https://github.com/pganalyze/pg_query/issues/69)
130
225
 
131
226
 
132
227
  ## 0.13.2 2017-08-10
133
228
 
134
- * Support table detection in sub-SELECTs in JOINs [#68](https://github.com/lfittl/pg_query/pull/65) [@seanmdick](https://github.com/seanmdick)
135
- * Legacy ".parsetree" helper: Fix "Between" and "In" operator does not have "AEXPR" [#66](https://github.com/lfittl/pg_query/issues/66)
229
+ * Support table detection in sub-SELECTs in `JOIN`s [#68](https://github.com/pganalyze/pg_query/pull/65) [@seanmdick]
230
+ * Legacy ".parsetree" helper: Fix "Between" and "In" operator does not have "AEXPR" [#66](https://github.com/pganalyze/pg_query/issues/66)
136
231
  * For new applications please use ".tree" method which uses the native structure
137
232
  returned from libpg_query which resembles Postgres node names more closely
138
233
 
139
234
 
140
235
  ## 0.13.1 2017-08-03
141
236
 
142
- * Fix regression in 0.13.1 that broke ".tables" logic for COPY statements that
237
+ * Fix regression in 0.13.1 that broke ".tables" logic for `COPY` statements that
143
238
  don't have a target table (i.e. are reading out data vs copying in)
144
239
 
145
240
 
146
241
  ## 0.13.0 2017-07-30
147
242
 
148
- * Introduce split between SELECT/DML/DDL for tables method [#65](https://github.com/lfittl/pg_query/pull/65) [@chrisfrommann](https://github.com/chrisfrommann)
243
+ * Introduce split between SELECT/DML/DDL for tables method [#65](https://github.com/pganalyze/pg_query/pull/65) [@chrisfrommann]
149
244
  * Backwards compatible, use the new select_tables/dml_tables/ddl_tables to
150
245
  access the categorized table references
151
246
  * Update libpg_query to 9.5-1.6.2
@@ -173,14 +268,14 @@
173
268
 
174
269
  ## 0.11.5 2017-07-09
175
270
 
176
- * Deparse coldeflist [#64](https://github.com/lfittl/pg_query/pull/64) [@jcsjcs](https://github.com/jcsjcs)
177
- * Use Integer class for checking integer instead of Fixnum [#62](https://github.com/lfittl/pg_query/pull/62) [@makimoto](https://github.com/makimoto)
271
+ * Deparse coldeflist [#64](https://github.com/pganalyze/pg_query/pull/64) [@jcsjcs]
272
+ * Use Integer class for checking integer instead of Fixnum [#62](https://github.com/pganalyze/pg_query/pull/62) [@makimoto]
178
273
 
179
274
 
180
275
  ## 0.11.4 2017-01-18
181
276
 
182
- * Compatibility with Ruby 2.4 [#59](https://github.com/lfittl/pg_query/pull/59) [@merqlove](https://github.com/merqlove)
183
- * Deparse varchar and numeric casts without arguments [#61](https://github.com/lfittl/pg_query/pull/61) [@jcsjcs](https://github.com/jcsjcs)
277
+ * Compatibility with Ruby 2.4 [#59](https://github.com/pganalyze/pg_query/pull/59) [@merqlove]
278
+ * Deparse varchar and numeric casts without arguments [#61](https://github.com/pganalyze/pg_query/pull/61) [@jcsjcs]
184
279
 
185
280
 
186
281
  ## 0.11.3 2016-12-06
@@ -188,12 +283,12 @@
188
283
  * Update to newest libpg_query version (9.5-1.4.2)
189
284
  * Cut off fingerprints at 100 nodes deep to avoid excessive runtimes/memory
190
285
  * Fix warning on Linux due to missing asprintf include
191
- * Improved deparsing [@jcsjcs](https://github.com/jcsjcs)
192
- * Float [#54](https://github.com/lfittl/pg_query/pull/54)
193
- * BETWEEN [#55](https://github.com/lfittl/pg_query/pull/55)
194
- * NULLIF [#56](https://github.com/lfittl/pg_query/pull/56)
195
- * SELECT NULL and BooleanTest [#57](https://github.com/lfittl/pg_query/pull/57)
196
- * Fix build on BSD systems [#58](https://github.com/lfittl/pg_query/pull/58) [@myfreeweb](https://github.com/myfreeweb)
286
+ * Improved deparsing [@jcsjcs]
287
+ * Float [#54](https://github.com/pganalyze/pg_query/pull/54)
288
+ * `BETWEEN` [#55](https://github.com/pganalyze/pg_query/pull/55)
289
+ * `NULLIF` [#56](https://github.com/pganalyze/pg_query/pull/56)
290
+ * `SELECT NULL` and BooleanTest [#57](https://github.com/pganalyze/pg_query/pull/57)
291
+ * Fix build on BSD systems [#58](https://github.com/pganalyze/pg_query/pull/58) [@myfreeweb]
197
292
 
198
293
 
199
294
  ## 0.11.2 2016-06-27
@@ -211,11 +306,11 @@
211
306
 
212
307
  ## 0.11.0 2016-06-22
213
308
 
214
- * Improved table name analysis (#tables method)
215
- * Don't include CTE names, make them accessible as #cte_names instead [#52](https://github.com/lfittl/pg_query/issues/52)
216
- * Include table names in target list sub selects [#38](https://github.com/lfittl/pg_query/issues/38)
217
- * Add support for ORDER/GROUP BY, HAVING, and booleans in WHERE [#53](https://github.com/lfittl/pg_query/pull/53) [@jcoleman](https://github.com/jcoleman)
218
- * Fix parsing of DROP TYPE statements
309
+ * Improved table name analysis (`#tables` method)
310
+ * Don't include CTE names, make them accessible as `#cte_names` instead [#52](https://github.com/pganalyze/pg_query/issues/52)
311
+ * Include table names in target list sub selects [#38](https://github.com/pganalyze/pg_query/issues/38)
312
+ * Add support for `ORDER`/`GROUP BY`, `HAVING`, and booleans in `WHERE` [#53](https://github.com/pganalyze/pg_query/pull/53) [@jcoleman]
313
+ * Fix parsing of `DROP TYPE` statements
219
314
 
220
315
 
221
316
  ## 0.10.0 2016-05-31
@@ -223,19 +318,19 @@
223
318
  * Based on PostgreSQL 9.5.3
224
319
  * Use LLVM extracted parser for significantly improved build times (via libpg_query)
225
320
  * Deparsing Improvements
226
- * SET statements [#48](https://github.com/lfittl/pg_query/pull/48) [@Winslett](https://github.com/Winslett)
227
- * LIKE/NOT LIKE [#49](https://github.com/lfittl/pg_query/pull/49) [@Winslett](https://github.com/Winslett)
228
- * CREATE FUNCTION improvements [#50](https://github.com/lfittl/pg_query/pull/50) [@Winslett](https://github.com/Winslett)
321
+ * `SET` statements [#48](https://github.com/pganalyze/pg_query/pull/48) [@Winslett]
322
+ * `LIKE`/`NOT LIKE` [#49](https://github.com/pganalyze/pg_query/pull/49) [@Winslett]
323
+ * `CREATE FUNCTION` improvements [#50](https://github.com/pganalyze/pg_query/pull/50) [@Winslett]
229
324
 
230
325
 
231
326
  ## 0.9.2 2016-05-03
232
327
 
233
- * Fix issue with A_CONST string values in `.parsetree` compatibility layer (Fixes [#47](https://github.com/lfittl/pg_query/issues/47))
328
+ * Fix issue with A_CONST string values in `.parsetree` compatibility layer (Fixes [#47](https://github.com/pganalyze/pg_query/issues/47))
234
329
 
235
330
 
236
331
  ## 0.9.1 2016-04-20
237
332
 
238
- * Add support for Ruby 1.9 (Fixes [#44](https://github.com/lfittl/pg_query/issues/44))
333
+ * Add support for Ruby 1.9 (Fixes [#44](https://github.com/pganalyze/pg_query/issues/44))
239
334
 
240
335
 
241
336
  ## 0.9.0 2016-04-17
@@ -261,44 +356,44 @@
261
356
  ## 0.7.2 2015-12-20
262
357
 
263
358
  * Deparsing
264
- * Quote all column refs [#40](https://github.com/lfittl/pg_query/pull/40) [@avinoamr](https://github.com/avinoamr)
265
- * Quote all range vars [#43](https://github.com/lfittl/pg_query/pull/43) [@avinoamr](https://github.com/avinoamr)
266
- * Support for COUNT(DISTINCT ...) [#42](https://github.com/lfittl/pg_query/pull/42) [@avinoamr](https://github.com/avinoamr)
359
+ * Quote all column refs [#40](https://github.com/pganalyze/pg_query/pull/40) [@avinoamr]
360
+ * Quote all range vars [#43](https://github.com/pganalyze/pg_query/pull/43) [@avinoamr]
361
+ * Support for `COUNT(DISTINCT ...)` [#42](https://github.com/pganalyze/pg_query/pull/42) [@avinoamr]
267
362
 
268
363
 
269
364
  ## 0.7.1 2015-11-17
270
365
 
271
- * Abstracted parser access into libpg_query [#24](https://github.com/lfittl/pg_query/pull/35)
366
+ * Abstracted parser access into libpg_query [#24](https://github.com/pganalyze/pg_query/pull/35)
272
367
  * libpg_query
273
- * Use UTF-8 encoding for parsing [#4](https://github.com/lfittl/libpg_query/pull/4) [@zhm](https://github.com/zhm)
274
- * Add type to A_CONST nodes[#5](https://github.com/lfittl/libpg_query/pull/5) [@zhm](https://github.com/zhm)
368
+ * Use UTF-8 encoding for parsing [#4](https://github.com/lfittl/libpg_query/pull/4) [@zhm]
369
+ * Add type to A_CONST nodes[#5](https://github.com/lfittl/libpg_query/pull/5) [@zhm]
275
370
 
276
371
 
277
372
  ## 0.7.0 2015-10-17
278
373
 
279
- * Restructure build process to use upstream tarballs [#35](https://github.com/lfittl/pg_query/pull/35)
280
- * Avoid bison/flex dependency to make deployment easier [#31](https://github.com/lfittl/pg_query/issues/31)
281
- * Solve issues with deployments to Heroku [#32](https://github.com/lfittl/pg_query/issues/32)
374
+ * Restructure build process to use upstream tarballs [#35](https://github.com/pganalyze/pg_query/pull/35)
375
+ * Avoid bison/flex dependency to make deployment easier [#31](https://github.com/pganalyze/pg_query/issues/31)
376
+ * Solve issues with deployments to Heroku [#32](https://github.com/pganalyze/pg_query/issues/32)
282
377
  * Deparsing
283
- * HAVING and FOR UPDATE [#36](https://github.com/lfittl/pg_query/pull/36) [@JackDanger](https://github.com/JackDanger)
378
+ * `HAVING` and `FOR UPDATE` [#36](https://github.com/pganalyze/pg_query/pull/36) [@JackDanger]
284
379
 
285
380
 
286
381
  ## 0.6.4 2015-10-01
287
382
 
288
383
  * Deparsing
289
- * Constraints & Interval Types [#28](https://github.com/lfittl/pg_query/pull/28) [@JackDanger](https://github.com/JackDanger)
290
- * Cross joins [#29](https://github.com/lfittl/pg_query/pull/29) [@mme](https://github.com/mme)
291
- * ALTER TABLE [#30](https://github.com/lfittl/pg_query/pull/30) [@JackDanger](https://github.com/JackDanger)
292
- * LIMIT and OFFSET [#33](https://github.com/lfittl/pg_query/pull/33) [@jcsjcs](https://github.com/jcsjcs)
384
+ * Constraints & Interval Types [#28](https://github.com/pganalyze/pg_query/pull/28) [@JackDanger]
385
+ * Cross joins [#29](https://github.com/pganalyze/pg_query/pull/29) [@mme]
386
+ * `ALTER TABLE` [#30](https://github.com/pganalyze/pg_query/pull/30) [@JackDanger]
387
+ * `LIMIT and OFFSET` [#33](https://github.com/pganalyze/pg_query/pull/33) [@jcsjcs]
293
388
 
294
389
 
295
390
  ## 0.6.3 2015-08-20
296
391
 
297
392
  * Deparsing
298
- * COUNT(*) [@JackDanger](https://github.com/JackDanger)
299
- * Window clauses [Chris Martin](https://github.com/cmrtn)
300
- * CREATE TABLE/VIEW/FUNCTION [@JackDanger](https://github.com/JackDanger)
301
- * Return exact location for parser errors [@JackDanger](https://github.com/JackDanger)
393
+ * `COUNT(*)` [@JackDanger]
394
+ * Window clauses [Chris Martin]
395
+ * `CREATE TABLE`/`VIEW/FUNCTION` [@JackDanger]
396
+ * Return exact location for parser errors [@JackDanger]
302
397
 
303
398
 
304
399
  ## 0.6.2 2015-08-06
@@ -308,7 +403,7 @@
308
403
 
309
404
  ## 0.6.1 2015-08-06
310
405
 
311
- * Deparsing: Support WITH clauses in INSERT/UPDATE/DELETE [@JackDanger](https://github.com/JackDanger)
406
+ * Deparsing: Support `WITH` clauses in `INSERT`/`UPDATE`/`DELETE` [@JackDanger]
312
407
  * Make sure gemspec includes all necessary files
313
408
 
314
409
 
@@ -317,20 +412,20 @@
317
412
  * Deparsing (experimental)
318
413
  * Turns parse trees into SQL again
319
414
  * New truncate method to smartly truncate based on less important query parts
320
- * Thanks to [@mme](https://github.com/mme) & [@JackDanger](https://github.com/JackDanger) for their contributions
415
+ * Thanks to [@mme] & [@JackDanger] for their contributions
321
416
  * Restructure extension C code
322
417
  * Add table/filter columns support for CTEs
323
- * Extract views as tables from CREATE/REFRESH VIEW
418
+ * Extract views as tables from `CREATE`/`REFRESH VIEW`
324
419
  * Refactor code using generic treewalker
325
- * fingerprint: Normalize IN lists
420
+ * fingerprint: Normalize `IN` lists
326
421
  * param_refs: Fix length attribute in result
327
422
 
328
423
 
329
424
  ## 0.5.0 2015-03-26
330
425
 
331
426
  * Query fingerprinting
332
- * Filter columns (aka columns referenced in a query's WHERE clause)
333
- * Parameter references: Returns all $1/$2/etc like references in the query with their location
427
+ * Filter columns (aka columns referenced in a query's `WHERE` clause)
428
+ * Parameter references: Returns all `$1`/`$2`/etc like references in the query with their location
334
429
  * Remove dependency on active_support
335
430
 
336
431
 
@@ -347,3 +442,28 @@
347
442
 
348
443
 
349
444
  See git commit log for previous releases.
445
+
446
+ [libpg_query]: https://github.com/pganalyze/libpg_query
447
+ [@emin100]: https://github.com/emin100
448
+ [@akiellor]: https://github.com/akiellor
449
+ [@himanshu-pro]: https://github.com/himanshu-pro
450
+ [@himanshu]: https://github.com/himanshu
451
+ [@Tassosb]: https://github.com/Tassosb
452
+ [@herwinw]: https://github.com/herwinw
453
+ [@stanhu]: https://github.com/stanhu
454
+ [@Papierkorb]: https://github.com/Papierkorb
455
+ [@jcsjcs]: https://github.com/jcsjcs
456
+ [@jcoleman]: https://github.com/jcoleman
457
+ [@yuki24]: https://github.com/yuki24
458
+ [@seanmdick]: https://github.com/seanmdick
459
+ [@chrisfrommann]: https://github.com/chrisfrommann
460
+ [@makimoto]: https://github.com/makimoto
461
+ [@merqlove]: https://github.com/merqlove
462
+ [@myfreeweb]: https://github.com/myfreeweb
463
+ [@Winslett]: https://github.com/Winslett
464
+ [@avinoamr]: https://github.com/avinoamr
465
+ [@zhm]: https://github.com/zhm
466
+ [@mme]: https://github.com/mme
467
+ [@JackDanger]: https://github.com/JackDanger
468
+ [Chris Martin]: https://github.com/cmrtn
469
+ [@sirn]: https://github.com/sirn