Bo Shi wrote:
> Hi All,
>
> I'm attempting to get rudimentary support for a Vertica deployment
> using an ODBC connector. According to their docs, their dialect is
> mostly compatible with Oracle and SQLServer dialects.
That's funny because Oracle and SQL server are utterly, totally different
from a SQL quirks perspective. If I were to pick two dialects in SQLA
that were *most* different from each other and also non-standard, those
would be the two.
create_engine()
> using 'mssql+pyodbc' seems to work but upon attempting to execute a
> simple select statement, I get a programming error indicating the
> following failed to run:
>
> 'SELECT user_name() as user_name;'
>
>
> So it seems the dialect is getting some additional state under the
> hood. lib/sqlalchemy/dialects/mssql/pyodbc.py appears to be hooking
> PyODBCConnector and MSDialect together. Is it possible to specify
> another dialect here? If so, is there any documentation on how to do
> so?
you'd want to make yourself a "vertica" dialect module that imports the
PyODBCConnector and uses it as a mixin. I'd suggest copying one of the
existing dialects, and probably not the SQL server one unless you know
that vertica has a lot of the transact-SQL lineage that SQL server does
(the PG and SQLite dialects are the most barebones). To run it, add a
setup.py which configures your library as a setuptools entry point, in
this case the name would be "vertica+pyodbc":
from setuptools import setup
setup(name="SQLAVertica",
description="...",
entry_points={
'sqlalchemy:plugins':
['vertica+pyodbc = mypackage.base:VerticaDialect']
}
then using create_engine('vertica+pyodbc://user:p...@host/dbname') will load
in your dialect.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.