Re: New feature: accumulative functions. - Mailing list pgsql-general

From pasman pasmański
Subject Re: New feature: accumulative functions.
Date
Msg-id CAOWY8=ZGbRmoYc31-gP3urS-H4uSchLwGhrY7jvs1Q1NXyp+GQ@mail.gmail.com
Whole thread Raw
In response to Re: New feature: accumulative functions.  (pasman pasmański <pasman.p@gmail.com>)
List pgsql-general
Thanks Marti for inspiration :).  Monotonic functions allows to skip
some sorts in window expressions containing them:

select winfun1(...) over(order by x), winfun2(...) over(order by f(x)) from ...



2011/9/27, pasman pasmański <pasman.p@gmail.com>:
> 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@juffo.org>:
>> 2011/9/25 pasman pasmański <pasman.p@gmail.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
>


--
------------
pasman

pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: [Solved] Generic logging system for pre-hstore using plperl triggers
Next
From: "Gauthier, Dave"
Date:
Subject: live metadata changes v8.3.4