Страница 1 из 1

FB 1.5.2 vs Linux абортится при простом запросе

Добавлено: 03 июн 2005, 15:00
ttyS
Есть сервак под линуксом
на нем вертится FB 1.5.2
при запросе SELECT поле1, cast( поле2 as varchar(512) ) as tt FROM <некая db> все хорошо;

при запросе SELECT поле1, cast( поле2 as varchar(512) ) as tt FROM <некая db> order by 2 все плохо (выходит по аборту); хотя в винде все хорошо (на винде 1.5 RC5);

при запросе SELECT поле1, cast( поле2 as varchar(256) ) as tt FROM <некая db> order by 2 все хорошо;

ГДЕ БЕДА КАК С ЭТИМ ЖИТЬ, НЕУЖТО ВИНДА ПОБОКУ ПРОПУСКАЕТ РАЗМЕР ИНДЕКСА А ЛИНУКС ПЕДАНТИЧЕН

При аборте выходит ругань ссылающаяся на lc_ascii line 615
в которой происходит проверка длины ключа и он равен 256

Добавлено: 03 июн 2005, 15:32
Merlin
В диск на том компе где пЫнгвин, куда tmp настроен, ещё одну поверхность воткни и будет тебе щастье.

Добавлено: 03 июн 2005, 15:35
kdv
1. что за "поле2", какой тип
2. что значит "пропускает размер индекса" - ни о каком размере или индексе тут речь не идет.

Добавлено: 03 июн 2005, 15:36
ttyS
Merlin писал(а):В диск на том компе где пЫнгвин, куда tmp настроен, ещё одну поверхность воткни и будет тебе щастье.
Что-то не понял, если возможно поподробнее, у меня на tmp полный доступ пиши что хочешь и в конфиге тоже прописан ...

Добавлено: 03 июн 2005, 15:38
ttyS
kdv писал(а):1. что за "поле2", какой тип
varchar(100)
2. что значит "пропускает размер индекса" - ни о каком размере или индексе тут речь не идет.
Сори, размер ключа по которому он сортирует

Добавлено: 03 июн 2005, 15:47
Merlin
ttyS писал(а):
Merlin писал(а):В диск на том компе где пЫнгвин, куда tmp настроен, ещё одну поверхность воткни и будет тебе щастье.
Что-то не понял, если возможно поподробнее, у меня на tmp полный доступ пиши что хочешь и в конфиге тоже прописан ...
Доступ, гришь... При сортировке выборки (немалой, как я понимаю) по полю 256 символов доступа для tmp-файла хватает, а по вдвое большему не хватает, доступ кончается.

Добавлено: 03 июн 2005, 15:50
ttyS
Merlin писал(а):
ttyS писал(а):
Merlin писал(а):В диск на том компе где пЫнгвин, куда tmp настроен, ещё одну поверхность воткни и будет тебе щастье.
Что-то не понял, если возможно поподробнее, у меня на tmp полный доступ пиши что хочешь и в конфиге тоже прописан ...
Доступ, гришь... При сортировке выборки (немалой, как я понимаю) по полю 256 символов доступа для tmp-файла хватает, а по вдвое большему не хватает, доступ кончается.
При значении 257 беда таже, если вариант что нет места на диске то там 100G свободы 2G RAM, А ЗАПИСЕЙ 5 ШТУК

Добавлено: 03 июн 2005, 16:01
Merlin
Стук в подвале. LI-V1.5.1.4481 Firebird 1.5, LI-V1.5.2.4731 Firebird 1.5

SELECT code, cast( name as varchar(16000) ) as tt from classes order by 2

полёт нормальный. Кстати, индексы после Cast вообще не при деле, в этом случае сортируется натуралом.

Добавлено: 03 июн 2005, 16:05
ttyS
Merlin писал(а):Стук в подвале. LI-V1.5.1.4481 Firebird 1.5, LI-V1.5.2.4731 Firebird 1.5

SELECT code, cast( name as varchar(16000) ) as tt from classes order by 2

полёт нормальный. Кстати, индексы после Cast вообще не при деле, в этом случае сортируется натуралом.
Ты брал готовый или сборку, я собирал ...
тем не менее ругань
При аборте выходит ругань ссылающаяся на lc_ascii line 615
в которой происходит проверка длины ключа и он равен 256

Добавлено: 03 июн 2005, 16:15
hvlad
Какой чарсет
a) базы
b) поля
c) коннекта
?

Добавлено: 03 июн 2005, 16:18
hvlad
Да, в догонку - ты сам собирал DEBUG build.
Собери RELEASE и проверь

Добавлено: 03 июн 2005, 16:45
ttyS
hvlad писал(а):Да, в догонку - ты сам собирал DEBUG build.
Собери RELEASE и проверь
Сенкс спасло, странно конечно но факт ... в дебаге не работает а в релизе все ок ... интересно как они баги отлавливают ;)

Добавлено: 04 июн 2005, 01:13
hvlad
Ты нарвался на assert для которого я лично не вижу смысла. В release сборке он, естественно, превращается в пустую строку.

Добавлено: 06 июн 2005, 09:58
kdv
а зачем сам собирал? приключений охота?