On Sun, Dec 15, 2013 at 3:08 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> I wrote:
> > It's not so good with two-row windows though:
>
> Actually, carrying that example a bit further makes the point even more
> forcefully:
>
>     Table       correct sum of          negative-transition
>                 this + next value       result
>     1e20        1e20                    1e20 + 1 = 1e20
>     1           1                       1e20 - 1e20 + 0 = 0
>     0           0                       0 - 1 + 0 = -1
>     0           1                       -1 - 0 + 1 = 0
>     1
>
> Those last few answers are completely corrupt.
>
>
For sake of the archives I just wanted to reproduce this...
I used the following query with the patch which was attached upthread to
confirm this:

SELECT sum(n::float8) OVER (ORDER BY i ROWS BETWEEN CURRENT ROW AND 1
FOLLOWING)
FROM (VALUES(1,1e20),(2,1)) n(i,n);

  sum
--------
 1e+020
      0
(2 rows)

SUM(1) should equal 1 not 0.

But unpatched I get:

  sum
--------
 1e+020
      1
(2 rows)

This discovery seems like good information to keep around, so I've added a
regression test in my local copy of the patch to try to make sure nobody
tries to add a negative trans for float or double in the future.

Regards

David Rowley



>                         regards, tom lane
>

Reply via email to