Subject Re: [firebird-support] IN clause limitation
Author Alexandre Benson Smith
G. Plante wrote:
> Hi,
>
> I have to generate queries with IN clause that looks like something
> like:
> SELECT * FROM CUSTOMERS WHERE CUSTOMER_CODE IN ('CUS-0000001','CUS-
> 0000666','CUS-0000888', ... );
>
> My problem is the limitation of 1499 items of the IN clause.
>
> Since my program has a very complex security and also since reports
> are generated using an external report generator (so I do not have
> complete control on queries of the report generator), I cannot use
> temporary tables or view or any other work arround. Unfortunately, I
> have to use an IN clause.
>
> For example, it can have 200 000 customers in the CUSTOMERS table.
> The user (according to his security level) can access only 10 000
> customers. And when this same user run the report, he could decide to
> print report only for 5000 customers he selected. So, without telling
> you all details, the only way for the moment I have is to use the IN
> clause.
>
> Now my question is:
> Since computers now have a lot of memory and since computers are now
> faster than ever, why there is still a 1499 limitation in the IN
> clause? Is Firebird is planning to increase or illiminate this
> limitation?
>
> Thanks in advance for your answers.
>
> G. Plante
>

I tend to disagree with you...

You always have a chance to use the same 10000 values and populate a
temporary table and use a join to produce the desired result on the
report...

see you !

--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br