psycopg2 difference between AsIs and sql module
To choose dynamically a table name in a query I used to use AsIs() from psycopg2.extensions ( http://initd.org/psycopg/docs/extensions.html#psycopg2.extensions.AsIs ), with the following syntax: cur.execute("SELECT * FROM %s WHERE id = %s;", (AsIs('table_name'), id)) However, the documentation now recommends to use the new psycopg2.sql module available in version 2.7 ( http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql ) with the following syntax: from psycopg2 import sql cur.execute( sql.SQL("SELECT * FROM {} WHERE id = %s;") .format(sql.Identifier('table_name')), (id, ) What's the