On 03/06/12 03:42, Ann Harrison wrote: > Claudio, > > Hello, currently the engine supports BLR4 (legacy) and BLR 5. All FB >> versions generate BLR 5. But we are hitting some limits and I think we >> should increase it again (this would be for the first time for FB). Dmitry >> asked me to get rid of the 255 streams limit but what I did is only the >> starting point. >> >> Problematic places that I marked in the code: >> >> ExprNodes.cpp: >> // CVC: bottleneck >> const StreamType streamCount = csb->csb_blr_reader.getByte(); >> >> for (StreamType i = 0; i < streamCount; ++i) >> { >> const USHORT n = csb->csb_blr_reader.getByte(); >> node->internalStreamList.add(csb->csb_rpt[n].csb_stream); >> } >> >> Number of streams is limited to 255, despite me lifting the restrictions in >> other places. >> >> Again, ExprNodes.cpp, this looks like the complementary part: >> // bottleneck >> fb_assert(stack.object()->ctx_context <= MAX_UCHAR); >> dsqlScratch->appendUChar(stack.object()->ctx_context); >> >> RecordSourceNodes.cpp >> // bottleneck >> int count = (unsigned int) csb->csb_blr_reader.getByte(); >> // Pick up the sub-RseNode's and maps. >> while (--count >= 0) >> >> There may be other places I'm not aware of. The important idea is that BLR >> is expected to hold those values in single bytes and this is not enough >> anymore. I see raising the BLR version as the only solution. > > I think you're right.
And taking into an account that we do not support ODS < 12 in current engine - do we need to keep support of old BLR versions? I see 2 ways for old BLR to arrive in ODS12 database. First of all - when old database is restored. May be we should learn gbak to recompile procedures/triggers/etc when doing that restore isntead restoring them? Next - in messages from old clients. This is probably the only place where we should keep old BLR versions support. ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel