summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 93e2473d9..2690dd896 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -23,6 +23,7 @@ To generate user-defined SQL strings, see
"""
import re
+import sys
from sqlalchemy import schema, engine, util, exc
from sqlalchemy.sql import operators, functions, util as sql_util, \
visitors
@@ -1379,19 +1380,35 @@ class DDLCompiler(engine.Compiled):
# if only one primary key, specify it along with the column
first_pk = False
for column in table.columns:
- text += separator
- separator = ", \n"
- text += "\t" + self.get_column_specification(
- column,
- first_pk=column.primary_key and \
- not first_pk
- )
- if column.primary_key:
- first_pk = True
- const = " ".join(self.process(constraint) \
- for constraint in column.constraints)
- if const:
- text += " " + const
+ try:
+ text += separator
+ separator = ", \n"
+ text += "\t" + self.get_column_specification(
+ column,
+ first_pk=column.primary_key and \
+ not first_pk
+ )
+ if column.primary_key:
+ first_pk = True
+ const = " ".join(self.process(constraint) \
+ for constraint in column.constraints)
+ if const:
+ text += " " + const
+ except exc.CompileError, ce:
+ # Py3K
+ #raise exc.CompileError("(in table '%s', column '%s'): %s"
+ # % (
+ # table.description,
+ # column.name,
+ # ce.args[0]
+ # )) from ce
+ # Py2K
+ raise exc.CompileError("(in table '%s', column '%s'): %s"
+ % (
+ table.description,
+ column.name,
+ ce.args[0]
+ )), None, sys.exc_info()[2]
const = self.create_table_constraints(table)
if const: