def as_oracle(self, compiler, connection): # Oracle doesn't allow ORDER BY EXISTS() unless it's wrapped in # a CASE WHEN. if isinstance(self.expression, Exists): copy = self.copy() copy.expression = Case( When(self.expression, then=True), default=False, ) return copy.as_sql(compiler, connection) return self.as_sql(compiler, connection)
def as_oracle(self, compiler, connection): # Oracle doesn't allow ORDER BY EXISTS() unless it's wrapped in # a CASE WHEN. if isinstance(self.expression, Exists): copy = self.copy() # XXX: Use Case(When(self.lhs)) once support for boolean # expressions is added to When. exists_sql, params = compiler.compile(self.expression) case_sql = 'CASE WHEN %s THEN 1 ELSE 0 END' % exists_sql copy.expression = RawSQL(case_sql, params) return copy.as_sql(compiler, connection) return self.as_sql(compiler, connection)