From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Stefan Keller <sfkeller(at)gmail(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to set parameters in 'options'? |
Date: | 2019-01-29 15:21:46 |
Message-ID: | 884a4b56-9f35-9baf-50f2-7ba9176896a5@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 1/29/19 6:40 AM, Stefan Keller wrote:
> Hi,
>
> I'd like to write a function like this:
>
> create function foo(_host text, _port text, _dbname text)
> returns void as $$
> create server _server
> foreign data wrapper postgres_fdw
> options (host _host, port _port, dbname _dbname);
> -- ERROR: syntax error at or near "_host"
> $$ language sql;
>
> In order to e.g. do:
> select foo('111.11.11.11', '5432', 'mydb');
>
> How can I set the parameters in 'options' using those variables?
If you are going to use plpgsql, then format:
https://www.postgresql.org/docs/10/functions-string.html#FUNCTIONS-STRING-FORMAT
https://www.postgresql.org/docs/10/plpgsql-statements.html#PLPGSQL-QUOTE-LITERAL-EXAMPLE
So something like:
execute format('create server _server
foreign data wrapper postgres_fdw
options (host $1, port $2, dbname $3') USING _host, _port, _dbname
Not sure where the _server is coming from so that might have to be dealt
with.
>
> :Stefan
>
> P.S. Actually I'll put this code in a plggsql function later on.
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar "Nick" Bluth | 2019-01-29 16:18:07 | SELECT of pseudo hex value gives unexpected result |
Previous Message | Igor Neyman | 2019-01-29 15:18:29 | RE: How to set parameters in 'options'? |