Olá boa dia a todos,
 
	Estou com um problema num retorno de uma fuction no postgres. É uma query dinamica com variáveis de entrada status, vendedor, datas. Quando executo a function ele me retorna o resultado no formato JSON e não em colunas como eu desejo. Os filtros estão corretos, quando filtro pelas variáveis me retorna o resultado esperado, porém em formato JSON. Já revisei toda essa function e não estou encontrando o erro ou solução para que ela me retorne em colunas no formato de tabela. Se alguém me puder me ajudar , desde já agradeço muito.
 
	Segue a function:
 
	--DROP FUNCTION relacional.lista_pedido_site_status_data(varchar,varchar,date,date); 
	--SELECT relacional.lista_pedido_site_status_data('Gold', NULL,NULL,NULL); 
	CREATE OR REPLACE FUNCTION relacional.lista_pedido_site_status_data(v_status varchar, v_vendedor varchar,  
	v_data_venda_ini date, v_data_venda_fim date) 
	 RETURNS TABLE(cliente character varying, status character varying, vendedor character varying, produto character varying, data_venda text,  
	total numeric) 
	 LANGUAGE plpgsql 
	AS $function$
 
	    declare v_initial_date text; 
	    declare v_nvendedor text; 
	    declare v_nstatus text;
 
	 
	BEGIN 
	     
	    /*********************************************/ 
	    IF v_data_venda_ini is NOT NULL AND v_data_venda_fim is NOT NULL THEN 
	        select v_data_venda_ini into v_data_venda_ini; 
	        select v_data_venda_fim into v_data_venda_fim; 
	        select ' and v.data between '''  || v_data_venda_ini ||  ''' and '''  || v_data_venda_fim ||''' ' 
	        into v_initial_date; 
	    ELSEIF v_data_venda_ini is NOT NULL AND v_data_venda_fim is NULL THEN 
	        select v_data_venda_ini into v_data_venda_ini; 
	        select ' and v.data = ''' || v_data_venda_ini ||  ''' ' 
	        into v_initial_date; 
	    ELSE v_initial_date  = ''; 
	    END IF;
 
	    /*********************************************/
 
	    IF v_vendedor is NOT NULL THEN 
	        select ' and vd.nome = ''' || v_vendedor ||   ''' ' 
	        into v_nvendedor; 
	    ELSE v_nvendedor = ''; 
	    END IF;
 
	    /*********************************************/
 
	    IF v_status is NOT NULL THEN 
	        select ' and c.status = ''' || v_status ||  ''' ' 
	        into v_nstatus; 
	    ELSE v_nstatus = ''; 
	    END IF;
 
	    /*********************************************/
 
	 
	RETURN QUERY 
	EXECUTE ' 
	SELECT DISTINCT 
	               c.cliente, 
	               c.status, 
	               vd.nome as vendedor, 
	               p.produto, 
	               to_char(v.data, ''DD/MM/YYYY'') as data_venda, 
	               v.total 
	             
	FROM relacional.vendas v 
	              inner join relacional.itensvenda it on it.idvenda = v.idvenda 
	              inner join relacional.produtos p on p.idproduto = it.idproduto 
	              inner join relacional.clientes c on c.idcliente = v.idcliente 
	              inner join relacional.vendedores vd on vd.idvendedor = v.idvendedor 
	    WHERE 1=1 ' 
	    || v_initial_date 
	    || v_nvendedor 
	    || v_nstatus 
	    || ' 
	limit 30 '; 
	END; 
	$function$ 
	;
 
	O resultado que me retorna é esse: