r15198 - gnucash/branches/gda-dev - Update GDA status
Phil Longstaff
plongstaff at cvs.gnucash.org
Sat Dec 9 12:41:39 EST 2006
Author: plongstaff
Date: 2006-12-09 12:41:38 -0500 (Sat, 09 Dec 2006)
New Revision: 15198
Trac: http://svn.gnucash.org/trac/changeset/15198
Modified:
gnucash/branches/gda-dev/GDA_STATUS
Log:
Update GDA status
Modified: gnucash/branches/gda-dev/GDA_STATUS
===================================================================
--- gnucash/branches/gda-dev/GDA_STATUS 2006-12-09 17:36:37 UTC (rev 15197)
+++ gnucash/branches/gda-dev/GDA_STATUS 2006-12-09 17:41:38 UTC (rev 15198)
@@ -1,4 +1,4 @@
-GDA backend status - Nov 7, 2006
+GDA backend status - Dec 9, 2006
Building:
- I am currently building with libgda 1.99.1 installed in /opt/libgda-1.99.1.
@@ -12,40 +12,75 @@
required but can be specified.
- The backend assumes that the database already exists. Tables will be
-created if they don't exist. The ddl files in src/backend/gda/ddl are not
-up to date. Note that src/backend/gda/ddl/business.ddl has not been tried
-yet, so there are no guarantees that any database will accept it.
+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.
-- The backend will save accounts and load them on startup. Any information
-in slots is not saved or loaded.
+- 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.
-Functional Issues:
-- In the price editor dialog, if you press Add, the dialog commits a price
-with a NULL guid which is rejected by the db.
+- Slots will be saved and restored for all objects.
-- Account information in slots is not saved or restored
+- 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.
-- If you create a new account, the commodity with that account will be saved
-to the db. If you create a new price, the commodity with that price will not
-be saved to the db if it doesn't already exist in the db.
+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.
-- Transactions and splits are saved but not yet restored via query
+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?
-GDA backend implementation issues:
-- Should use GdaDataHandler for converting values -> SQL and getting values
-back from the db. Need to reassess this if using GdaQuery.
+- 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
-- Better representation for gnc_numeric - doesn't compare well
-- queries
- - transactions/splits
-- SQLite if just a "file"
-- handle construction of path name for nested slots
-- lots
-- sched transactions
-- check for memory leaks
-- add --with-libgda= configure option
-- business objects
+- 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
More information about the gnucash-changes
mailing list