Search Postgresql Archives

Re: New feature: accumulative functions.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



See that setting flag on function need less work than create new gist
operator. Of course if postgresql's developers do biggest work before.


2011/9/25, Pavel Stehule <pavel.stehule@xxxxxxxxx>:
> 2011/9/25 pasman pasmański <pasman.p@xxxxxxxxx>:
>> 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.stehule@xxxxxxxxx>:
>>> Hello
>>>
>>> what is a real use case?
>>>
>>> Regards
>>>
>>> Pavel
>>>
>>> 2011/9/25 pasman pasmański <pasman.p@xxxxxxxxx>:
>>>> 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@xxxxxxxxxxxxx>:
>>>>> =?ISO-8859-2?Q?pasman_pasma=F1ski?= <pasman.p@xxxxxxxxx> 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@xxxxxxxxxxxxxx)
>>>> To make changes to your subscription:
>>>> http://www.postgresql.org/mailpref/pgsql-general
>>>>
>>>
>>
>>
>> --
>> ------------
>> pasman
>>
>


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

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux