diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/ansisql.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/databases/sqlite.py | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index a4cbb4358..a06abe598 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -209,12 +209,15 @@ class ANSICompiler(sql.Compiled): def visit_binary(self, binary): result = self.get_str(binary.left) if binary.operator is not None: - result += " " + binary.operator + result += " " + self.binary_operator_string(binary) result += " " + self.get_str(binary.right) if binary.parens: result = "(" + result + ")" self.strings[binary] = result + def binary_operator_string(self, binary): + return binary.operator + def visit_bindparam(self, bindparam): if bindparam.shortname != bindparam.key: self.binds[bindparam.shortname] = bindparam diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 26cc3cf05..0288beae8 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -185,7 +185,11 @@ class SQLiteCompiler(ansisql.ANSICompiler): text += " \n LIMIT -1" text += " OFFSET " + str(select.offset) return text - + def binary_operator_string(self, binary): + if isinstance(binary.type, sqltypes.String) and binary.operator == '+': + return '||' + else: + return ansisql.ANSICompiler.binary_operator_string(self, binary) class SQLiteSchemaGenerator(ansisql.ANSISchemaGenerator): def get_column_specification(self, column, override_pk=False, **kwargs): |
