From 292f140a4f391f646ec0be85ec9f22dde30f9de2 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Thu, 9 Nov 2017 08:11:14 -0800 Subject: [PATCH] Explicitly order by pk (or by rowid) Refs #5 --- immutabase/app.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/immutabase/app.py b/immutabase/app.py index 306c9942..af68b54f 100644 --- a/immutabase/app.py +++ b/immutabase/app.py @@ -256,16 +256,22 @@ class TableView(BaseView): table = urllib.parse.unquote_plus(table) pks = await self.pks_for_table(name, table) use_rowid = not pks - select = '*' if use_rowid: select = 'rowid, *' + order_by = 'rowid' + else: + select = '*' + order_by = ', '.join(pks) + if request.args: where_clause, params = build_where_clause(request.args) - sql = 'select {} from "{}" where {} limit 50'.format( - select, table, where_clause + sql = 'select {} from "{}" where {} order by {} limit 50'.format( + select, table, where_clause, order_by ) else: - sql = 'select {} from "{}" limit 50'.format(select, table) + sql = 'select {} from "{}" order by {} limit 50'.format( + select, table, order_by + ) params = [] rows = await self.execute(name, sql, params)