mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/branches/gda-dev@15847 57a11ea4-9604-0410-9ed3-97b8803252fd
89 lines
3.9 KiB
Plaintext
89 lines
3.9 KiB
Plaintext
GDA backend status - Dec 9, 2006
|
|
Based on r15090
|
|
Merged with r15803
|
|
|
|
Building:
|
|
- I am currently building with libgda 1.99.1 installed in /opt/libgda-1.99.1.
|
|
Configure.in will use pkg-config to set up the include and lib information.
|
|
This cannot be overridden (yet) by any switch on the ./configure command.
|
|
|
|
Execution:
|
|
- A basic GDA backend framework now exists. This framework accepts URLs of
|
|
the form gda://DSN:USERNAME:PASSWORD. "gda" is required. "DSN" represents
|
|
a dataset configured in ~/.libgda/config. USERNAME and PASSWORD are not
|
|
required but can be specified.
|
|
|
|
- The backend assumes that the database already exists. Tables will be
|
|
created if they don't exist. I have only tested with mysql. In theory, other
|
|
db engines supported by libgda should work correctly.
|
|
|
|
- The backend will save commodities and load them on startup.
|
|
- The backend will save accounts and load them on startup. Accounts created
|
|
for scheduled transactions will be loaded into the CoA.
|
|
- The backend will save budgets and load them on startup.
|
|
- The backend will save lots and load them on startup.
|
|
- The backend will save prices and load them on startup.
|
|
|
|
- Don't use scheduled transactions. An account and a scheduled transaction
|
|
will be saved. Frequency info will not be saved/restored. Other related info
|
|
will not be saved/restored.
|
|
|
|
- Slots will be saved and restored for all objects.
|
|
|
|
- When a register is opened, splits and transactions will be queried. If a
|
|
transaction is created or edited (I haven't tested deletion yet), the db is
|
|
updated properly.
|
|
|
|
Libgda Issues:
|
|
- There is a bug in libgda. Dates are not saved. libgda creates the SQL as
|
|
'MM-DD-YYYY' instead of 'YYYY-MM-DD'. MySQL doesn't complain, but stores the
|
|
date as '0000-00-00'. Fixed in libgda CVS.
|
|
|
|
GC and GDA Backend Issues:
|
|
- To avoid having the backend commit everything twice (because of the Qof two
|
|
phase commit protocol), saved objects are marked clean when committed. To do
|
|
this, I need to reach right into the QofInstance structure and clear the dirty
|
|
flag. There should be a better way to do this. Note this also keeps the book
|
|
from being marked dirty. Q: If a db backend becomes the standard and xml
|
|
is only for import/export, does the concept of clean/dirty disappear?
|
|
|
|
- Recurrences are currently only used by budgets, and recurrence save/restore
|
|
is included in the budget save/restore code. If recurrences will eventually
|
|
be used elsewhere in GC, recurrence save/restore code may need to be split out
|
|
on its own (separate recurrences table?)
|
|
|
|
- The backend has its own tables for objects which include db-related info.
|
|
Can these be merged with the engine object tables?
|
|
|
|
- When a price is committed, the priceDB is also committed. Could there
|
|
eventually be multiple priceDBs? If not, the priceDB commit is just ignored.
|
|
|
|
- Multiple books? The old postgres backend had a books table. If the new
|
|
db should have one, accounts (and other objects) should have a book guid field.
|
|
|
|
- If I try to "Save As" and type a url (e.g. gda://xxx), this gets converted
|
|
to file:///home/phil/.../gda%3F%2A%2Axxx. (I don't remember the % escapes
|
|
exactly, but you get the picture). I tried adding
|
|
gtk_file_chooser_set_local_only( file_box, FALSE) but that didn't help.
|
|
|
|
TODO:
|
|
- Add --with-libgda= configure option
|
|
|
|
- Business objects
|
|
|
|
- Check for memory leaks
|
|
|
|
- Better representation for gnc_numeric - doesn't compare well i.e. a query
|
|
for splits where 'value > 20.00' will be difficult. Maybe should convert
|
|
gnc_numeric <-> double.
|
|
|
|
- Queries - Split query is handled specially because it is quite involved.
|
|
Only other query I've seen is by the business backend for invoices due soon.
|
|
Generic query handler not built yet.
|
|
|
|
- SQLite if just a "file". If the file being opened is an SQLite db, should
|
|
be handled properly. If a file is saved as file://xxx, xxx should be created
|
|
as a SQLite db. Perhaps xml:// should be used for xml interchange format.
|
|
|
|
- Finish scheduled transactions
|