Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача в функцию массивов кастомных типов. / 3 сообщений из 3, страница 1 из 1
25.06.2018, 18:12
    #39665505
Azimuth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача в функцию массивов кастомных типов.
Есть следующие типы:
CREATE TYPE _goods_item AS (goods_id bigint, point_id bigint, quantity integer, volume integer, is_perishable boolean);
CREATE TYPE _distance_item AS (point_id bigint, distance integer);
CREATE TYPE _point_item AS (point_id bigint, point_type bigint, distances _distance_item[]);

Есть функция:
CREATE OR REPLACE FUNCTION _generate( goods_item _goods_item[], point_item _point_item[] ) RETURNS SETOF integer AS '$pg', '_generate' LANGUAGE C STRICT STABLE;

Как ее правильно вызвать?

Для
CREATE OR REPLACE FUNCTION _generate2( goods_item libc_goods_item[], point_item libc_distance_item[] ) RETURNS SETOF integer AS 'pg', '_generate2' LANGUAGE C STRICT STABLE;
Вызов выглядит как:
select _generate2('{"(1,3,3,9,false)", "(10,30,30,90,false)"}'::libc_goods_item[], '{"(22,332)", "(243,24323)", "(243,24323)"}'::libc_distance_item[]);
...
Рейтинг: 0 / 0
25.06.2018, 18:33
    #39665512
Azimuth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача в функцию массивов кастомных типов.
select f_sys_collects_generate('{"(1,3,3,9,false)", "(10,30,30,90,false)"}'::libc_goods_item[], '{"(22, 334, ARRAY[332,2])", "(243, 33, ARRAY[24323,22])"}'::libc_point_item[]);

...
Рейтинг: 0 / 0
26.06.2018, 01:21
    #39665656
Azimuth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача в функцию массивов кастомных типов.
Сам спросил - сам отвечаю:
Переделал на array[] стало нагляднее и заработало:
Код: sql
1.
select _generate(array[(1,3,3,9,false), (10,30,30,90,false)]::_goods_item[], array[(10,23001, array[(10,20), (4342,20)]::_distance_item[]), (332,23000, array[(10,20), (2212,232), (23424,244)]::_distance_item[])]::_point_item[]);
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача в функцию массивов кастомных типов. / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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