Immagino che tu usi il campo VALUE in un filtro o qualcosa di simile nel mapfile (difficile dirlo con certezza senza mapfile). Questo filtro deve prevedere nomi di colonne in maiuscolo ed è per questo che la query originale aveva anche nomi di colonne in maiuscolo:
select g.gid, g.geom, g.basin, a.\"DATE\", a.\"VALUE\" from....
In tal caso, devi solo mettere in maiuscolo le colonne restituite dalla tua procedura:
RETURNS table (
gid integer,
geom geometry(MultiPolygon,4326),
basin double precision,
"DATE" timestamptz,
"VALUE" double precision
)
Ricorda che in PostgreSql il caso dei nomi di colonne e tabelle è importante se racchiudi tra virgolette doppie. Questa query:
SELECT VALUE from ...
è indipendente dal caso, mentre questo:
SELECT "VALUE" from ...
richiede davvero una tabella con nomi di colonne in maiuscolo. E le tabelle con nomi di colonne in maiuscolo richiedono virgolette doppie:
CREATE TABLE test ("VALUE" text, .....