Status of GDA backend

Phil Longstaff plongstaff at
Sun Dec 23 20:00:48 EST 2007

I've just checked in the last of the code for the gda backend business 
objects.  The status is:

- The code compiles, and on startup, creates the tables
- I am using sqlite as my test db.  Later, testing will involve other 
test dbs (mysql but probably not postgresql)
- I have done very basic testing on the business objects side
- Things I know that still should be done
    - Use transactions to make operations atomic (e.g. update an object, 
then save its slots)
    - Possibly add a "known-to-be-in-the-db" flag to each object.  This 
would allow me to bypass the check whether the object is in the db which 
is used to pick either an INSERT or an UPDATE.  I know some dbs have 
some sort of INSERT-OR-UPDATE-IF-IT-ALREADY-EXISTS, but I don't know if 
all dbs do and I don't know how to access through libgda.  However, if 
we want to support multi-user operation, then we either need db alerts 
(again, some db's have but I don't know how to use with libgda), or we 
need to lock/check before each operation anyway.
    - Multi-user features (table locking)
    - Indexes and other performance enhancement features (e.g. the 
postgres backend used a checkpoint table to keep track of balances at 
certain point for an account with lots of transactions.
    - Automated tests
    - Proper UI to allow more general url entry which is needed to 
access anything other than an sqlite db
    - Update max string lengths.  For string fields, I just picked 50 as 
a standard value for length (e.g. customer name, address field length).  
There should be some constant defined somewhere.
    - Proper integration with QofQuery - I know on startup, for example, 
the business code queries for unpaid bills.
    - Testing

There's probably more.


More information about the gnucash-devel mailing list