Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Странное приведение типов / 3 сообщений из 3, страница 1 из 1
12.07.2007, 14:32
    #34656584
Thamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное приведение типов
Pg 8.1.8
Проблема такая:
в plpgsql через execute создается RULE
Код: plaintext
1.
2.
3.
4.
5.
6.
      EXECUTE
               'CREATE OR REPLACE RULE блаблабла
               'WHERE NEW.game_code_fk = ''' || p_game_code || ''' \n' ||
               '  AND NEW.gtrx_type = '''||v_dbtcrdt_char||''' \n' ||
               'DO INSTEAD \n' ||
               'блабла';

Поле game_code_fk имеет тип VARCHAR(32), но потом просматривая rule definition я вижу:
Код: plaintext
1.
...  WHERE new.game_code_fk::text = 'xx'::text AND new.gtrx_type = 'A'::bpchar DO INSTEAD ...
хотя ожидал увидеть:
Код: plaintext
1.
...  WHERE new.game_code_fk = 'xx'::varchar AND new.gtrx_type = 'A'::bpchar DO INSTEAD ...

Даже если я делаю явное приведение типов
Код: plaintext
NEW.game_code_fk = ''' || p_game_code || '''::VARCHAR \n' ||
,
то всё равно получаю
Код: plaintext
1.
...  WHERE new.game_code_fk::text = 'xx'::character varying::text AND new.gtrx_type = 'A'::bpchar DO INSTEAD ...

Вопрос собственно один: почему так?
...
Рейтинг: 0 / 0
12.07.2007, 19:48
    #34657833
MBG
MBG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное приведение типов
Как я понимаю, varchar deprecated, потому мягко и ненавязчиво вас на тип text отправляют.
...
Рейтинг: 0 / 0
31.07.2007, 17:30
    #34696355
Paramedic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное приведение типов
В первый раз слышу, что varchar depricated
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Странное приведение типов / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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