Status of GDA backend
Phil Longstaff
plongstaff at rogers.com
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.
Phil
More information about the gnucash-devel
mailing list