update array of composite type

VanillaNInja
Дата: 17.04.2015 13:55:24
Здрасте!
Никак не могу понять, как добраться до столбца массива, содержащего composite_type:
--сам тип:

CREATE  TYPE typing_resources AS (
	resource_id integer,
	group_id integer
);


--пытаюсь присвоить

(_resources[0]).group_id = nextval('sr_res_group_seq');
WHERE _resources.resource_id is not null

--ERROR:  syntax error at or near "("


_resources.group_id = nextval('sr_res_group_seq');
WHERE _resources.resource_id is not null

--[Err] ERROR:  "_resources.group_id" is not a known variable


Если работать не с массивами таких данных, то такое работает.

Подскажите, как правильно это сделать, пожалуйста. Спасибо.
p2.
Дата: 17.04.2015 15:19:31
VanillaNInja
пытаюсь
где ты себя пытаешь? покажи полноценный лог действий в psql.
qwwq
Дата: 17.04.2015 15:29:24
+
BEGIN;


CREATE  TYPE typing_resources AS (
	resource_id integer,
	group_id integer
);

-- plpgsql:
DO
$d$
DECLARE
	_resources typing_resources[] ;
	_resource typing_resources ;
BEGIN
	
--v1
	_resource.group_id := 1;
	_resources[0]:=_resource ;	
	RAISE NOTICE ' %' , _resources;
--v2	
	_resources[0]:=(null,1)::typing_resources;
	RAISE NOTICE ' %' , _resources;
	--
	RAISE NOTICE ' %' , _resources[0].group_id;
	RAISE NOTICE ' %' , (_resources[0]).group_id;

END;
$d$;

ROLLBACK;
VanillaNInja
Дата: 17.04.2015 15:48:43
qwwq,

Ох, как сложно и некрасиво это делается в постгре. Но спасибо вам большое!