Patches applied; initdb time! - Mailing list pgsql-hackers

From Thomas Lockhart
Subject Patches applied; initdb time!
Date
Msg-id 3CC31AC5.A9B964AE@fourpalms.org
Whole thread Raw
Responses Re: Patches applied; initdb time!  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I've applied patches to implement an int64-based data/time storage
scheme. I've also accumulated some other minor fixes, which result in an
initdb being required (sorry!).

Note that the *default* timestamp type is now TIMESTAMP WITHOUT TIME
ZONE. This is what we discussed previously for the transition to SQL9x
compliance.

Full cvs log entry is included below.
                  - Thomas

Support alternate storage scheme of 64-bit integer for date/time types.Use "--enable-integer-datetimes" in
configurationto use this ratherthan the original float8 storage. I would recommend the integer-basedstorage for any
platformon which it is available. We perhaps shouldmake this the default for the production release.
 
Change timezone(timestamptz) results to return timestamp rather thana character string. Formerly, we didn't have a way
torepresenttimestamps with an explicit time zone other than freezing the info intoa string. Now, we can reasonably omit
theexplicit time zone from theresult and return a timestamp with values appropriate for the specifiedtime zone. Much
cleaner,and if you need the time zone in the resultyou can put it into a character string pretty easily anyway.
 
Allow fractional seconds in date/time types even for dates prior to 1BC.
Limit timestamp data types to 6 decimal places of precision. Just rightfor a micro-second storage of int8 date/time
types,and reduces thenumber of places ad-hoc rounding was occuring for the float8-based
 
types.
Use lookup tables for precision/rounding calculations for timestamp andinterval types.  Formerly used pow() to
calculatethe desired value butwith a more limited range there is no reason to not type in a lookuptable. Should be
*much*better performance, though formerly there weresome optimizations to help minimize the number of times pow() was
 
called.
Define a HAVE_INT64_TIMESTAMP variable. Based on the configure option"--enable-integer-datetimes" and the existing
internalINT64_IS_BUSTED.
 
Add explicit date/interval operators and functions for addition andsubtraction. Formerly relied on implicit type
promotionfrom date totimestamp with time zone.
 
Change timezone conversion functions for the timetz type from "timetz()"to "timezone()". This is consistant with other
timezone coersionfunctions for other types.
 
Bump the catalog version to 200204201.
Fix up regression tests to reflect changes in fractional secondsrepresentation for date/times in BC eras.
All regression tests pass on my Linux box.


pgsql-hackers by date:

Previous
From: Curt Sampson
Date:
Subject: Re: On-disk Tuple Size
Next
From: "Rod Taylor"
Date:
Subject: Re: Really annoying comments...