2009-10-23 12 views
5

Próbowałem znaleźć interfejs postgres dla Pythona 2.x, który obsługuje instrukcje przygotowane, ale nie może znaleźć niczego. Nie chcę tego, który po prostu ucieka z cudzysłowów w podanych parametrach, a następnie interpoluje je do zapytania przed jego wykonaniem. Czy ktoś ma jakieś sugestie?Python do interfejsu PostgreSQL z przygotowanymi instrukcjami?

+0

Przydałoby się wiedzieć, które biblioteki zostały zbadane i odrzucone. –

Odpowiedz

2

Albo py-postgresql dla Python3 lub pg_proboscis dla Python2 zrobi to.

Python-pgsql spowoduje to również, ale nie jest bezpieczny dla wątków. Warto zauważyć, że SQLAlchemy nie korzysta z przygotowanych oświadczeń.

0

Te linki wskazują na odpowiedź podczas używania psycopg2. Nie potrzebujesz specjalnych rozszerzeń API.

Oto przykład, że grałem z. Ale ostrożnie, nie dało mi oczekiwanego wzrostu wydajności, na który liczyłem. W rzeczywistości było jeszcze wolniej (tylko nieznacznie) w wymyślnym przypadku, w którym próbowałem odczytać całą tabelę z miliona wierszy, po jednym rzędzie naraz.

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)) 
Powiązane problemy