Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.01.2004, 14:18
|
|||
---|---|---|---|
|
|||
баг при выполнении запроса из С ф-ции |
|||
#18+
Нарвался на такую чепуху: создается тип, допустим t_sample. В качестве ф-ций INPUT и OUTPUT для t_sample указываються ф-ции из либы (LANGUAGE C), допустим: CREATE FUNCTION t_sample_in(cstring) RETURNS t_sample AS 't_sample.so' , 't_sample_in' LANGUAGE C IMMUTABLE STRICT; CREATE FUNCTION enum_out(t_sample) RETURNS cstring AS 't_sample.so' , 't_sample_out' LANGUAGE C IMMUTABLE STRICT; CREATE TYPE t_sample (INTERNALLENGTH = 4, INPUT = t_sample_in, OUTPUT = t_sample_out); Функеции, при вызове, лезут за данными в некоторую таблицу при помощи SPI ( SPI_connect, SPI_exec, SPI_finish ) - запосы у них простые, типа: select name_fld from dict_table where id = %d; -- < здесь name_fld - это варчар Так вот - при их неявном вызове, например вставка значения t_sample в таблицу, вылетает сообщение об ошибке о том, что не было входа в контекст вызова или чегото еще (дело было некоторое время назад и я уж подзабыл детали). Например на коде: insert into some(name_fld) values ('name_val'); -- < здесь name_fld - поле типа t_sample, для 'name_val' неявно вызываеться ф-ция INPUT когда, я их вызывал явно вроде все работало, например такое: insert into some(name_fld) values (t_sample_in('name_val')); -- отрабатывает нормально Падало, со 100% уверенностью, не не моем С-коде - размеры буферов, порядок вызова - все соблюдалось. Это наблюдалось для версий 7.2, 7.3, 7.4b - на самой последней не пробовал. Я это как то лечил - перерыл исходники, нашел приблизительно где падало и передвинул вызов некоторой ф-ции и оно кое-как заработало, но вылезли еще другие баги и я забил на это дело. Вопросы: кто подобное наблюдал? как лечил? есть ли уже патч для этого дела? ежели нет - а не написать ли это в баг лист? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=2007986]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 550ms |
0 / 0 |