Добрый день !
На Linux из редактора при работе конструкции
for each geo where int64(geo.geo) > 15 no-lock.
обрывается коннект к базе: Отсоединение; сервер БД останавливается. (2659)
При том же варианте int(geo.geo) - все ок.
Причем, если это делать с переменной int64(str), то тоже все ок.
Почему ?
11.6 linux приведение типов int64()
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: 11.6 linux приведение типов int64()
День добрый!
Какой тип данных у поля geo.geo?
Какая кодировку у БД?
Какой тип данных у поля geo.geo?
Какая кодировку у БД?
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: 11.6 linux приведение типов int64()
Подключение через разделяемую память или сетевое?
SP и/или hot-fix какие-то установлены?
SP и/или hot-fix какие-то установлены?
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: 11.6 linux приведение типов int64()
Проверил на sports с таблицей order-line, и полем price (DECIMAL), OpenEdge Release 11.6.3.
for each order-line where int64(Price) > 10 no-lock.
displ order-line.
Без проблем.
for each order-line where int64(Price) > 10 no-lock.
displ order-line.
Без проблем.
Re: 11.6 linux приведение типов int64()
Voobshche takije zaprosi pisat nekrasivo.
Ponjatno, chto v tablice GEO zapisej nemnogo i FULL-SCAN ne tak strashno.
Poprobuj tak:
for each geo no-lock:
if int64(geo.geo) > 15 then do:
/* more stuff here */
end.
end.
Ponjatno, chto v tablice GEO zapisej nemnogo i FULL-SCAN ne tak strashno.
Poprobuj tak:
for each geo no-lock:
if int64(geo.geo) > 15 then do:
/* more stuff here */
end.
end.
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: 11.6 linux приведение типов int64()
1. Согласен, что преобразования типов в запросе не есть очень хорошо.
2. Странно, что имеет место ошибка (279) SYSTEM ERROR: stkpush: stack overflow. Increase the -s parameter. База останавливается из-за неё, но что явилось причиной?
3. Возможно причина в нестандартной кодировке KOI8-RL. Думаю, стоит открыть кейс в тех.поддержке, приложив полный лог БД, в том числе, df-самой кодировки, содержимое startup.pf, df-таблицы и текстовый дамп таблицы, если не секретно конечно. Т.е. всё необходимое, что позволит воспроизвести ошибку.
4. Установить 11.7.3 и проверить на свежей версии.
Вероятно, что из-за кодировки KOI8-RL в поле есть какой-то спецсимвол, а может быть баг из-за неё.
Другой вариант, битый индекс по этому полю.
2. Странно, что имеет место ошибка (279) SYSTEM ERROR: stkpush: stack overflow. Increase the -s parameter. База останавливается из-за неё, но что явилось причиной?
3. Возможно причина в нестандартной кодировке KOI8-RL. Думаю, стоит открыть кейс в тех.поддержке, приложив полный лог БД, в том числе, df-самой кодировки, содержимое startup.pf, df-таблицы и текстовый дамп таблицы, если не секретно конечно. Т.е. всё необходимое, что позволит воспроизвести ошибку.
4. Установить 11.7.3 и проверить на свежей версии.
Вероятно, что из-за кодировки KOI8-RL в поле есть какой-то спецсимвол, а может быть баг из-за неё.
Другой вариант, битый индекс по этому полю.