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

From Pantelis Theodosiou
Subject Re: [HACKERS] PoC: Grouped base relation
Date
Msg-id CAE3TBxxTrxH++SAXcP6to0+zwLWpSh3Qxad0s3w-8Boeump39A@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] PoC: Grouped base relation  (Pantelis Theodosiou <ypercube@gmail.com>)
List pgsql-hackers


On Tue, Jan 10, 2017 at 6:52 PM, Pantelis Theodosiou <ypercube@gmail.com> wrote:


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 

Or perhaps I should be reading more carefully the whole mail before posting. Ignore the previous.

pgsql-hackers by date:

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