xref: /aosp_15_r20/external/autotest/frontend/db/backends/afe/compiler.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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