2009-10-23 14 views
5

Ho cercato di trovare un'interfaccia di Postgres per python 2.x che supporti istruzioni realmente preparate, ma non riesco a trovare nulla. Non voglio uno che sfugge semplicemente le virgolette nei parametri che si passano e poi le interpola nella query prima di eseguirla. Qualcuno ha dei suggerimenti?Interfaccia da Python a Postgres con istruzioni realmente preparate?

+0

Sarebbe utile sapere quali librerie sono state esaminate e rifiutate. –

risposta

2

O per Python3 o O per Python2.

Python-pgsql eseguirà anche questo ma non è protetto da thread. In particolare, SQLAlchemy non fa uso di dichiarazioni preparate.

0

Questi collegamenti suggeriscono la risposta quando si utilizza psycopg2. Non hai bisogno di estensioni API speciali.

Ecco un esempio che ho giocato con. Una parola di cautela, però, non mi ha dato l'aumento delle prestazioni previsto che avevo sperato. In effetti, è stato anche più lento (solo leggermente) in un caso inventato in cui ho cercato di leggere l'intera tabella di un milione di righe, una riga alla volta.

cur.execute(''' 
    PREPARE prepared_select(text, int) AS 
     SELECT * FROM test 
     WHERE (name = $1 and rowid > $2) or name > $1 
     ORDER BY name, rowid 
     LIMIT 1 
''') 
name = '' 
rowid = 0 
cur.execute('EXECUTE prepared_select(%s, %s)', (name, rowid)) 
Problemi correlati