On 08/03/2016 10:02, Dmitry Yemanov wrote:
> All,
>
> The good thing is that the code internals are more or less ready to work 
> with context/stream number of any size, thanks to Claudio's refactoring. 
> So the issue is mostly about BLR.
>
> I see two possible solutions:
>
> 1) Bump BLR version, make all context-aware verbs to generate/parse 
> longer numbers (prefixed by counter, variable-length encoded, whatever) 
> if new BLR version is used. Support old BLR versions, for sure (for 
> migration, message descriptions, etc) but generate new BLR version for 
> new objects.
>
> The major problem here is backward compatibility. BLR version 6 cannot 
> be parsed by prior engines, so backward migration via gbak becomes 
> impossible (at least after some metadata have been modified in FB4).
>
If we use the new version only when the object actually uses more than
255 contexts, it's an object that cannot be really migrated backward.

But maybe instead of change the version, we can introduce BLR flags. By
default, a backward-compatible object would not generate any flag and
then generates the same BLR when created.

The initial BLR flag we could create is:

blr_flag, blr_flag_large_context_space

When an object has this flag (right after blr_version), BLR parser
parses the context numbers in a different way.


Adriano


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to