Database abstraction layer?

Neil Williams linux at
Wed May 18 17:42:31 EDT 2005

On Wednesday 18 May 2005 8:07 pm, matt at wrote:
> Anyway, here's my question. I know that currently, SQL support is for
> Postgres. Has there been any discussion of a database abstraction layer
> being used instead,

Bear in mind that the GnuCash engine, QOF, is an abstraction layer in it's own 
right that is generic and capable of SQL-type queries.

> which would allow many different databases to be 
> used. 

QOF can support multiple backends, not just databases.

> I've been coding for several years now but I'm very new to C, however I
> do learn fast. If anyone could give me some tips as to the viability of
> this idea, how long it'd take, or whether I should concentrate on
> helping out with the Postgres backend instead, I'd be very grateful.

The more the merrier!

If you are looking more at an "abstraction" than necessarily "database" layer, 
I'm sure QOF would be of interest. I'd like to think that all GnuCash data 
will be accessible via QOF at some point (I've had some ideas about 
gncCommodity), but G2 will support Account, Transaction, Split, Invoice, 
Customer (Vendor, Job et al), FreqSpec and SchedXaction handling directly 
from QOF.

It depends on your motivation - if you want to work on permanent storage, 
Sqlite and Postgres are the best start. If you want to work on data mining, 
data access and data exchange between GnuCash users, as well as between 
GnuCash and other programs, QOF would be a better choice. (IMHO of course!)

Incidentally, I'll be looking at adding FreeCoins support to Pilot-QOF in the 
future - that's a GNU accounting system that runs on the Palm PDA. Supporting 
that via pilot-QOF would automatically allow live data interchange between 
FreeCoins and GnuCash and it's "only" a matter of a single C file added to 
pilot-QOF. (!) 

Pilot-QOF already provides access to Contacts, DateBook, Expenses and ToDo on 
the Palm. Any other Palm application could be supported - naturally it's 
easier if it's a GPL application!

GnoTime could also get a boost.

All URL's accessible from my own site:


Neil Williams

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url :

More information about the gnucash-devel mailing list