Обсуждение: float4 or real in function parameter -> PSQLException: ERROR function in_test4(double precision) does not exist
Hi, We use database functions in our application. Today I want to use a float4/real Parameter for the first time. You can see a sample in in_test4. Float8/double-parameters run fine. The test.sql creates a small test database. The Float4Test.java contains the code sample, which throws the following exception. | Hint: No function matches the given name and argument types. You | might need to add explicit type casts. | Position: 8 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062) | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795) | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) | at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479) | at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367) | at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:360) | at Float4Test.main(Float4Test.java:24) If I call | Select in_test4(0.4) ; in psql, everything runs fine. Is it a bug in the JDBC-driver? I use postgres 8.4.0 and driver postgresql-8.4-701.jdbc4.jar. Ciao Michael
Вложения
Hi,
Michael Schwipps a écrit :
> Hi,
>
> We use database functions in our application.
>
> Today I want to use a float4/real Parameter for the first time. You can
> see a sample in in_test4.
> Float8/double-parameters run fine.
>
> in psql, everything runs fine.
>
> Is it a bug in the JDBC-driver?
I have my nose just on it: in AbstractJdbc2Statement.java float
parameters are passed as FLOAT8 (just like in setDouble):
> public void setFloat(int parameterIndex, float x) throws SQLException
> {
> checkClosed();
> bindLiteral(parameterIndex, Float.toString(x), Oid.FLOAT8);
> }
I'm new here, but I think it should be a FLOAT4. Try to change it in the
source code of the driver to see if it works after that.
Best regards,
Sylvain Leroux