TL;DR: I'm trying to debug what is actually being sent to the pyodbc.connect function on connect in a custom dialect. I need to see the connection string that is being sent to the pyodbc.connect function *right* before it is sent but it has been difficult for me to unravel the layers of indirection on the create_engine call.
Long version: If you care for more information I have this DSN related connect string for the custom dialect I am writing for Teradata: engine = sqlalchemy.create_engine("teradata://testsqlatd:password@td_testsqlatd", encoding='utf-8', echo=True) This connection string works and connects properly to my Teradata box (yay!). In my custom dialect I have subclassed so I can get some visibility into the ODBC connect string SQLA is constructing: def create_connect_args(self, url): connector = super(TeradataDialect_pyodbc, self).create_connect_args(url) print connector return connector This code appears to call sqlalchemy/connectors/pyodbc.py [create_connect_args]. And returns: [['dsn=td_testsqlatd;UID=testsqlatd;PWD=password'], {}] I assume that this string is roughly what is passed by SQLA to pyodbc at some future point as the ODBC connection string. In my case the string above connects successfully. Oddly enough though UID is not a valid ODBC connection parameter for the Teradata ODBC driver. For Teradata the parameter *must *be Username. Same with PWD, this isn't valid for the Teradata ODBC driver. It should be Password. According to my testing and the Teradata ODBC docs the valid version of this ODBC connection string should be: 'dsn=td_testsqlatd;Username=testsqlatd;Password=password' I have verified directly with pyodbc that the first form of the connect string fails and the version directly above works, yet somehow in SQLAlchemy it connects. Because of this I believe that SQLA is rewriting the string further before connecting to the Teradata ODBC driver via pyodbc. I can't find out where that is happening though. Because of this I would like to intercept the pyodbc.connect call and see exactly what ODBC connection string SQLA is invoking it with. Any ideas how to log what exactly the connection string that SQLAlchemy is sending to pyodbc.connect? -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.