On 24/03/2016 10:53, Dmitry Yemanov wrote: > 24.03.2016 16:24, Adriano dos Santos Fernandes wrote: >> 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. > It's doable, just with minor tweaks - BLR version tag should be adjusted > in-place after the whole BLR stream is composed.
Maybe not. At compilation phase (before BLR generation starts) things as how many contexts was used are already known. >> 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. > I'd say its handling is likely to be absolutely the same as for new BLR > version, so I don't see any major difference. But I will think more > about this. > It's just more explicit. I have no idea what was changed between BLR versions 4 and 5. Nor I will understand looking at a procedure BLR why it used 5 (to maintain possible compatibility) or 6 (to use a new semantic - but what?). 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