La consulta es como consultar por el valor RECORD.atributo , pero donde el atributo no lo escribo directamente, sino que lo leo como string.
Quizas la pregunta no es clara, asi que lo explico con codigo.
Lo importante de la consulta lo marco en rojo.
Código:
  
Espero haberme explicado, porque la verdad no se como resolverlo y ya he leido varias lineas de manuales y foros.
FOR r_images IN
	SELECT i.*
	FROM idarouter.image i 
	JOIN idarouter.imagequeue iq 
		ON i.idimage_pk = iq.idimage_fk 
LOOP
FOR result IN
	select 
	json_array_elements
	(
		(
		SELECT  rr.jsonrule::json->'wherefields' FROM idarouter.routerules rr where rr.idrouterule_pk = idrouterule_
		)
	) as jsondata
 LOOP
	
	SELECT  result.jsondata->>'column', 
		result.jsondata->>'operator', 
		result.jsondata->>'suboperator', 
		result.jsondata->>'usecasesensitive', 
		result.jsondata->>'value' 
	INTO
		column_, 
		operator_, 
		suboperator_, 
		usecasesensitive_, 
		value_;
RAISE NOTICE 'SHOW THIS :[%]' ,'r_images.'||quote_ident(column_);
-- Lo que busco hacer es esto :
-- IF (r_images.mensaje  = 'HOLA' )
--Como pueden ver, la columna mensaje en realidad es "column_"
--O sea, que dentro de la variable column_ esta el nombre de la columna "mensaje"
--y en otra vuelta será otra columna.
  IF (r_images.column_  = 'HOLA')
      hacer algo;
  END IF;
-- Es claro que no puedo usar directamente r_images.column_.
-- Tambien se , que para ejecutar sentencias a partir  de un string
-- podria usar quote_ident(column_) con EXECUTE, pero eso es
-- en una sentencia, y aca en este caso, estoy tratando de aplicar sobre
-- RECORD.Atributo.
  END LOOP;
END LOOP;
Alguna sugerencia ?
Desde ya muchas gracias,
 
 


