From: | Andreas Karlsson <andreas(at)proxel(dot)se> |
---|---|
To: | Peter Geoghegan <pg(at)heroku(dot)com> |
Cc: | Petr Jelinek <petr(at)2ndquadrant(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)2ndquadrant(dot)com> |
Subject: | Re: Using 128-bit integers for sum, avg and statistics aggregates |
Date: | 2015-03-13 01:23:36 |
Message-ID: | 55023C18.9060305@proxel.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 03/10/2015 02:26 AM, Peter Geoghegan wrote:
> On Mon, Mar 9, 2015 at 5:37 PM, Andreas Karlsson <andreas(at)proxel(dot)se> wrote:
>> int128-agg-v7.patch
>
> I see a spelling error:
>
> "+ * On platforms which support 128-bit integers some aggergates instead use a"
Fixed.
> I think you should talk about the new thing first (just after the
> extant, first sentence "Integer data types use Numeric..."). Refer to
> where 128-bit integers are used and how, and only then the other stuff
> (exceptions). After that, put the PolyNumAggState struct definition
> and basic functions. Then int2_accum() and so on.
Good idea! Do you think the rewritten comment is clear enough, or do I
need to go into more detail?
/*
* Integer data types use Numeric accumulators to share code and avoid risk
* of overflow. To speed up aggregation 128-bit integer accumulators are
* used instead where sum(X) or sum(X*X) fit into 128-bits, and there is
* platform support.
*
* For int2 and int4 inputs sum(X) will fit into a 64-bit accumulator,
hence
* we use faster special-purpose accumulator routines for SUM and AVG of
* these datatypes.
*/
#ifdef HAVE_INT128
typedef struct Int128AggState
--
Andreas Karlsson
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2015-03-13 01:24:20 | Re: Parallel Seq Scan |
Previous Message | Peter Geoghegan | 2015-03-13 01:01:31 | Re: Bug in point releases 9.3.6 and 9.2.10? |