[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] update-external-files: modify query to be faster



The previous query was way too slow; PostgreSQL seems to be happier
with this.
---
 scripts/debian/update-external-files | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/debian/update-external-files b/scripts/debian/update-external-files
index 8ae7f13e..4a2b86ea 100755
--- a/scripts/debian/update-external-files
+++ b/scripts/debian/update-external-files
@@ -44,6 +44,6 @@ fi
   /usr/bin/psql -1 -d obscurity -c '
     CREATE TEMPORARY TABLE external_files_tmp AS SELECT * FROM external_files WITH NO DATA;
     COPY external_files_tmp (id, filename, size, md5sum, last_used, sha1sum, sha256sum, created, modified) FROM STDIN;
-    DELETE FROM external_files WHERE id NOT IN (SELECT id FROM external_files_tmp);
-    INSERT INTO external_files SELECT * FROM external_files_tmp WHERE id NOT IN (SELECT id FROM external_files);
+    DELETE FROM external_files ef WHERE NOT EXISTS (SELECT 1 FROM external_files_tmp tmp WHERE tmp.id = ef.id);
+    INSERT INTO external_files SELECT * FROM external_files_tmp tmp WHERE NOT EXISTS (SELECT 1 FROM external_files ef WHERE ef.id = tmp.id);
     '
-- 
2.11.0


Reply to: