SQL Version

Derek Atkins warlord at MIT.EDU
Tue Feb 1 12:11:54 EST 2011

John Ralls <jralls at ceridwen.us> writes:

>> Yeah, I saw that as I was going through the patches after I sent this.
>> How is this any different than just setting a number in
>> e.g. gnc-sql-schema-version.h?  A developer still needs to remember to
>> update the nano-version any time they make a schema change..
>> But the current method also means that gnucash 2.4.2 and 2.4.3 would
>> consider themselves different even if the schema does not change.
> Yes, it does still depend on a developer remembering to increment the
> nano-version if he changes something (and as I keep pointing out, it
> can be a change in engine, business, or qof, not just the schema). But
> remember that there are two components: The actual version which last
> touched the database (Gnucash version) and the GNC_RESAVE_VERSION
> which marks the boundary for too-new and too-old. Too-old will force a
> resave, too-new will force read-only. That's currently declared in
> gnc-backend-sql.h; I should probably move it to configure as well so
> that it's more visible.

Sorry, when I say "schema" I really mean "syntax and semantics of the
storage", so I do (mentally) include the interpretation of the data in
there when I say it.  I'm not really a DB person so I'm sure I'm
mis-using the term.  So let's coin a new term, the "Interpretation
Value" or "IV" of the database?

Any time the IV changes we have to be careful.  But if the IV has not
changed then does the actual version of GnuCash matter?

Newer versions of GnuCash can certainly read older IVs and and offer the
choice to open read-only or upgrade to the current IV (or potentially
stay at the current IV, if the code thinks it can do so).  Older
versions of GnuCash may not be able to read newer IVs, but could offer
to open read-only and re-save at an older IV, but that could introduce
data loss.

I still don't see why we need to tie anything to the GnuCash version?

> Regards,
> John Ralls


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list