table PK if not applicable, i.e. for a UNION. checking for DISTINCT, GROUP BY
(other places that rowid is invalid) still a TODO. allows polymorphic mappings
to function, [ticket:436]
+- mysql:
+ - fix to reflection on older DB's that might return array() type for
+ "show variables like" statements
0.3.4
- general:
from sqlalchemy.engine import default
import sqlalchemy.types as sqltypes
import sqlalchemy.exceptions as exceptions
+from array import array
try:
import MySQLdb as mysql
def reflecttable(self, connection, table):
# reference: http://dev.mysql.com/doc/refman/5.0/en/name-case-sensitivity.html
- case_sensitive = int(connection.execute("show variables like 'lower_case_table_names'").fetchone()[1]) == 0
+ cs = connection.execute("show variables like 'lower_case_table_names'").fetchone()[1]
+ if isinstance(cs, array):
+ cs = cs.tostring()
+ case_sensitive = int(cs) == 0
+
if not case_sensitive:
table.name = table.name.lower()
table.metadata.tables[table.name]= table