from django.db.backends.mysql import compiler as mysql_compiler from autotest_lib.frontend.afe.model_logic import _quote_name class SQLCompiler(mysql_compiler.SQLCompiler): def get_from_clause(self): from_, params = super(SQLCompiler, self).get_from_clause() if hasattr(self.query, "_custom_joins"): for join_dict in self.query._custom_joins: from_.append('%s %s AS %s ON (%s)' % (join_dict['join_type'], _quote_name(join_dict['table']), _quote_name(join_dict['alias']), join_dict['condition'])) params.extend(join_dict['condition_values']) return from_, params class SQLInsertCompiler(mysql_compiler.SQLInsertCompiler, SQLCompiler): pass class SQLDeleteCompiler(mysql_compiler.SQLDeleteCompiler, SQLCompiler): pass class SQLUpdateCompiler(mysql_compiler.SQLUpdateCompiler, SQLCompiler): pass class SQLAggregateCompiler(mysql_compiler.SQLAggregateCompiler, SQLCompiler): pass class SQLDateCompiler(mysql_compiler.SQLDateCompiler, SQLCompiler): pass