DISTINCT в запросах не работает

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

DISTINCT в запросах не работает

Сообщение Mechanic » 07 сен 2007, 16:02

Всем привет! FireBird 1.5
У меня не работают простейшие запросы типа SELECT DISTINCT * FROM Трали-Вали... Причем, Трали-Вали таблица имеет 280 полей внутри. С пятьюдесятью полями запросы отрабатывались нормально всегда... Может ограничение на DISTINCT какое-нибудь есть? Дело не в данных это точно. Я на пустой таблице даже пробывал... Кстати ошибка так выглядит у меня:
invalid request BLR at offset 1518.
BLR syntax error: expected record selection expression clause at offset 1518, encountered 24.

Заранее спасибо! :D

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 07 сен 2007, 16:08

Простейшие запросы с дистинктом по 280 полям? Уже страшно.
Чего ж ты там столько набрал-то?
А вот почему не работает - не скажу. Вроде ограничений никаких не припоминается. Птицеводы подойдут, просветят, если захочут.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 08 сен 2007, 08:41

1) DISTINCT выполняется сортировкой, длина записи которой ограничена 64К.
2) Приведенная ошибка к DISTINCT отношение вряд ли имеет.

Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

Сообщение Mechanic » 10 сен 2007, 12:40

dimitr писал(а):1) DISTINCT выполняется сортировкой, длина записи которой ограничена 64К.
2) Приведенная ошибка к DISTINCT отношение вряд ли имеет.
Как это не имеет отношения когда простой запрос select distinct * from table не выполняется, а select * выполняется...

"длина записи которой ограничена 64К"... Не совсем понял что здесь за длина записи имеется ввиду.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 сен 2007, 13:29

что здесь за длина записи имеется ввиду
distinct * приводит к сортировке записи по максимальной длине столбцов. и если 280 столбцов по данным граничат с 64к, то возможно отсортировать такую запись нельзя, т.к. она в сортированном виде будет чуть больше 64к.

Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

Сообщение Mechanic » 10 сен 2007, 13:38

kdv писал(а):
что здесь за длина записи имеется ввиду
distinct * приводит к сортировке записи по максимальной длине столбцов. и если 280 столбцов по данным граничат с 64к, то возможно отсортировать такую запись нельзя, т.к. она в сортированном виде будет чуть больше 64к.
О... Вот, он и ответ наверное... :) Спасибо!

Ответить