Subject | Re: [IBO] problems with joins involving stored procedures |
---|---|
Author | gbien@intekom.co.za |
Post date | 2001-06-03T21:55:47Z |
> This has NOTHING to do with IB_WISQL or IBConsole intrinsically.They only
> trigger a bug in the server: either IB or FB will die immediately.possible
>
> The reason is that both tools retrieve QUERY PLAN information. It's
> to execute successfully some SQL queries if you don't ask theserver how it
> prepared the statement. However, as soon as you request planinformation,
> the server dies with a memory access error. (Of course, only someplans
> fails or you would see the bug always.)the plan it
>
> We at Firebird know how the bug happens, but fixing it is not
> straightforward. The server generates a binary representation of
> created (using byte code tags) and there's a routine thatinterprets such
> info to convert it into human readable information, the "PLAN" line(s) you
> see in IBConsole and IB_WISQL. The binary information is truncatedhence the
> routine that decodes it never finds the matching end (so itcontinues
> advancing) and goes reading out of the input buffer limits,producing a
> typical buffer overrun. Putting additional checks on theinterpreter code
> would stop the visible bug, but would hide the real cause and hencewould
> deliver an incomplete or wrong plan for the user that wants it.Sincerely,
> since Borland implemented the "plan" thing, I would hope that theywill take
> a peek at it, assuming they are familiar with such code, becausethe binary
> plan extraction is not necessarily a simple routine.Claudio,
>
Thanks for the relatively detailed explanation of
what is going on. Understanding the interaction helped a
lot. I sort of suspected that The problem was with the
server, which should NEVER terminate abnormally, and
not IBOjects. IBObjects will most likely be the IB-Delphi
components I use in a upcoming project
Geoff