summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite')
-rw-r--r--lib/sqlalchemy/dialects/sqlite/base.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py
index c6932be8f..cc17b6c9b 100644
--- a/lib/sqlalchemy/dialects/sqlite/base.py
+++ b/lib/sqlalchemy/dialects/sqlite/base.py
@@ -1567,20 +1567,25 @@ class SQLiteDialect(default.DefaultDialect):
@reflection.cache
def _get_table_sql(self, connection, table_name, schema=None, **kw):
+ if schema:
+ schema_expr = "%s." % (
+ self.identifier_preparer.quote_identifier(schema))
+ else:
+ schema_expr = ""
try:
s = ("SELECT sql FROM "
" (SELECT * FROM %(schema)ssqlite_master UNION ALL "
" SELECT * FROM %(schema)ssqlite_temp_master) "
"WHERE name = '%(table)s' "
"AND type = 'table'" % {
- "schema": ("%s." % schema) if schema else "",
+ "schema": schema_expr,
"table": table_name})
rs = connection.execute(s)
except exc.DBAPIError:
s = ("SELECT sql FROM %(schema)ssqlite_master "
"WHERE name = '%(table)s' "
"AND type = 'table'" % {
- "schema": ("%s." % schema) if schema else "",
+ "schema": schema_expr,
"table": table_name})
rs = connection.execute(s)
return rs.scalar()