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

Reply via email to