From: | pasman pasmański <pasman(dot)p(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: New feature: accumulative functions. |
Date: | 2011-09-27 14:39:50 |
Message-ID: | CAOWY8=b7mRdhbKB2BX09Xb1G+5u-z528yixxX1K5v4wCiAnj9Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Yes, accumulative functions may be used for sorting,groupping and
merge joins with limit.
Groupping looks simplest to implement, and comparable to performance
of functional index
.
2011/9/27, Marti Raudsepp <marti(at)juffo(dot)org>:
> 2011/9/25 pasman pasmański <pasman(dot)p(at)gmail(dot)com>:
>> My english is not perfect, by accumulative i think about monotonically
>> increasing function.
>>
>> It works that for clause WHERE f(x)=const:
>> 1. Read root page of index_on_x and get x1 ... Xn
>> 2. Calculate f(x1) ... f(xn) for this page
>> 3. When f(x1)<=const<= f(xn) then x1 <= searched x <= xn and we can
>> test smaller range (xlower, xgreater).
>> 4. Otherwise no rows satisfy condition.
>
> I can't get very excited about this feature for index scans. However,
> I think there's another, more interesting use case: sorting
>
> I frequently write queries like:
> SELECT date_trunc('month', somedate), sum(foo)
> GROUP BY date_trunc('month', somedate);
>
> Currently the planner doesn't realize that instead of
> GroupAggregate+Sort, it can use the already existing sorted index on
> just (somedate). Alternatively I would need to create a separate
> date_trunc functional index for daily, weekly and monthly aggregates
> for EACH meaningful time zone.
>
> This would be a planner-only change and nothing the executor needs to know
> of.
>
> Now obviously HashAggregate helps a lot with these kinds of queries,
> but there are still cases where GroupAggregate would be a win -- for
> instance, queries with a LIMIT.
>
> Regards,
> Marti
>
--
------------
pasman
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Adams | 2011-09-27 14:41:54 | Re: Sending Results From One Function As Input into Another Function |
Previous Message | Edson Carlos Ericksson Richter | 2011-09-27 13:59:03 | RES: Does postgresql 9.0.4 use index on PREFIX%SUFFIX queries? |