On 8/16/22 16:42, Ted Toth wrote:
I've just started playing with plpython but ran into a issue when I
was trying to use standard python string formatting to generate a SQL
string for example:
s = "EXECUTE format('CREATE INDEX %s ON %s USING (column_name)' %
(index_name, table_name))"
but plpython then tried to run the EXECUTE instead of just setting
variable 's'. Why does this happen?
Or if you want to correctly quote the identifiers something like:
create table test_tbl(id integer);
DO $$
index_name = 'test'
table_name = 'test_tbl'
s = 'CREATE INDEX "' + index_name + '" ' + 'ON "' + table_name +
'" (id)'
plpy.notice(s)
plpy.execute(s)
$$ LANGUAGE plpythonu;
NOTICE: CREATE INDEX "test" ON "test_tbl" (id)
DO
\d test_tbl
Table "public.test_tbl"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
Indexes:
"test" btree (id)
Ted
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx