Регистрация

11.6 linux приведение типов int64()

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
Старожил
Сообщения: 48
Зарегистрирован: Сб авг 04, 2007 1:48 pm

11.6 linux приведение типов int64()

Сообщение valun » Ср май 02, 2018 10:41 am

Добрый день !

На Linux из редактора при работе конструкции

for each geo where int64(geo.geo) > 15 no-lock.

обрывается коннект к базе: Отсоединение; сервер БД останавливается. (2659)

При том же варианте int(geo.geo) - все ок.
Причем, если это делать с переменной int64(str), то тоже все ок.
Почему ?

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: Пт мар 25, 2005 6:05 pm
Откуда: Progress Technologies

Re: 11.6 linux приведение типов int64()

Сообщение Arelav » Чт май 10, 2018 11:33 am

День добрый!

Какой тип данных у поля geo.geo?
Какая кодировку у БД?

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: Пт мар 25, 2005 6:05 pm
Откуда: Progress Technologies

Re: 11.6 linux приведение типов int64()

Сообщение Arelav » Чт май 10, 2018 11:38 am

Подключение через разделяемую память или сетевое?
SP и/или hot-fix какие-то установлены?

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: Пт мар 25, 2005 6:05 pm
Откуда: Progress Technologies

Re: 11.6 linux приведение типов int64()

Сообщение Arelav » Чт май 10, 2018 11:44 am

Проверил на sports с таблицей order-line, и полем price (DECIMAL), OpenEdge Release 11.6.3.
for each order-line where int64(Price) > 10 no-lock.
displ order-line.

Без проблем.

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: Пт мар 25, 2005 6:05 pm
Откуда: Progress Technologies

Re: 11.6 linux приведение типов int64()

Сообщение Arelav » Чт май 10, 2018 11:48 am

valun писал(а):обрывается коннект к базе: Отсоединение; сервер БД останавливается. (2659)


Лог базы тоже не помешает посмотреть более детально.

Старожил
Сообщения: 48
Зарегистрирован: Сб авг 04, 2007 1:48 pm

Re: 11.6 linux приведение типов int64()

Сообщение valun » Пт май 11, 2018 10:50 am

Arelav писал(а):День добрый!

Какой тип данных у поля geo.geo?
Какая кодировку у БД?


Добрый день !

KOI8-RL,
тип поля geo - char индексное.

Старожил
Сообщения: 48
Зарегистрирован: Сб авг 04, 2007 1:48 pm

Re: 11.6 linux приведение типов int64()

Сообщение valun » Пт май 11, 2018 10:55 am

Arelav писал(а):
valun писал(а):обрывается коннект к базе: Отсоединение; сервер БД останавливается. (2659)


Лог базы тоже не помешает посмотреть более детально.

[2018/05/11@09:53:14.924+0300] P-24765 T-1 I SRV 77: (-----) Previous message sent on behalf of user 422, server pid 24765, broker pid 6765
[2018/05/11@09:53:14.958+0300] P-7001 T-1 F SRV 13: (279) SYSTEM ERROR: stkpush: stack overflow. Increase the -s parameter.
[2018/05/11@09:53:14.958+0300] P-7001 T-1 I SRV 13: (439) ** Save file named core for analysis by Progress Software Corporation.
[2018/05/11@09:53:14.959+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 828, userid danaro, on plato6.ltk 99.
[2018/05/11@09:53:14.960+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 862, userid anikaz, on plato5.ltk 107.
[2018/05/11@09:53:14.960+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 866, userid erijeg, on plato6.ltk 9.
[2018/05/11@09:53:14.961+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 879, userid ingpan, on platon-daemons 48.
[2018/05/11@09:53:14.962+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 704, userid dwhbase, on platon-daemons batch.
[2018/05/11@09:53:14.962+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 520, userid annbir, on plato6.ltk 127.
[2018/05/11@09:53:14.963+0300] P-7001 T-1 I SRV 13: (739) Logout usernum 495, userid valtut, on plato4.ltk 5.
[2018/05/11@09:53:14.963+0300] P-7001 T-1 I SRV 13: (2520) Stopped.

моя запись usernum 495, userid valtut

11.6 без SP

Старожил
Аватара пользователя
Сообщения: 516
Зарегистрирован: Чт сен 21, 2006 12:19 am
Откуда: Рига, Латвия

Re: 11.6 linux приведение типов int64()

Сообщение dmikai » Пн май 14, 2018 12:04 pm

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.

Администратор
Аватара пользователя
Сообщения: 1880
Зарегистрирован: Пт мар 25, 2005 6:05 pm
Откуда: Progress Technologies

Re: 11.6 linux приведение типов int64()

Сообщение Arelav » Пн май 14, 2018 4:49 pm

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 в поле есть какой-то спецсимвол, а может быть баг из-за неё.
Другой вариант, битый индекс по этому полю.

Старожил
Сообщения: 48
Зарегистрирован: Сб авг 04, 2007 1:48 pm

Re: 11.6 linux приведение типов int64()

Сообщение valun » Вт май 15, 2018 10:01 am

dmikai писал(а):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.


да, так работает, спасибо :)

Старожил
Сообщения: 48
Зарегистрирован: Сб авг 04, 2007 1:48 pm

Re: 11.6 linux приведение типов int64()

Сообщение valun » Вт май 15, 2018 10:03 am

Arelav писал(а):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 в поле есть какой-то спецсимвол, а может быть баг из-за неё.
Другой вариант, битый индекс по этому полю.


ок, попробую новую поставить

Вернуться в PROGRESS - АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3