Subject Re: [firebird-support] Re: ISC Error Code 335544762
Author Helen Borrie
At 02:01 AM 11/01/2006 +0000, you wrote:
> >
> > Some of these "limits" boggle the mind. I can understand a limit
>dealing with
> > 4294967296/2147483648 at this point in the game, but where does 48k
>come from?
>
>Remembering the words of a man with some amazing <cough> insight, no-
>one would ever need more than 64K, so to use 75% of it for the plan ....
>
>Seriously though you can check the source to find out why. My guess is
>that there is something else limited to 64K, of which 16K is already
>allocated or reserved or something. Who knows, who cares.
>
>A good way to make a huge plan is to use something like
>
>select *
>from table
>where ID in (1,2,3,4,5,6,....,499,500)
>
>It will hit the index for every member of the IN set. The Between
>operator should be preferred where possible (such as the above case).
>
>select *
>from table
>where ID between 1 and 500
>
>It should be possible to simplify the plan though to avoid the error.

..of course, if one has a naming scheme that involves using all or most of
the available characters for index and table names, that's really going to
eat up a lot of bytes in the static IN() clause as well...and don't
overlook cases where your query is joining or ordering views that are
themselves very verbose, since that verbosity will propagate into the DSQL
plan.

And, no, I don't know where the 48Kb limit comes from. Ann will almost
certainly know. :-))

./hb