Обсуждение: BUG #14913: Test for aggregates fails

Поиск
Список
Период
Сортировка

BUG #14913: Test for aggregates fails

От
jens.with@t-online.de
Дата:
The following bug has been logged on the website:

Bug reference:      14913
Logged by:          Jens With
Email address:      jens.with@t-online.de
PostgreSQL version: 10.1
Operating system:   OEL 4.9
Description:

./configure --enable-static --enable-shared --with-includes=$IMPROOT/include
--with-libraries=$IMPLIB --exec_prefix=$IMPROOT --bindir=$IMPBIN
--libdir=$IMPLIB --prefix=$IMPROOT --with-pgport=$port

parallel group (20 tests):  select_into select_distinct select_distinct_on
select_implicit select_having subselect case aggregates transactions random
portals arrays btree_index union update join namespace delete hash_index
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               ... FAILED
     transactions             ... ok
     random                   ... ok
     portals                  ... ok
     arrays                   ... ok
     btree_index              ... ok
     hash_index               ... ok
     update                   ... ok
     namespace                ... ok
     prepared_xacts           ... ok
     delete                   ... ok

***
/imphome/imppg/.install/impmake/postgresql/postgresql-10.1/src/test/regress/expected/aggregates.out    Tue
Nov  7 01:46:52 2017
---
/imphome/imppg/.install/impmake/postgresql/postgresql-10.1/src/test/regress/results/aggregates.out    Thu
Nov 16 22:26:48 2017
***************
*** 1575,1583 ****
  
  select percentile_disc(array[0,0.1,0.25,0.5,0.75,0.9,1]) within group
(order by thousand)
  from tenk1;
!       percentile_disc       
! ----------------------------
!  {0,99,249,499,749,899,999}
  (1 row)
  
  select percentile_cont(array[0,0.25,0.5,0.75,1]) within group (order by
thousand)
--- 1575,1583 ----
  
  select percentile_disc(array[0,0.1,0.25,0.5,0.75,0.9,1]) within group
(order by thousand)
  from tenk1;
!        percentile_disc       
! -----------------------------
!  {0,100,249,499,749,900,999}
  (1 row)
  
  select percentile_cont(array[0,0.25,0.5,0.75,1]) within group (order by
thousand)

======================================================================


Re: BUG #14913: Test for aggregates fails

От
Tom Lane
Дата:
jens.with@t-online.de writes:
> ***************
> *** 1575,1583 **** 
>   select percentile_disc(array[0,0.1,0.25,0.5,0.75,0.9,1]) within group
> (order by thousand)
>   from tenk1;
> !       percentile_disc       
> ! ----------------------------
> !  {0,99,249,499,749,899,999}
>   (1 row) 
>   select percentile_cont(array[0,0.25,0.5,0.75,1]) within group (order by
> thousand)
> --- 1575,1583 ---- 
>   select percentile_disc(array[0,0.1,0.25,0.5,0.75,0.9,1]) within group
> (order by thousand)
>   from tenk1;
> !        percentile_disc       
> ! -----------------------------
> !  {0,100,249,499,749,900,999}
>   (1 row) 
>   select percentile_cont(array[0,0.25,0.5,0.75,1]) within group (order by
> thousand)

Odd.  Given the lack of similar reports, it must be something rather
platform-specific.  I'm afraid you're going to have to do some of your
own sleuthing.  Just looking at the code, it seems like this might
be explainable as a roundoff-error problem, if somehow (double) 0.1
times 10000 gives a smidge more than 1000.  But I wouldn't really
expect any modern platform to get that wrong.  Unless maybe you're
using -ffast-math, or some other accuracy-sacrificing compiler option?

BTW, that test has been there since 9.4.  Which earlier versions of PG
have you successfully tested on the same platform?
        regards, tom lane