[Haskell-cafe] GSOC Proposal 2012 : HDBC

Michael Snoyman michael at snoyman.com
Wed Apr 4 19:12:42 CEST 2012


On Wed, Apr 4, 2012 at 7:59 PM, MightyByte <mightybyte at gmail.com> wrote:
> pranjal pandit <pranjal5215 <at> gmail.com> writes:
>
>>
>>
>> Hi,I would like to work on improving the HDBC as a GSOC project 2012. I have
>> a previous working experience with Django and its ORM and I had a look at
>> Amnesia (http://amnesia.sourceforge.net/user_manual/manual.html) which is a
>> SQL database interface for Erlang.
>>
>> Few of the features of both include:
>> 1 ) Database operation are supported through Language Native types.
>> 2 ) Direct table creation from native language constructs.
>
> Hi Pranjal,
>
> Here are some things to consider when writing your proposal.
>
> Haskell RDBMS libraries exist on two different broad levels of abstraction.
> There are low-level libraries that provide the ability to write raw SQL queries
> and retrieve the results, and there are high-level libraries that do more
> sophisticated things.  These high-level libraries are more of what you're
> probably thinking about when you think ORM.  HDBC and others like mysql-simple,
> postgresql-simple, etc are in the low-level category.  The high-level category
> has libraries like haskelldb, persistent, and groundhog.
>
> In some cases the high-level libraries are written using a low-level library as
> the back-end.  Haskelldb is a good example of this because it uses HDBC for its
> low-level access.  HDBC provides a uniform interface for working with MySQL,
> PostgreSQL, and SQLite so by using HDBC, haskelldb works with all these
> databases for free.  However, some high-level libraries like persistent don't
> use a separate low-level library and instead opt to maintain their own code for
> interfacing directly with the database.

This isn't exactly true. persistent-sqlite has its own low-level layer
based on direct-sqlite[1], but the other three backends each use an
existing low-level library (postgresql-simple, mysql-simple, and
mongoDB).

Michael

[1] http://hackage.haskell.org/package/direct-sqlite



More information about the Haskell-Cafe mailing list