<div dir="ltr">> Oracle support ?<div><br></div><div style>There is no conflicts with my plans. It can be added throug ODBC or native driver.</div><div style><br></div><div style>> NoSql databases</div><div style><br>
</div><div style>No. HDBI is planned to be a simple flexible common interface for RDBMS. It is not yet another ORM it just execute queries and fetch the results. NoSQL databases differ too much.</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/10/16 Dan <span dir="ltr"><<a href="mailto:dan_2kb@yahoo.com" target="_blank">dan_2kb@yahoo.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:12pt;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif"><div>Thanks Alexey,</div><div>Any plans for :</div><div>1 - Oracle support ?</div><div>3 - NoSql databases (Mongo, Cassandra, etc) support ?</div>
<div style="font-style:normal;font-size:16px;background-color:transparent;font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif">Cheers,</div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif">
Dan</div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif"><br></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif">
<br></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Date: Tue, 15 Oct 2013 23:55:16 +0600</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">From: Alexey Uimanov <</span><a href="mailto:s9gf4ult@gmail.com" style="color:rgb(25,106,212);font-size:13px;font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif" target="_blank">s9gf4ult@gmail.com</a><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">></span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">To: Haskell Cafe <</span><a href="mailto:haskell-cafe@haskell.org" style="color:rgb(25,106,212);font-size:13px;font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif" target="_blank">haskell-cafe@haskell.org</a><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">></span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Subject: [Haskell-cafe] Announce: HDBI-1.3 and friends</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Message-ID:</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">    <CANtkurc-6sQ87Bji=O0OhEteZJFh=</span><a href="mailto:tD2yz8ckTLgYc7J2u_SoA@mail.gmail.com" style="color:rgb(25,106,212);font-size:13px;font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif" target="_blank">tD2yz8ckTLgYc7J2u_SoA@mail.gmail.com</a><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">></span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Content-Type: text/plain; charset="utf-8"</span><div><div class="h5"><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Hello haskellers!</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">HDBI is the fork of HDBC but reworked. It supports SQlite3 and Postgresql</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">for now. It also supports streaming with coduits.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">There is TH deriving mechanism to map database rows to Haskell structures</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">and back. HDBI is trying to become simple</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">but still powerfull and flexible database interface. It must be suitable to</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">become the common RDBMS interface  for higher level interfaces</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">like persistent or haskelldb.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">The documentation is not very good, while I have no enough time to make</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">some.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">In this version changed typeclass signatures of Connection and Statement.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Now methods `run` and `execute` get any instance of `ToRow` and method</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">`fetch` return an instance of `FromRow`.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Note that [SqlValue] is also an instance of `FromRow` and `ToRow`</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">typeclasses so you do not loose the control.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Methods `fromRow` and `toRow` for [SqlValue] are just `id`. SQlite and</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Postgresql drivers are fixed as well as hdbi-conduit.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">There is also new helper functions, like `onei ::
 Integer -> [SqlValue]`</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">which helps you to execute queries with one parameter</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">or execute many queries consistinf of one parameter.</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> :set -XScopedTypeVariables</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> :set -XOverloadedStrings</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> c <- connectSqlite3 ":memory:"</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span>Prelude Database.HDBI Database.HDBI.SQlite> runRaw c "create table test(val</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">integer)"</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> withTransaction c $ runMany c</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">"insert into
 test(val) values (?)" $ map one [1..1000]</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><interactive>:7:76: Warning:</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">    Defaulting the following constraint(s) to type `Integer'</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">.........</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> r :: (Maybe Integer) <-</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">runFetchOne c "select sum(val) from test" ()</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Prelude Database.HDBI Database.HDBI.SQlite> r</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Just 500500</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Note here that the empty set is used as a parameter of query in</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">`runFetchOne`. Empty set is an instance of `FromRow` and `ToRow` and return</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">an empty list of [SqlValue].</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">Use empty list as a parameters is bad idea, because we could instantiate</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span>some another list of things, suppose the [Integer] as `FromRow` and</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px"><span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">`ToRow` instance. So it would lead to ambigous type because [SqlValue] is</span><br style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">
<span style="font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:13px">also a list instantiating `FromRow` and `ToRow`.</span><br></div></div></div></div></div>
</blockquote></div><br></div>