From c48d25cf7cf11dbe572f82ae16c6e37ce1ee3dcf Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Fri, 4 Dec 2020 02:03:17 +0100
Subject: [PATCH] WIP: fix sorting

---
 djaosdb/caosdb_client.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/djaosdb/caosdb_client.py b/djaosdb/caosdb_client.py
index 8633e05..3b16415 100644
--- a/djaosdb/caosdb_client.py
+++ b/djaosdb/caosdb_client.py
@@ -42,13 +42,17 @@ class FindResult(Result):
 
         upper = (skip + limit if skip is not None and limit is not None else
                  limit)
-        if sort:
-            rows.sort(key=lambda x: x[sort[0][0]], reverse=sort[0][1] < 0)
+
 
         if columns is not None:
-            self._results = []
-            for row in rows[skip:upper]:
-                self._results.append(dict(zip(columns, row)))
+            if sort:
+                named_columns = [dict(zip(columns, row)) for row in rows]
+                named_columns.sort(key=lambda x: x[sort[0][0]], reverse=sort[0][1] < 0)
+                self._results = named_columns[skip:upper]
+            else:
+                self._results = []
+                for row in rows[skip:upper]:
+                    self._results.append(dict(zip(columns, row)))
         else:
             self._results=rows
 
-- 
GitLab