'Return the list of sub-sorts for which we can be (at least
partially) fast.
A contiguous suffix of fast (SQL-capable) sub-sorts are
executable in SQL. The remaining, even if they are fast
independently, must be executed slowly.'

def _sql_sorts(self):

    sql_sorts = []
    for sort in reversed(self.sorts):
        if (not (sort.order_clause() is None)):
            sql_sorts.append(sort)
        else:
            break
    sql_sorts.reverse()
    return sql_sorts
