Re: extend pgbench expressions with functions - Mailing list pgsql-hackers

From Fabien COELHO
Subject Re: extend pgbench expressions with functions
Date
Msg-id alpine.DEB.2.10.1602111835540.6591@sto
Whole thread Raw
In response to Re: extend pgbench expressions with functions  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: extend pgbench expressions with functions
List pgsql-hackers
Hello Michaël,

> +    /* the argument list has been built in reverse order, it is fixed here */
> +    expr->u.function.args = reverse_elist(args);
> Hm. I may be missing something, but why is that necessary? This is
> basically doing a double-reversion to put all the arguments in the
> correct order when parsing the function arguments.

This is because the expression list is parsed left to right and the list 
is built as a stack to avoid looking for the last argument to append the 
next expression, but then the list is in reverse order at the end of 
parsing, so it is reversed once to make it right. This way the complexity 
is kept as O(n).

If this is too much I can switch to O(n**2) by appending each expression 
at the end of the list.

-- 
Fabien.

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: GinPageIs* don't actually return a boolean
Next
From: Pavel Stehule
Date:
Subject: Re: pl/pgsql exported functions