Subject: Mapping of timestamptz to TIMESTAMP vs. TIMESTAMP_WITH_TIMEZONE

From: Ben Horowitz <[email-masked]>
Date: Fri, 17 Nov 2023 17:19:26 -0800

Hi,

Apologies if this is a duplicate of an answered question. I searched in the
mailing list archives, Stack Overflow, etc., and didn't find anything.

At the line linked below in TypeInfoCache, it appears that type timestamptz
is getting mapped to the type java.sql.Types.TIMESTAMP [1] . It seems like
it should be mapped to java.sql.Types.TIMESTAMP_WITH_TIMEZONE.

TIMESTAMP_WITH_TIMEZONE was introduced in Java 8 (2014). Is the mapping of
timestamptz to TIMESTAMP intentional for reasons of backwards compatibility?

I found the behavior surprising, and also found a question on Stack
Overflow where someone else was surprised [2].

Thanks very much,
Ben

[1]
https://github.com/pgjdbc/pgjdbc/blob/65f158ed8e06ffea77ca7f3b8413847817a7831f/pgjdbc/src/main/java/org/postgresql/jdbc/TypeInfoCache.java#L106

[2]
https://stackoverflow.com/questions/60451102/for-postgresql-resultsetmetadata-getcolumntype-function-returns-same-value-ty

---

From: Dave Cramer <[email-masked]>
Date: Mon, 20 Nov 2023 10:19:19 -0500

Probably should be. Care to provide a Pull Request ?
Dave Cramer
www.postgres.rocks

On Fri, 17 Nov 2023 at 20:19, Ben Horowitz <[email-masked]> wrote:

> Hi,
>
> Apologies if this is a duplicate of an answered question. I searched in
> the mailing list archives, Stack Overflow, etc., and didn't find anything.
>
> At the line linked below in TypeInfoCache, it appears that
> type timestamptz is getting mapped to the type java.sql.Types.TIMESTAMP [1]
> . It seems like it should be mapped to
> java.sql.Types.TIMESTAMP_WITH_TIMEZONE.
>