From c39e89c8227d1fe358298825c032c88970d49ef6 Mon Sep 17 00:00:00 2001 From: Mike Lang Date: Wed, 16 Nov 2022 16:54:27 +1100 Subject: [PATCH] sheetsync: Don't pull the entire row from the database only the columns you need. This matters because the thumbnail columns are very large and we're transfering GB of data every time. --- sheetsync/sheetsync/main.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sheetsync/sheetsync/main.py b/sheetsync/sheetsync/main.py index 99e26bc..43389bb 100644 --- a/sheetsync/sheetsync/main.py +++ b/sheetsync/sheetsync/main.py @@ -213,7 +213,16 @@ class SheetSync(object): def get_events(self): """Return the entire events table as a map {id: event namedtuple}""" - result = query(self.conn, "SELECT * FROM events") + built_query = sql.SQL(""" + SELECT {} FROM EVENTS + """).format( + sql.SQL(", ").join(sql.Identifier(col) for col in + { "id", "state", "error", "public" } + | self.input_columns + | self.output_columns + ), + ) + result = query(self.conn, built_query) by_id = {} counts = defaultdict(lambda: 0) for row in result.fetchall():