Обсуждение: 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