gracias huesos52 me fue de gran ayuda tu orientacion...y en gratitud posteo el codigo completo y depurado por si a alguien lo puede necesitar
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION prueba(idTaller INTEGER, aliasCompania text,OUT VehiculosTaller BIGINT,OUT CapacidadTaller SMALLINT) RETURNS SETOF RECORD AS $BODY$
DECLARE
use_sql TEXT;
BEGIN
use_sql := 'select count(VEHICULOS.id_vehiculo)as VehiculosTaller,locales.capacidad_instalada as CapacidadTaller from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
VEHICULOS.id_local = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and
COMPANIAS.alias = upper('''||aliasCompania||''') group by locales.capacidad_instalada UNION ALL
select count(VEHICULOS.id_vehiculo),locales.capacidad_instalada from SINIESTROS,COMPANIAS,VEHICULOS,LOCALES,TALLERES
where SINIESTROS.id_compania = COMPANIAS.id_compania and SINIESTROS.id_vehiculo = VEHICULOS.id_vehiculo and VEHICULOS.id_estado <> 12 and
VEHICULOS.id_local = LOCALES.id_local and LOCALES.id_taller = TALLERES.id_taller and TALLERES.id_taller = '||idTaller||' and COMPANIAS.alias <> upper('''||aliasCompania||''')
group by locales.capacidad_instalada';
--raise notice 'Running query: %', use_sql;
RETURN QUERY EXECUTE use_sql;
END;
$BODY$
LANGUAGE plpgsql;
SELECT * FROM prueba (6,'xxx');