libgda vs. gnucash [was Re: GnuCash page on GO site]

Rodrigo Moya rodrigo at gnome-db.org
Thu Mar 4 09:34:12 CST 2004


On Thu, 2004-03-04 at 09:24 -0600, Linas Vepstas wrote:

> On Wed, Mar 03, 2004 at 05:35:32PM +0100, Rodrigo Moya was heard to remark:
> > On Wed, 2004-03-03 at 10:24 -0600, Linas Vepstas wrote:
> > 
> > > 
> > > -- an object query system. libgda does not.
> > > -- a uuid system. libgda does not.
> > > -- an object persistance infrastructure. libgda does not. 
> > > -- a multi-user object caching and cache-coherence system. libgda does not.
> > > -- a data-set partitioning system. libgda does not.
> > 
> > We are making progress though. since now we know what you need from
> > libgda. 
> 
> Are you sure you want to implement these features? It wasn't clear
> to me if these were within or outside of your project scope.
> 
it depends, some might make sense in libgda, others, like all data
dictionary management stuff might make sense in libmergeant (part of
mergeant), where a lot of code for that purpose is already available.
Others might go directly to libgnomedb (as I said, most things in
libmergenat will probably be moved to libgnomedb sooner or later)

> > So, next question is, how separated from gnucash are each of
> > those features? 
> 
> Well, I' describing the core gnucash object system.  *if* there
> was another system that really did support all of these features, it
> would not be hard to replace the whole core.  But it would be
> impossible to replace a part of the core.  Each of the features
> is required for the other parts to work correctly.
> 
> > Would it make sense/be not a too hard work to try to
> > integrate them into libgda? 
> 
> I don't know.  It might be hard, there are a variety of subtle 
> issues, some of which we haven't solved ourselves yet.  
> 
> One that has been dogging me is the correct way to split up 
> a dataset across multiple files.  GnuCash startup time takes
> a long time if you have a large data fileset.  So I would like
> to split it up, while still allowing queries over older data 
> in older files if the user needed that. 
> 
you mean like a file per table?

> One problem is that each dataset must have a copy of all of
> the accounts.  When working with mutiple datasets, there is 
> the problem of having what looks like multiple, identical
> copies of the account.  So, we have to be able to identify
> these copies as being "the same account".  On the other hand,
> the newer datasets may have changed/modified the account, so 
> these "identical" records are not really the same.  There's
> a subtle interplay between the UUID's used to identify accounts,
> the possible existance of backups made by the user, and the
> copy-on-write semantics so that we can correctly manage 
> changed/modified versions the objects.
> 
> Derek has been arguing that we supprt SQL only, so that we can
> completely avoid/ignore this issue.  I think I've discovered 
> a simple/easy answer, but haven't implemented it yet.
> 
which answer?

> > or to change them to use libgda for the
> > basic data access and management?
> 
> Can libgda write out XML files? If so, does it need the DTD to do this,
> or does it use schema's?  
> 
libgda can write out XML files, yes, of a custom DTD. We use the DTD
just as a description, we really just write the file directly, with no
validation. Validation could be added, if needed.

cheers



More information about the gnucash-devel mailing list