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.

Ann
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
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-dev2
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to