| From: | Bill Moran <wmoran(at)potentialtech(dot)com> | 
|---|---|
| To: | lin <jluwln(at)163(dot)com> | 
| Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: Can somebody explain what is the meaning for HashAggregate? | 
| Date: | 2015-09-20 14:27:07 | 
| Message-ID: | 20150920102707.449cf1c3957d274ff4b3e5c1@potentialtech.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On Sun, 20 Sep 2015 21:56:39 +0800 (CST)
lin <jluwln(at)163(dot)com> wrote:
> Can somebody explain what does the postgres done for the explain of sql shows HashAggregate( what is the meaning for  HashAggregate  )?
> for example: 
> 
> 
> postgres=# explain verbose select oid,relname  from pg_class group by oid,relname;
>                                  QUERY PLAN                                  
> -----------------------------------------------------------------------------
>  HashAggregate  (cost=12.42..15.38 rows=295 width=68)
>    Output: oid, relname
>    Group Key: pg_class.oid, pg_class.relname
>    ->  Seq Scan on pg_catalog.pg_class  (cost=0.00..10.95 rows=295 width=68)
>          Output: oid, relname
> (5 rows)
> 
> 
> ::  first, seq scan pg_class and return (oid,relname);
>    second,  make group (oid,relname),  is it fisrt sort by oid then in the oid group sort by relname?
> Can somebody explain what does the database done for hashAggregate?
It combines the values for oid and relname for each returned row, generates a hashkey
for them, then uses that hashkey to aggregate (compute the GROUP BY, essentially, in
this case)
-- 
Bill Moran
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melvin Davidson | 2015-09-20 15:05:03 | Re: clone_schema function | 
| Previous Message | lin | 2015-09-20 13:56:39 | Can somebody explain what is the meaning for HashAggregate? |