On Tue, Jan 10, 2017 at 6:52 PM, Pantelis Theodosiou <yperc...@gmail.com> wrote:
> > > On Mon, Jan 9, 2017 at 5:56 PM, Antonin Houska <a...@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.