|
Передача в функцию массивов кастомных типов.
|
|||
---|---|---|---|
#18+
Есть следующие типы: 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[]); ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2018, 18:12 |
|
Передача в функцию массивов кастомных типов.
|
|||
---|---|---|---|
#18+
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[]); ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2018, 18:33 |
|
Передача в функцию массивов кастомных типов.
|
|||
---|---|---|---|
#18+
Сам спросил - сам отвечаю: Переделал на array[] стало нагляднее и заработало: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2018, 01:21 |
|
|
start [/forum/topic.php?fid=53&fpage=53&tid=1995706]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 342ms |
total: | 456ms |
0 / 0 |