From: | Pantelis Theodosiou <ypercube(at)gmail(dot)com> |
---|---|
To: | Antonin Houska <ah(at)cybertec(dot)at> |
Cc: | Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: PoC: Grouped base relation |
Date: | 2017-01-10 18:52:15 |
Message-ID: | CAE3TBxzsRNVwRwwfmS5j4RD1QDodu1qJqdR6e4bAZwwEaF35Sg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Jan 9, 2017 at 5:56 PM, Antonin Houska <ah(at)cybertec(dot)at> wrote:
> Attached is a draft patch that lets partial aggregation happen at base
> relation level. If the relations contain relatively small number of groups,
> the number of input rows of the aggregation at the query level can be
> reduced
> this way. Also, if append relation and postgres_fdw planning is enhanced
> accordingly, patch like this can let us aggregate individual tables on
> remote
> servers (e.g. shard nodes) and thus reduce the amount of rows subject to
> the
> final aggregation.
>
> For example, consider query
>
> SELECT b.j, sum(a.x) FROM a, b WHERE a.i = b.j GROUP BY b.j;
>
> and tables "a"
>
> i | x
> -------
> 1 | 3
> 1 | 4
>
> and "b"
>
> j
> ---
> 1
> 1
>
The example should have j= 1,2 , right?
and "b"
j
---
1
2
> The base relations grouped look like
>
> i | sum(a.x)| count(*)
> -----------------------
> 1 | 7 | 2
>
Otherwise, the sum and count would be 14 and 4.
>
> and
>
> j | count(*)
> -------------
> 1 | 2
>
>
>
>
Pantelis
From | Date | Subject | |
---|---|---|---|
Next Message | Pantelis Theodosiou | 2017-01-10 18:55:22 | Re: PoC: Grouped base relation |
Previous Message | Robert Haas | 2017-01-10 18:39:14 | Re: PoC: Grouped base relation |