sqlite file format, anyone?

Matthew Vanecek mevanecek at yahoo.com
Sat Jun 28 23:02:37 CDT 2003


On Sat, 2003-06-28 at 17:40, Linas Vepstas wrote:
> On Mon, Jun 23, 2003 at 06:21:43PM -0400, Christopher Browne was heard to remark:
> > mkdir("~/GnuCash/DB");
> > system("initdb -d ~/GnuCash/DB");
> > [dribble a few changes into ~/GnuCash/DB/{pg_hba|postgres}.conf,
> >    notably turning on TCP/IP, picking a port #, probably not too 
> >    much else...]
> > system("pg_ctl -D ~/GnuCash/DB start");
> 
> So point taken, we could use postgres on the desktop, but I don't beleive
> that postgres is ready for the desktop.  Just look at the DLL hell 
> that gnucash has been accused of.  Last thing I need is SQL hell.

You both ignore the point that nobody, not one single person in this
chain, has *EVER* suggested using Postgresql for any sort of embedded
database system.  That would be sheer madness!! Postgresql is
*definitely* not currently capable of being an embedded server.  The
path that CB  points to is very very very far removed from being an
embedded server, and given the db format differences internal to
Postgresql between major releases, I would certainly think long and hard
before even *considering* such a construct.  Since nobody is suggesting
using Postgresql for an embedded DB (which cannot be done anyhow,
without changing Postgresql code), this particular argument is rather
silly.

MySQL is what Derek has been *researching* for an embedded DB, as well
as libdbi for a generic SQL interface (which would open us up to things
like SQLLite).  My *main* objection to MySQL and SQLLite is the lack of
transactional security and foreign keys; and thus data integrity (Yes,
MySQL has transactions and foreign keys, but you have to know to compile
MySQL to support InnoDB and you have to explicitly create tables in the
InnoDB format).  If nobody cares about the integrity of their data (or
if we can force the InnoDB format for MySQL), then my objections
disappear, for what it's worth (probably not much).

I like the libdbi idea, to a point.  Postgresql and other capable
databases do provide event notification APIs that are not available in
lesser- or barely-DBMS systems such as MySQL.  Those APIs are not
available through libdbi, and therefore a way to work around the lack
would be required.  Not an impossible task--just something to keep in
mind.  There are other multi-user considerations, of course, but those
can be enumerated at another time.

-- 
Matthew Vanecek
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
********************************************************************************
For 93 million miles, there is nothing between the sun and my shadow except me.
I'm always getting in the way of something...



More information about the gnucash-devel mailing list