Bueno, muchas gracias por tu ayuda, creo al final de cuentas mi error era que no lei a cabalidad tu ejemplo: El resultado final fue:
Código PHP:
CREATE OR REPLACE FUNCTION p_get_blocks_count(integer, varchar,varchar,varchar,varchar) RETURNS SETOF type_block_count AS $BODY$
DECLARE
filter ALIAS FOR $1;
list ALIAS FOR $2;
city ALIAS FOR $3;
socioeconomic ALIAS FOR $4;
country ALIAS FOR $5;
sql_query varchar;
query_result type_block_count;
BEGIN
IF filter = 1 THEN
sql_query := 'SELECT *
FROM conteo_manzanas_localidad_'||country||'
WHERE locale_code IN ('||list||') AND
city_code = '||city||' AND
socioeconomic_status IN ('||socioeconomic||')';
FOR query_result IN EXECUTE sql_query LOOP RETURN NEXT query_result;
END LOOP;
ELSE
sql_query := 'SELECT *
FROM conteo_manzanas_barrios_'||country||'
WHERE locale_code IN ('||list||') AND
city_code = '||city||' AND
socioeconomic_status IN ('||socioeconomic||')';
FOR query_result IN EXECUTE sql_query LOOP RETURN NEXT query_result;
END LOOP;
END IF;
RETURN;
END $BODY$
LANGUAGE plpgsql;
EL LLAMADO FINAL A LA FUNCION FUE:
Código PHP:
SELECT *
FROM p_get_blocks_count(1,$$'11','01','02','04','06','8','12','13','15'$$::varchar,'11001',$$'3','2','6','4','5'$$::varchar,'co')
Y EL TIPO QUE CREE FUE ESTE:
Código PHP:
CREATE TYPE type_block_count AS
(country_name varchar,
region_name varchar,
city_name varchar,
locale_name varchar,
locale_code varchar,
socioeconomic_status varchar,
city_code varchar,
total integer)
MUCHAS GRACIAS POR TUS APORTES APRENDI BASTANTE.