powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / баг при выполнении запроса из С ф-ции
1 сообщений из 1, страница 1 из 1
баг при выполнении запроса из С ф-ции
    #32379266
Фотография Alexander Naschansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нарвался на такую чепуху:
создается тип, допустим 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 - на самой последней не пробовал.
Я это как то лечил - перерыл исходники, нашел приблизительно где падало и передвинул вызов некоторой ф-ции и оно кое-как заработало, но вылезли еще другие баги и я забил на это дело.

Вопросы: кто подобное наблюдал? как лечил? есть ли уже патч для этого дела? ежели нет - а не написать ли это в баг лист?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / баг при выполнении запроса из С ф-ции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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