Re: New feature: accumulative functions.

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: pasman pasmański <pasman(dot)p(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: New feature: accumulative functions.
Date: 2011-09-25 20:00:52
Message-ID: CAFj8pRDx6JLmneV30kWNrcwzGLOSqyK-qN7T4_N37L9UPd2M=Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

2011/9/25 pasman pasmański <pasman(dot)p(at)gmail(dot)com>:
> I found second use case. Look at expression:
>
> where left(str,n)='value'
>
> function left(str,n) increase monotonically for str and n. With this
> feature it can use index on str.
>
> Classic index needs recreating.
>

these use cases are just theory - for example - this case should be
solved with immutable functions

I can use a functional index left(str, const) and use a query

where left(str, const) = left('value', const) and left(str, n) = 'value'

There are a theoretical cases, but these cases should be solved via
special data type and GiST index

Pavel

> 2011/9/25, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>:
>> Hello
>>
>> what is a real use case?
>>
>> Regards
>>
>> Pavel
>>
>> 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.
>>>
>>> Step 3 we repeat for current index's page and subpages until xlower =
>>> searched x = xgreater
>>>
>>>
>>> 2011/9/25, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
>>>> =?ISO-8859-2?Q?pasman_pasma=F1ski?= <pasman(dot)p(at)gmail(dot)com> writes:
>>>>> I propose to add "accumulative" flag to a function definition. This
>>>>> flag would be set for function f(x) which is accumulative and
>>>>> immutable.
>>>>
>>>> Maybe you'd better define what you mean by "accumulative" ...
>>>>
>>>>> This flag allows to use an index on  x for clauses containing f(x):
>>>>> where f(x) = const
>>>>> where f(x) > const
>>>>
>>>> ... because it's sure not clear how you would get that to work.
>>>>
>>>>                       regards, tom lane
>>>>
>>>
>>>
>>> --
>>> ------------
>>> pasman
>>>
>>> --
>>> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pgsql-general
>>>
>>
>
>
> --
> ------------
> pasman
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2011-09-25 20:30:21 Re: New feature: accumulative functions.
Previous Message pasman pasmański 2011-09-25 19:58:23 Re: New feature: accumulative functions.