1*9c5db199SXin Lifrom django.db.backends.mysql import compiler as mysql_compiler 2*9c5db199SXin Lifrom autotest_lib.frontend.afe.model_logic import _quote_name 3*9c5db199SXin Li 4*9c5db199SXin Liclass SQLCompiler(mysql_compiler.SQLCompiler): 5*9c5db199SXin Li def get_from_clause(self): 6*9c5db199SXin Li from_, params = super(SQLCompiler, self).get_from_clause() 7*9c5db199SXin Li 8*9c5db199SXin Li if hasattr(self.query, "_custom_joins"): 9*9c5db199SXin Li for join_dict in self.query._custom_joins: 10*9c5db199SXin Li from_.append('%s %s AS %s ON (%s)' 11*9c5db199SXin Li % (join_dict['join_type'], 12*9c5db199SXin Li _quote_name(join_dict['table']), 13*9c5db199SXin Li _quote_name(join_dict['alias']), 14*9c5db199SXin Li join_dict['condition'])) 15*9c5db199SXin Li params.extend(join_dict['condition_values']) 16*9c5db199SXin Li 17*9c5db199SXin Li return from_, params 18*9c5db199SXin Li 19*9c5db199SXin Liclass SQLInsertCompiler(mysql_compiler.SQLInsertCompiler, SQLCompiler): 20*9c5db199SXin Li pass 21*9c5db199SXin Li 22*9c5db199SXin Liclass SQLDeleteCompiler(mysql_compiler.SQLDeleteCompiler, SQLCompiler): 23*9c5db199SXin Li pass 24*9c5db199SXin Li 25*9c5db199SXin Liclass SQLUpdateCompiler(mysql_compiler.SQLUpdateCompiler, SQLCompiler): 26*9c5db199SXin Li pass 27*9c5db199SXin Li 28*9c5db199SXin Liclass SQLAggregateCompiler(mysql_compiler.SQLAggregateCompiler, SQLCompiler): 29*9c5db199SXin Li pass 30*9c5db199SXin Li 31*9c5db199SXin Liclass SQLDateCompiler(mysql_compiler.SQLDateCompiler, SQLCompiler): 32*9c5db199SXin Li pass 33