Subject Re: [Firebird-Architect] Major and Minor ODS Versions
Author Thomas Steinmaurer
>>> A brief review for the uninitiated. Two rules:
>>>
>>> 1. An engine cannot open a database with a different ODS major
>>> version number
>>>
>> ...with a higher ODS major version number than the highest one it supports
>>
> Wrong, Helen, wrong. If an engine can support two versions, then a
> change to the minor ODS version is appropriate. A major version, by
> definition, is one that a single engine version can't hack.
>
>>
>>> 2. An engine can open a database with a minor version number <= the
>>> engine's minor version
>>>
>>> An ODS major version number change is major intergalactic extinction
>>> event and is extraordinarily rare.
>>>
>> Ah, how simple it was, so long ago, when galaxies were believed to be finite and immutable.
>>
> It still is simple if you take the time to understand it.
>>
>>> An ODS minor version number change is small potatoes and has very few,
>>> if any ripples.
>>>
>> That's the intention of a minor version number change.
>>
>>
>>> Change the interpretation of Hdr::pageSize (or whatever it's called in
>>> Firebird) is no problem if the minor version number is bumped. Old
>>> versions of the engine won't touch it with a ten foot (3M) pole, but new
>>> versions with use the actual minor version number of a database to
>>> interpret the field.
>>>
>>> Sean's hack is really a hack at all, but a perfectly reasonable
>>> redefinition of a field, one of those things that happens when we live
>>> long enough to get smarter.
>>>
>> Notwithstanding all of the drivers, tools and existing embedded codebases are taught what it means, in time to interpret it properly when confronted with it. Anything with this kind of impact can scarcely be regarded as "small potatoes...having very few, if any, ripples"...which brings us back to an ODS change that is more-than-minor...as any who made the step from 2.0 to 2.1 will testify.
>>
>>
> ODS changes, major or minor, shouldn't be visible to the clients. They
> are an internal engine issues, no more.

(Third-party tool developer hat on)

The client needs to know the ODS version when it comes to what
particular features the database in question supports. For example,
Firebird 2.1 can open ODS 11.0 databases, but features like monitoring
tables, database triggers, ... are available in ODS 11.1 or higher
database only.



--
Best Regards,
Thomas Steinmaurer
LogManager Series - Logging/Auditing Suites supporting
InterBase, Firebird, Advantage Database, MS SQL Server and
NexusDB V2
Upscene Productions
http://www.upscene.com
My blog:
http://blog.upscene.com/thomas/