On implementing a new dialect I am running into lots of issues. All caught 
by test cases part of the standard test suite - so thanks for this!

I have an issue with a reserved word being used as column name: data.

The test case HasTableTest.test_has_table creates a table using:

Table('test_table', metadata,
                Column('id', Integer, primary_key=True),
                Column('data', String(50))
            )

A few things are suspicious. Running the resulting create statement on the 
DB console I get an error. However, I do not see any error on test 
execution, but only the message that the table does not exist:

Error emptying table test_table: ProgrammingError("(ProgrammingError) 
('42000', '[42000] [EXASOL][EXASolution driver]object TEST_TABLE not found 
[line 1, column 13] (-1) (SQLExecDirectW)')",)
ERROR

I would have expected an error on CREATE TABLE. 

I also added 'data' to the list of reserved_words and added a 
_bindparam_requires_quotes method similar to the Oracle dialect. But I am 
not sure if, how and when this set is being used. When running the test 
suite I do not see any prints I have added to check if my code is being 
executed (but adding syntax errors cause the expected error). So far I have 
not understood the test suite magic. 

Any help on understanding the test suite magic or how reserved words are 
being used is greatly appreciated.

Jan

-- 
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].
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to