Re: Passing in parameters enclosed in double quotes

Поиск
Список
Период
Сортировка
От Federico Di Gregorio
Тема Re: Passing in parameters enclosed in double quotes
Дата
Msg-id 4EC67BBC.9080907@dndg.it
обсуждение исходный текст
Ответ на Passing in parameters enclosed in double quotes  (Brent Hoover <brent@thebuddhalodge.com>)
Ответы Re: Passing in parameters enclosed in double quotes  (Adrian Klaver <adrian.klaver@gmail.com>)
Список psycopg
On 18/11/11 16:31, Brent Hoover wrote:
> I am sure this is in the documentation somewhere, but I am stumped as to
> where.
>
> I am trying to pass in a table name to reset a series of sequences.
>
> conn_cursor.execute("""SELECT setval(pg_get_serial_sequence("%s", %s),
> 1, false);""", ( _column[0]), _column[1],))
>
> where _column[0] is a table name, and _column[1] is a column name. So
> the table name needs to be directly enclosed in double-quotes, but the
> psycopg2 adapter is adding single quotes inside that. So instead of
> getting "table_name" I get "'table_name'" which does not work. I feel
> like is probably an issue of escaping the quotes somehow but I cannot
> figure out how. Psycopg2's behavior is completely correct here, it sees
> a string and wraps it in quotes, but this case of wanting to access a
> table name is somewhat of a special case.
>
> Thanks so much for such a great piece of software.

Use the AsIs adapter:

from psycopg2.extensions import AsIs

conn_cursor.execute(
  """SELECT setval(pg_get_serial_sequence("%s", %s), 1, false);""",
  (AsIs(_column[0]), AsIs(_column[1])))

Hope this helps,
federico

--
Federico Di Gregorio                                       fog@initd.org
 But not all bugs are an interesting challenge. Some are just a total
  waste of my time, which usually is much more valuable than the time of
  the submitter.                                                   -- Md

В списке psycopg по дате отправления:

Предыдущее
От: Brent Hoover
Дата:
Сообщение: Passing in parameters enclosed in double quotes
Следующее
От: Fabian Knittel
Дата:
Сообщение: Re: RFC: Extend psycopg2.connect to accept all valid parameters?