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
