Ho un oggetto query SQLAlchemy e voglio ottenere il testo dell'istruzione SQL compilata, con tutti i suoi parametri vincolati (es. No %s
o altre variabili in attesa di essere vincolate dal compilatore di istruzioni o dal motore dialettale MySQLdb, ecc.).
Il richiamo str()
della query rivela qualcosa del genere:
SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC
Ho provato a cercare in query._params ma è un dict vuoto. Ho scritto il mio compilatore usando questo esempio del sqlalchemy.ext.compiler.compiles
decoratore, ma anche l'istruzione lì ha ancora %s
dove voglio i dati.
Non riesco a capire quando i miei parametri vengono mescolati per creare la query; quando esaminano l'oggetto query, sono sempre un dizionario vuoto (sebbene la query venga eseguita correttamente e il motore la stampi quando si attiva la registrazione echo).
Sto iniziando a ricevere il messaggio che SQLAlchemy non vuole che io conosca la query sottostante, poiché interrompe la natura generale dell'interfaccia dell'API dell'espressione con tutte le diverse API DB. Non mi importa se la query viene eseguita prima che io abbia scoperto di cosa si trattava; Voglio solo sapere!