I tried regression test with Postgres Beta and horology test field. See
attached log. It appears few month ago - see
http://archives.postgresql.org/pgsql-ports/2006-06/msg00004.php
I used Sun Studio 11 with -fast flag and SPARC platform.
I played little bit with cc flags and following flags work fine for me:
export CFLAGS="-fast"
export LDFLAGS="-lm -fast"
The fast switch for compiler is very important too, because it links
"fast" library.
Could anybody confirm that it works on his machine?
But the question is if the "-fast" flag is good for postgres. The -fast
flag sets "brutal" floating point optimization and some operation should
have less precision. Is possible verify that floating point operation
works well?
I read postgres documentation about floating point datatypes and that
implementation is platform specific. Developer must take care about it
discrepancies, but should there any other part of postgres code where
"-fast" switch generate some computing defect - it means that result
must be platform independent?
The cc flags are describes in
http://docs.sun.com/source/819-3688/cc_ops.app.html.
Zdenek
*** ./expected/horology.out Tue Jul 25 05:51:22 2006
--- ./results/horology.out Tue Sep 26 14:19:10 2006
***************
*** 2466,2472 ****
SELECT '' AS ten, f1 AS interval, reltime(f1) AS reltime
FROM INTERVAL_TBL;
ten | interval | reltime
! -----+-------------------------------+-------------------------------
| @ 1 min | @ 1 min
| @ 5 hours | @ 5 hours
| @ 10 days | @ 10 days
--- 2466,2472 ----
SELECT '' AS ten, f1 AS interval, reltime(f1) AS reltime
FROM INTERVAL_TBL;
ten | interval | reltime
! -----+-------------------------------+----------------------------------
| @ 1 min | @ 1 min
| @ 5 hours | @ 5 hours
| @ 10 days | @ 10 days
***************
*** 2474,2480 ****
| @ 3 mons | @ 3 mons
| @ 14 secs ago | @ 14 secs ago
| @ 1 day 2 hours 3 mins 4 secs | @ 1 day 2 hours 3 mins 4 secs
! | @ 6 years | @ 6 years
| @ 5 mons | @ 5 mons
| @ 5 mons 12 hours | @ 5 mons 12 hours
(10 rows)
--- 2474,2480 ----
| @ 3 mons | @ 3 mons
| @ 14 secs ago | @ 14 secs ago
| @ 1 day 2 hours 3 mins 4 secs | @ 1 day 2 hours 3 mins 4 secs
! | @ 6 years | @ 5 years 12 mons 5 days 6 hours
| @ 5 mons | @ 5 mons
| @ 5 mons 12 hours | @ 5 mons 12 hours
(10 rows)
======================================================================
parallel group (13 tests): text varchar name char boolean oid int8 int4 int2
float4 float8 bit numeric
boolean ... ok
char ... ok
name ... ok
varchar ... ok
text ... ok
int2 ... ok
int4 ... ok
int8 ... ok
oid ... ok
float4 ... ok
float8 ... ok
bit ... ok
numeric ... ok
test strings ... ok
test numerology ... ok
parallel group (20 tests): lseg point box comments abstime reltime timetz
circle time polygon tinterval inet path interval timestamp date timestamptz
type_sanity oidjoins opr_sanity
point ... ok
lseg ... ok
box ... ok
path ... ok
polygon ... ok
circle ... ok
date ... ok
time ... ok
timetz ... ok
timestamp ... ok
timestamptz ... ok
interval ... ok
abstime ... ok
reltime ... ok
tinterval ... ok
inet ... ok
comments ... ok
oidjoins ... ok
type_sanity ... ok
opr_sanity ... ok
test geometry ... ok
test horology ... FAILED
test insert ... ok
test create_function_1 ... ok
test create_type ... ok
test create_table ... ok
test create_function_2 ... ok
parallel group (2 tests): copyselect copy
copy ... ok
copyselect ... ok
parallel group (8 tests): create_aggregate constraints create_operator
drop_if_exists triggers vacuum create_misc inherit
constraints ... ok
triggers ... ok
create_misc ... ok
create_aggregate ... ok
create_operator ... ok
inherit ... ok
vacuum ... ok
drop_if_exists ... ok
parallel group (2 tests): create_view create_index
create_index ... ok
create_view ... ok
test sanity_check ... ok
test errors ... ok
test select ... ok
parallel group (20 tests): select_implicit select_distinct_on select_distinct
select_into case update random namespace delete select_having btree_index union
hash_index aggregates transactions join arrays portals subselect prepared_xacts
select_into ... ok
select_distinct ... ok
select_distinct_on ... ok
select_implicit ... ok
select_having ... ok
subselect ... ok
union ... ok
case ... ok
join ... ok
aggregates ... ok
transactions ... ok
random ... ok
portals ... ok
arrays ... ok
btree_index ... ok
hash_index ... ok
update ... ok
namespace ... ok
prepared_xacts ... ok
delete ... ok
test privileges ... ok
test misc ... ok
parallel group (7 tests): select_views portals_p2 guc cluster dependency rules
foreign_key
select_views ... ok
portals_p2 ... ok
rules ... ok
foreign_key ... ok
cluster ... ok
dependency ... ok
guc ... ok
parallel group (15 tests): limit rangefuncs temp copy2 polymorphism prepare
conversion without_oid returning sequence truncate domain alter_table plpgsql
rowtypes
limit ... ok
plpgsql ... ok
copy2 ... ok
temp ... ok
domain ... ok
rangefuncs ... ok
prepare ... ok
without_oid ... ok
conversion ... ok
truncate ... ok
alter_table ... ok
sequence ... ok
polymorphism ... ok
rowtypes ... ok
returning ... ok
test stats ... ok
test tablespace ... ok
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq