UMM, ERROR DE OMISION DE POSTGRES
Nadie me respondio, lo resolvi asi, creo que no es la mejor manera ya que en la segunda consulta, repito el alias de dos columnas, con el fin de poder solventar el
"error de postgresql" al no soportar consultas dinamicas como lo hace mysql en los procedures
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION imagenes(id_num INTEGER)
RETURNS TABLE (ruta_img text, tipo_img INTEGER, porcentaje INTEGER, marca_id INTEGER, ruta_marca text, proporcion_marca INTEGER) AS
$BODY$
DECLARE
SQL text;
marca_opcion INTEGER;
BEGIN
SELECT cfg_ima_rutas.marca INTO marca_opcion FROM cfg_ima_rutas WHERE cfg_ima_rutas.id=id_num;
IF(marca_opcion>0) THEN
SQL := 'SELECT
cfg_ima_rutas.ruta AS ruta_img, cfg_ima_rutas.tipo AS tipo_img, cfg_ima_rutas.porcentaje AS porcentaje, cfg_ima_rutas.marca AS marca_id, cfg_ima_marcas.ruta AS ruta_marca, cfg_ima_marcas.proporcion AS proporcion_marca
FROM cfg_ima_marcas JOIN cfg_ima_rutas ON (cfg_ima_marcas.id = cfg_ima_rutas.marca) WHERE cfg_ima_rutas.id='||id_num;
ELSE
SQL := 'SELECT
cfg_ima_rutas.ruta AS ruta_img, cfg_ima_rutas.tipo AS tipo_img, cfg_ima_rutas.porcentaje AS porcentaje, cfg_ima_rutas.marca AS marca_id,cfg_ima_rutas.ruta AS ruta_marca, cfg_ima_rutas.porcentaje AS proporcion_marca
FROM cfg_ima_rutas WHERE cfg_ima_rutas.id='||id_num;
END IF;
RETURN query EXECUTE SQL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;