User defined functions through ODBC - Mailing list pgsql-sql

From Hostmaster - Internet au Virtuel Inc.
Subject User defined functions through ODBC
Date
Msg-id 002801bec26a$19c73480$058d60cf@virtuel.qc.ca
Whole thread Raw
List pgsql-sql
Hi

I'm running PostgreSQL v6.4.2 on Red Hat Linux 6.0. I use it on a Windows NT
server 4.0 with service pack 5 through ODBC calls; the ODBC driver is the
one from Insight Distributions System, v6.40.00.06. The IP address of the NT
machine is specified as "trust" in pg_hba.conf.

I've been playing a bit with PL/pgSQL ... I find it quite usefull. But I
have one problem: The functions I create seem to be accessible only from
within the psql utility. When I try to run a query from the network, I get
an ODBC error stating that the function doesn't exist. Queries not involving
user-defined functions run fine.

Here is one of these functions:

create function plan_text(int2) returns text as '
begin    if $1 is null then        return ''10 hrs'';    end if;
    if $1 <= 10 then        return ''10 hrs'';    end if;
    if $1 <= 30 then        return ''30 hrs'';    end if;
    if $1 <= 60 then        return ''60 hrs'';    end if;
    return ''Illimité'';
end;
' language 'plpgsql';



So this query works from within psql:
SELECT hist_id, client_id, month, plan_text(plan) FROM history WHERE
client_id = 3;

But not through a network ODBC call. What am I missing? I created the user
"sql", and everything in this database is owned and operated with this uid.
I tried creating the function as the "postgres" superuser; I tried to
authenticate differently, but I get nothing.

If I use pgAdmin 6.4.3 beta, and have it list the functions, "plan_text"
appears in the list, but the query fails. Anyone has an idea?

Thanks,

Nicolas Cadou





pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] float4
Next
From: Peter Eisentraut
Date:
Subject: Escaping w/i regular expressions