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