Kjell Rilbe wrote:

I know the SQL below is somewhat silly, but ignoring that, why did it give me this error:

Error executing query: Dynamic SQL Error
SQL error code = -204
Implementation limit exceeded
block size exceeds implementation restriction

The SQL is "only" about 7 kbyte and the "or-list" contains far fewer than the 1499 items that's maximum for "in-lists". So what implementation restriction was exceeded, exactly?

SELECT "Epostadress_1"."ECO_ID"
FROM "Epostadress" "Epostadress_1"
WHERE (("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?) or ("Epostadress_1"."Adress" = ?)
or ("Epostadress_1"."Adress" = ?))

Ann W. Harrison answers:

As the error says, your query produces an intermediate compilation block that exceeds the size allowed by the internal block allocation code - 32K, I think. The specific block type is almost certainly a CSB, compiler scratch block.

And, in response to your second question, there isn't a fixed number of conditions permitted - the types and sizes of the terms matter, and maybe also the lengths of the names.

The workaround for your particular query is to build up IN lists and OR them together.

Like this post? Share on: TwitterFacebookEmail


Related Articles


Author

Firebird Community

Published

Category

Gems from Firebird Support list

Tags