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

Reply via email to