setUseServerPrepare & typecasts
От | Scott Lamb |
---|---|
Тема | setUseServerPrepare & typecasts |
Дата | |
Msg-id | 3DD22356.2060208@slamb.org обсуждение исходный текст |
Список | pgsql-jdbc |
I've got a bunch of queries that deal with functions in the custom functions I've made. So I might have a function foo(integer) returning text. A simple case: ps = conn.prepare("select foo(?)"); and then calling ps.setObject(1, new Integer(42), Types.INTEGER); Without setUseServerPrepare, this works fine. With setUseServerPrepare, this complains that foo(text) does not exist and suggests explicit typecasts. With select foo(?::integer) it works again. Should this be necessary? I am telling it the type of that parameter before I execute the statement. Does it need to know that at prepare time? Is the explicit cast in the SQL the only way to do that? I am using a layer of my own design that creates the placeholders and binds the parameters for me from named, typed parameters. So I could easily have it automatically insert "{fn convert(?, <TYPENAME>)}" instead of "?" into the SQL everywhere I use parameters. Would that be the best way to fix this problem? Thanks, Scott
В списке pgsql-jdbc по дате отправления: