33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
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
 |