Re: Something wrong with binding timestamp values

Поиск
Список
Период
Сортировка
От Mark Lewis
Тема Re: Something wrong with binding timestamp values
Дата
Msg-id 1165415895.9734.286.camel@archimedes
обсуждение исходный текст
Ответ на Something wrong with binding timestamp values  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: Something wrong with binding timestamp values  (Vit Timchishin <tivvpgsqljdbc@gtech-ua.com>)
Re: Something wrong with binding timestamp values  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-jdbc
It's to work around the fact that JDBC only knows about one Timestamp
type, while PG knows about more.  It ends up being better in most cases
to send the type as unknown and let the server disambiguate to the
correct type than to guess about the type and maybe guess wrong.

This was a recent change, which is why it used to work for you but now
doesn't.  It was known that cases like yours which call overloaded
functions may require an explicit cast, something like "SELECT
date_trunc('day', ?::timestamp)", but it was decided that it's better to
force a cast in some cases than to do things demonstrably wrong in other
cases (which the older driver versions were wont to do).

You can dig through the archives for more of the gory details.

-- Mark Lewis

On Wed, 2006-12-06 at 14:58 +0100, Peter Eisentraut wrote:
> This code
>
> PreparedStatement st = conn.prepareStatement("SELECT date_trunc('day', ?)");
> st.setString(1, "2006-12-17");
> ResultSet rs = st.executeQuery();
>
> fails, as might be expected, because date_trunc(unknown, varchar)
> doesn't exist.
>
> But this code:
>
> PreparedStatement st = conn.prepareStatement("SELECT date_trunc('day', ?)");
> st.setTimestamp(1, new Timestamp(222222222));
> ResultSet rs = st.executeQuery();
>
> fails with postgresql-8.1-408.jdbc3.jar with
>
> ERROR:  function date_trunc("unknown", "unknown") is not unique
>
> It works correctly with postgresql-8.0-318.jdbc3.jar.
>
> What is wrong here?  Why does a timestamp value end up being bound as
> "unknown"?
>

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Something wrong with binding timestamp values
Следующее
От: Vit Timchishin
Дата:
Сообщение: Re: Something wrong with binding timestamp values