Здравствуйте, Alexander M. Pravking!
Нет, больше ничего нет, я привёл реальный пример.
Да, согласен, как вариант, но это есть костыли...
Думаю что буду переходить на 8.3, как советует Олег.
On Thu, May 26, 2005 at 02:25:28PM +0400, you wrote:
-> On Thu, May 26, 2005 at 11:49:34AM +0300, Denis A. Egorov wrote:
-> > Вот версия postgresql:
-> >
-> > PostgreSQL 7.4.8 on i386-portbld-freebsd4.10, compiled by GCC 2.95.4
-> >
-> > Это о входящих данных:
-> >
-> > head -c 100 big.sql
-> > SELECT id FROM test WHERE id NOT IN ( '10', '100', '1000', '10000', '10001', '10002
-> >
-> > wc sql_big.sql
-> > 1 14091 122660 sql_big.sql
->
-> У тебя в WHERE только NOT IN или ещё что-то?
-> Postgres иногда не очень умно делает эквивалентные преобразования
-> булевых выражений, в определённых случаях в результате они получаются
-> просто конскими.
->
-> Как решение могу посоветовать создание временной таблицы (скажем,
-> denied), куда сложить нужные id'ы и заменить твой NOT IN на
-> NOT IN (SELECT id FROM test) или на NOT EXISTS (SELECT 1 FROM denied d
-> WHERE d.id = test.id);
->
->
-> --
-> Fduch M. Pravking
->
-> ---------------------------(end of broadcast)---------------------------
-> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
->
--
Denis A. Egorov