From a5a6d3862ad138e09fb1b6eb7debdd0d9be944e3 Mon Sep 17 00:00:00 2001 From: Saul Pwanson Date: Fri, 7 Jul 2023 14:03:42 -0700 Subject: [PATCH] [vdsql-] use intermediate expr with order_by with filter #1856 --- visidata/apps/vdsql/_ibis.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/visidata/apps/vdsql/_ibis.py b/visidata/apps/vdsql/_ibis.py index a0631a562..aa6f42da0 100644 --- a/visidata/apps/vdsql/_ibis.py +++ b/visidata/apps/vdsql/_ibis.py @@ -284,12 +284,19 @@ def ibis_filter(self): @property def pending_expr(self): + import ibis q = self.get_current_expr(typed=True) if self.ibis_selection: q = q.filter(self.ibis_filter) if self._ordering: - q = q.order_by([(col.get_ibis_col(self.query), not rev) for col, rev in self._ordering]) + colorder = [] + for col, rev in self._ordering: + ibiscol = col.get_ibis_col(q) #1856 + if rev: + ibiscol = ibis.desc(ibiscol) + colorder.append(ibiscol) + q = q.order_by(colorder) return q