[Haskell-cafe] HDBC's future and request for help
John Goerzen
jgoerzen at complete.org
Wed Feb 23 17:21:46 CET 2011
On 02/23/2011 10:03 AM, Leon Smith wrote:
> My biggest (mostly) fixable complaint with HDBC is that it hasn't
> turned out to be a very complete or robust solution for accessing
> databases that like to use PostgreSQL-specific features. My biggest
This is probably true, both that it isn't designed for database-specific
features and that this is fixable.
> complaint that (probably) isn't easily fixed is it's reliance on
> Convertible, and the use of lots of unsafe pattern matching and
> exception-happy functions.
Use of Convertible (or toSql/fromSql which is based on it) isn't really
required. You could write a complete HDBC program having never touched
it, assembling and disassembling your SqlValues manually. This was a
design goal of the API. Convertible makes it easy and convenient for
the 95% common cases, but you can avoid it if you wish, or use some
other kind of conversion. All the HDBC functions work with SqlValues
(though there are some convenience wrappers that use Strings instead) so
you can build them up however you like. SqlValue is documented at
http://hackage.haskell.org/packages/archive/HDBC/2.2.6.1/doc/html/Database-HDBC.html#t:SqlValue
If your concern really is with how SqlValue is defined, alternative
proposals are always entertained ;-)
When you're dealing with databases over a network, exceptions can happen
just about anywhere. HDBC does have its own exception type (SqlError)
so that they can be handled en masse, or picked through more closely if
desired. If you have an idea how else that should be handled, I'm all ears.
By "unsafe pattern matching" do you mean GHC -Wall is flagging pattern
matches that don't match some possible set of input data, or something
else? If the former, that should be trivially fixable too.
> At least for the time being, I've found it easiest and most expedient
> to fix up HDBC. I'm not particularly interested in taking over the
> maintenance of HDBC, and I am comfortable with model #1 at the time
> being. However if somebody else is interested in another option,
> I'm probably ok with that too.
Thanks for your feedback, Leon. I've appreciated your patches.
-- John
More information about the Haskell-Cafe
mailing list