self.process(binary.right, **kw))
def visit_concat_op_binary(self, binary, operator, **kw):
- return "concat(%s, %s)" % (self.process(binary.left),
- self.process(binary.right))
+ return "concat(%s, %s)" % (self.process(binary.left, **kw),
+ self.process(binary.right, **kw))
def visit_match_op_binary(self, binary, operator, **kw):
return "MATCH (%s) AGAINST (%s IN BOOLEAN MODE)" % \
- (self.process(binary.left), self.process(binary.right))
+ (self.process(binary.left, **kw), self.process(binary.right, **kw))
def get_from_hint_text(self, table, text):
return text
- def visit_typeclause(self, typeclause, type_=None):
+ def visit_typeclause(self, typeclause, type_=None, **kw):
if type_ is None:
type_ = typeclause.type.dialect_impl(self.dialect)
if isinstance(type_, sqltypes.TypeDecorator):
- return self.visit_typeclause(typeclause, type_.impl)
+ return self.visit_typeclause(typeclause, type_.impl, **kw)
elif isinstance(type_, sqltypes.Integer):
if getattr(type_, 'unsigned', False):
return 'UNSIGNED INTEGER'
return ' '.join(table_opts)
- def visit_create_index(self, create):
+ def visit_create_index(self, create, **kw):
index = create.element
self._verify_index_table(index)
preparer = self.preparer
index_prefix = index.kwargs.get('mysql_prefix', None)
if index_prefix:
- text += index_prefix + ' '
+ text += index_prefix + ' '
text += "INDEX %s ON %s " % (name, table)
NUMERIC, DECIMAL, Numeric, Float, FLOAT, TIMESTAMP, DATE, \
DATETIME, TIME, \
DateTime, Time, Date, Interval, NCHAR, CHAR, CLOB, TEXT, Boolean, \
- BOOLEAN, LargeBinary, BLOB, SmallInteger, INT, func, cast
+ BOOLEAN, LargeBinary, BLOB, SmallInteger, INT, func, cast, literal
from sqlalchemy.dialects.mysql import base as mysql
from sqlalchemy.testing import fixtures, AssertsCompiledSQL
matchtable.c.title.match('somstr'),
"MATCH (matchtable.title) AGAINST (%s IN BOOLEAN MODE)")
+ def test_match_compile_kw(self):
+ expr = literal('x').match(literal('y'))
+ self.assert_compile(
+ expr,
+ "MATCH ('x') AGAINST ('y' IN BOOLEAN MODE)",
+ literal_binds=True
+ )
+
+ def test_concat_compile_kw(self):
+ expr = literal('x', type_=String) + literal('y', type_=String)
+ self.assert_compile(
+ expr,
+ "concat('x', 'y')",
+ literal_binds=True
+ )
+
def test_for_update(self):
table1 = table('mytable',
column('myid'), column('name'), column('description'))