This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Database access for Guile






>So, limiting ourselves to the SQL-like databases, could someone
>volunteer to get together a group of the people who know something
>about databases?  I'd like those folks to:
>
>- come up with a proposal for namespace structure within (db ...),

I would propose.... (substitute db or database according to preference)...
(database sql)
(database sql oracle)
(database flatfile)
(database flatfile dbm)
(database object)
(database object versant)

Don't forget that there are object databases out there that don't care
about
sql, and other sorts of database besides.

>Requirements:
>
>- We need a uniform interface, with ideas stolen from Perl's DBI.
>- We need to be able to easily talk to multiple databases, from
>different vendors, at one time.

The current state of the art in terms of relation database access is
possibly
the Rogue Wave Dbtools C++ libraries. Anybody who has access to that could
learn
a lot.

Basicly they have a C++ library which can talk to Informix, Oracle, Ingres
and Sybase.
At the lowest level there is basicly one, relatively small C source file
which
contains the database dependant stuff. Before the product supported Ingres,
 I once
ported the product from Informix to Ingres, and it only took a couple of
days.
In many ways it is really neat.

Ideally we would have the same thing. A very small C driver package for
each database,
and a lot of clever scheme code for generating predicates. Rogue wave is
very clever
in a C++ kind of way at generating SQL predicates using the C++ syntax.
What we
should do is be equally clever in a Scheme kind of way.

Unfortunately, I intend to dedicate my time at the moment to Motif-guile,
so someone
else will have to think about this.