parameter info?

Started by Andrew Dunstanalmost 13 years ago4 messages
#1Andrew Dunstan
andrew@dunslane.net

What's the best way for me to find out if a given parameter of a
function is a constant? The context is that it's expensive to process,
and in most cases will in fact be a constant, so if it is in fact a
constant I'd like to process it once and stash the results.

cheers

andrew

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

#2Pavel Stehule
pavel.stehule@gmail.com
In reply to: Andrew Dunstan (#1)
Re: parameter info?

hello

2013/2/1 Andrew Dunstan <andrew@dunslane.net>:

What's the best way for me to find out if a given parameter of a function is
a constant? The context is that it's expensive to process, and in most cases
will in fact be a constant, so if it is in fact a constant I'd like to
process it once and stash the results.

you can look into parser tree

see src of get_fn_expr_argtype(fcinfo->flinfo, 0);

Regards

Pavel

cheers

andrew

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

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

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: parameter info?

Andrew Dunstan <andrew@dunslane.net> writes:

What's the best way for me to find out if a given parameter of a
function is a constant? The context is that it's expensive to process,
and in most cases will in fact be a constant, so if it is in fact a
constant I'd like to process it once and stash the results.

I think we added get_fn_expr_arg_stable() for precisely that
purpose.

regards, tom lane

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

#4Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#3)
Re: parameter info?

On 01/31/2013 11:17 PM, Tom Lane wrote:

Andrew Dunstan <andrew@dunslane.net> writes:

What's the best way for me to find out if a given parameter of a
function is a constant? The context is that it's expensive to process,
and in most cases will in fact be a constant, so if it is in fact a
constant I'd like to process it once and stash the results.

I think we added get_fn_expr_arg_stable() for precisely that
purpose.

Thanks. That's exactly what I was looking for.

cheers

andrew

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