From e4bb84ab823c2d4971a10ef370c14a0227798ea1 Mon Sep 17 00:00:00 2001 From: Rebecca Breu Date: Tue, 28 Nov 2023 20:06:09 +0100 Subject: [PATCH] Performance twearking when reading bee sql --- beeref/fileio/sql.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/beeref/fileio/sql.py b/beeref/fileio/sql.py index c085c75..3dd7682 100644 --- a/beeref/fileio/sql.py +++ b/beeref/fileio/sql.py @@ -173,7 +173,7 @@ class SQLiteIO: def write_meta(self): self.ex('PRAGMA application_id=%s' % APPLICATION_ID) self.ex('PRAGMA user_version=%s' % USER_VERSION) - self.ex('PRAGMA foreign_keys=1') + self.ex('PRAGMA foreign_keys=ON') def create_schema_on_new(self): if self.create_new: @@ -186,7 +186,14 @@ class SQLiteIO: rows = self.fetchall( 'SELECT items.id, type, x, y, z, scale, rotation, flip, ' 'items.data, sqlar.data ' - 'FROM items LEFT OUTER JOIN sqlar on sqlar.item_id = items.id') + 'FROM sqlar JOIN items on sqlar.item_id = items.id') + # Avoid OUTER JOIN for performance reasons; fetch text items + # separately instead + rows.extend(self.fetchall( + 'SELECT items.id, type, x, y, z, scale, rotation, flip, ' + ' items.data, null as data ' + 'FROM items ' + 'WHERE items.type = "text"')) if self.worker: self.worker.begin_processing.emit(len(rows))