cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: can't find procedure without a parameter on Postgres
Date Thu, 08 Feb 2007 14:33:54 GMT
Bryan,

this is a bug, I can confirm that:

https://issues.apache.org/cayenne/browse/CAY-750

I fixed it on trunk (Cayenne 3.0). Will apply it to 2.0 and 1.2  
branches shortly.

Andrus


On Feb 6, 2007, at 1:35 PM, Bryan Lewis wrote:

> I had this code working on an Oracle8 database:
>
>         ProcedureQuery procQuery = new
> ProcedureQuery("proc_eu_update_begin");
>         dc.performQuery(procQuery);
>
> The procedure is only a few sql statements to create a temporary table
> and takes no parameters.  When I ported to Postgres 8.2, Cayenne  
> says it
> can't find the procedure.  The log shows:
>
>     {call proc_eu_update_begin}
>     org.postgresql.util.PSQLException: ERROR:  relation
> "proc_eu_update_begin" does not exist
>
> I could execute the procedure manually with "select
> proc_eu_update_begin()".  Note that the empty parentheses were  
> required.
>
> I had other working procedures so I suspected it was the absence of
> parameters causing the problem.  Adding a dummy parameter made  
> things work:
>
>     {call proc_eu_update_begin(?)} [bind: 'xx']
>
> So I have a work-around, but... maybe Cayenne could generate a call  
> that
> Postgres would handle better, something like the empty parentheses in
> the manual command.
>
>
> P.S.  The definition of the procedure (now a function in Postgres)  
> looks
> like:
>
>     CREATE OR REPLACE function  proc_eu_update_begin()
>       RETURNS void AS ...
>
>


Mime
View raw message