horo(r)logy test fail on solaris (again and solved) - Mailing list pgsql-hackers

From Zdenek Kotala
Subject horo(r)logy test fail on solaris (again and solved)
Date
Msg-id 451947E4.2030504@sun.com
Whole thread Raw
Responses Re: horo(r)logy test fail on solaris (again and solved)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: horo(r)logy test fail on solaris (again and  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
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
intervaltimestamp 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
deleteselect_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
truncatedomain 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

pgsql-hackers by date:

Previous
From: "Jim C. Nasby"
Date:
Subject: Re: Phantom Command ID
Next
From: Tom Lane
Date:
Subject: Re: horo(r)logy test fail on solaris (again and solved)