Thread: integer_datetime: 8.2/8.4 differences ?

integer_datetime: 8.2/8.4 differences ?

From
"fkater@googlemail.com"
Date:
Hi all,

I updated the server from 8.2 to 8.4, but I am still using
libpq 8.2 to write timestamps with the libpq C interface,
using the binary format and PQexecParams(). While pgAdmin in
8.2 server shows correct timestamps, 8.4 displays garbage
(year 15000 etc).

This has probably to do with the compile time option
integer_datetime -- however, did anything change? I could
not find anything in the changelogs.

What I do in C, and what worked in 8.2 but not in 8.4:

(1) long t=<time in seconds since 2000-01-01>

(2) double d=(double)t;

(3) <function to reverse byte order of 'd'>

(4) Use &d for the paramValues[] argument of PQexecParams()

 Felix



Re: integer_datetime: 8.2/8.4 differences ?

From
Tom Lane
Date:
"fkater@googlemail.com" <fkater@googlemail.com> writes:
> I updated the server from 8.2 to 8.4, but I am still using
> libpq 8.2 to write timestamps with the libpq C interface,
> using the binary format and PQexecParams(). While pgAdmin in
> 8.2 server shows correct timestamps, 8.4 displays garbage
> (year 15000 etc).

> This has probably to do with the compile time option
> integer_datetime -- however, did anything change? I could
> not find anything in the changelogs.

The first item listed under "Observe the following incompatibilities"
in the 8.4 release notes is

    Use 64-bit integer datetimes by default (Neil Conway)

    Previously this was selected by configure's
    --enable-integer-datetimes option. To retain the old behavior,
    build with --disable-integer-datetimes.

            regards, tom lane