On 3/24/2016 9:24 AM, Adriano dos Santos Fernandes wrote: > 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 > >
Adding the flag would break backwards compatibility, so it's a non-starter. Creating a new BLR version number doesn't make sense since it is hoped that future versions of Firebird will treat BLR as at most a legacy interface. Now, that said, in the first incarnation of BLR at DEC I forgot to put a version number on front. Recognising that all existing blr began with blr_begin (2), the first version number for BLR was three -- two meant, "no version number"). If you felt compelled to come up with some sort of hack, a variation on this might work. Or you could just define a new BLR version, setting it only after BLR had been generated and a longer context id was required. Better to punt and go with SQL. It does appear that SQL has vanquished QUEL and DEC DML. ------------------------------------------------------------------------------ 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