Re: [HACKERS] PoC: Grouped base relation - Mailing list pgsql-hackers

From Pantelis Theodosiou
Subject Re: [HACKERS] PoC: Grouped base relation
Date
Msg-id CAE3TBxzsRNVwRwwfmS5j4RD1QDodu1qJqdR6e4bAZwwEaF35Sg@mail.gmail.com
Whole thread Raw
In response to [HACKERS] PoC: Grouped base relation  (Antonin Houska <ah@cybertec.at>)
Responses Re: [HACKERS] PoC: Grouped base relation  (Pantelis Theodosiou <ypercube@gmail.com>)
List pgsql-hackers


On Mon, Jan 9, 2017 at 5:56 PM, Antonin Houska <ah@cybertec.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 

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [HACKERS] PoC: Grouped base relation
Next
From: Pantelis Theodosiou
Date:
Subject: Re: [HACKERS] PoC: Grouped base relation