Mam obiekt zapytania SQLAlchemy i chcę uzyskać tekst skompilowanej instrukcji SQL ze wszystkimi powiązanymi parametrami (np. Brak %s
lub inne zmienne oczekujące na powiązanie przez kompilator instrukcji lub silnik dialektu MySQLdb itp.).
Wywołanie str()
zapytania ujawnia coś takiego:
SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC
Próbowałem szukać w query._params, ale jest to pusty dykt. Napisałem swój własny kompilator, korzystając z tego przykładu sqlalchemy.ext.compiler.compiles
dekoratora, ale nawet stwierdzenie tam nadal zawiera %s
dane.
Nie mogę się do końca dowiedzieć, kiedy moje parametry są mieszane, aby utworzyć zapytanie; podczas badania obiektu zapytania są one zawsze pustym słownikiem (chociaż zapytanie wykonuje się dobrze, a silnik wypisuje je po włączeniu logowania echa).
Zaczynam otrzymywać komunikat, że SQLAlchemy nie chce, żebym znało zapytanie, ponieważ łamie on ogólny charakter interfejsu API wyrażeń we wszystkich różnych DB-API. Nie mam nic przeciwko, jeśli zapytanie zostanie wykonane, zanim dowiem się, co to było; Chcę po prostu wiedzieć!