Re: plpython/python string formatting - Mailing list pgsql-general

From Adrian Klaver
Subject Re: plpython/python string formatting
Date
Msg-id 80215721-6a73-9dea-4fbb-52002194f717@aklaver.com
Whole thread Raw
In response to plpython/python string formatting  (Ted Toth <txtoth@gmail.com>)
List pgsql-general
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@aklaver.com



pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: plpython/python string formatting
Next
From: Aravind Phaneendra
Date:
Subject: Regarding availability of 32bit client drivers for postgresql 13/14