You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
4 months ago
|
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
|