summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/ansisql.py5
-rw-r--r--lib/sqlalchemy/databases/sqlite.py6
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):