2011/9/25 pasman pasmański <pasman.p@xxxxxxxxx>: > See that setting flag on function need less work than create new gist > operator. Of course if postgresql's developers do biggest work before. any feature in pg should to have a general usage - with real use cases and real performance advantages. I am not sure, if monotonically functions should be useful - this request is relative strong. This feature should be interesting, but should be a source of bugs if somebody use it wrong. Some similar searching is possible with multidimensional indexes. note: a searching is one task - second task is design of estimations. Pavel > > > 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