24.12.2014 18:21, Jim Starkey wrote:
> On 12/24/2014 11:04 AM, Dimitry Sibiryakov wrote:
>>      No, I asked exactly that. Older engines don't need new fields, they can 
>> work with new
>> ODS easily. Newer engines need new fields, they cannot work with old ODS. 
>> That's how I
>> understand it.
>
> No, an older engine can't know what has changed, so there is no way it
> can access a more recent minor ODS.

   AFAIU, minor changes are minor because they don't need any special 
treatment, they can 
be just ignored by older engines.
   For example, I'm developing a new engine with replication inside, so I add 
new field 
RDB$REPLICATED into RDB$RELATIONS. My new engine needs this field, it cannot 
work without 
it, so I raise ODS version and refuse to work with old databases. But older 
engines cannot 
replicate, they can work with all databases as usual, no matter if the field is 
there or 
not. That's why this change is a minor one.
   IMHO.

> By definition, an engine must be able to understand all earlier minor
> versions of the same major version.  It new system fields aren't there,
> the engine must be able to work around that.

   Workarounding mean checks in the code. Previous Firebird versions used to 
workaround 
major ODS changes. That was ugly and hard to maintenance.

-- 
   WBR, SD.

------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to