Hi guys. Is there any mechanism in SQLAlchemy which allows to redefine operator compilation? I want to the same thing as already exists for functions. An example for functions:
class IntDiv(GenericFunction): type = Integer package = 'adc_custom' name = 'div' identifier = 'div' @compiles(IntDiv) def visit_div_default(element, compiler, **kwargs): params = [compiler.process(c.self_group()) for c in element.clause_expr.element.get_children()] return '%s / %s' % (params[0], params[1]) @compiles(IntDiv, 'clickhouse') def visit_div_ch(element, compiler, **kwargs): return 'intDiv(%s)' % compiler.process(element.clause_expr.element) What I want to do: class BitAdd(CustomOp): pass @compiles(BitAdd) def visit_bit_add_default(element, compiler, **kwargs): return '%s & %s' % (element.left, element.right) @compiles(IntDiv, 'clickhouse') def visit_bit_add_ch(element, compiler, **kwargs): return 'bitAnd(%s, %s)' % (element.left, element.right) Statement looks like that: some_col.op('&')(some_int_flag) I understand that I can define generic function and use it instead of `.op('&')`, but at first I want to find another way. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.