powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Несоответствие работы Netezza документации или недопонимание
11 сообщений из 11, страница 1 из 1
Несоответствие работы Netezza документации или недопонимание
    #38481740
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, в мануале по хранимым процедурам нетизы есть фраза

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Literals and Math Operations in Expressions If your stored procedures perform math operations in expressions, carefully consider the supported ranges for literals and the possible implicit typecasts that the Netezza system may perform. These ranges and behaviors could cause unexpected results in complex math expressions.

For example, all integer literals are 32-bit (signed) numbers by default, which supports a range of values from -2147483648 to 2147483647. If you perform math operations on a literal, use caution to check for overflows. For example, the following stored procedure defines a numeric value n, assigns it the largest supported value (2147483647) and then adds 1 to the value:

CREATE OR REPLACE PROCEDURE num() RETURNS BOOL LANGUAGE NZPLSQL AS BEGIN_PROC DECLARE
n NUMERIC;
BEGIN
n := 2147483647;
RAISE NOTICE 'n is %', n;
n := 2147483647 + 1;
RAISE NOTICE 'n is %', n;
END;
END_PROC;

If you create and run this stored procedure, the output is as follows:

NOTICE: n is 2147483647
NOTICE: n is -2147483648

The output demonstrates that when a value “overflows” its maximum range value, the value wraps to its minimum value and begins again. To avoid this counter-wrap behavior, you must either use a cast operation to cast n to a higher precision type, or assign values to intermediate values. For example, the following stored procedure creates the counter-wrap issue for the numeric value n, but then



Запускается хранимка
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE PROCEDURE SP_NEW_PROCEDURE() RETURNS BOOLEAN LANGUAGE NZPLSQL AS 
BEGIN_PROC 
DECLARE n NUMERIC; BEGIN
	
	n := 2147483647;
	RAISE NOTICE 'n is %', n;
	n := 2147483647 + 1;
	RAISE NOTICE 'n is %', n;
END;
END_PROC;
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38481747
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А результат такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Результат:
ERROR [01000] NOTICE:  n is 2147483647

ERROR [01000] NOTICE:  Error occurred while executing PL/pgSQL function SP_NEW_PROCEDURE

ERROR [01000] NOTICE:  line 7 at assignment

ERROR [HY000] ERROR:  overflow in 32 bit arithmetic


Собственно меня то такое поведение больше устраивает, ибо оно логично и понятно, но вопрос: о чём тогда мануал - выходит он некорректен или я чего-то недопонимаю?
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38482768
Shtock,

Дока не права.
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38483377
Поднял PMR в поддержку # 12703,821,821
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38484597
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Есть у меня предчувствие, что подкину ещё таких несоответствий :)
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38486796
Shtock,

очень хорошо. постараюсь все их запихать в по назначению (в поддержку)
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38487085
Andrey.L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доку может и поправят в соответствие с тем как работает, а ПО вряд ли :(
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38488051
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey.L,
да, все вендоры слишком торопяться в гонке друг с другом, как говорится "time to market"... Вот и лезут косяки - время такое.
Но не в данном случае. =) Система ведёт себя так, как устраивает пользователя, а вот дока отстала.
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38490817
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, имею некую презентацию "Netezza_Technical_Deep_Dive_for_Technical_Sellers_rus", переведённую неким Андреем Выходцевым :) и там опять ошибка :). Приводится пример Zone map с типом varchar, а 3 страницы назад рассказывается, что она только для int и date :)
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38491306
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я понял в чём глубина глубин - авторы презентации хотели показать, что при кластеризации таблиц происходит как-бы расширение набора типов данных для zonemap, только не очень наглядно это вышло
...
Рейтинг: 0 / 0
Несоответствие работы Netezza документации или недопонимание
    #38507497
По PMR отписались что поправят доку ддя всех версий.
По поводу zonemaps для varchar - работает в случае использования кластерных таблиц или mat. View но в этом случае zonemap'ятся первые 10 байт
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Несоответствие работы Netezza документации или недопонимание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]