summaryrefslogtreecommitdiff
path: root/src/backend/querydb.py
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-09-22 17:30:05 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-09-22 17:30:05 +0100
commit69cba5b0c4695197100bb8e2454c9e7622cfb1b2 (patch)
treeb656d2a43655e42e080958253d751f5f25636d6f /src/backend/querydb.py
parent2f890f90a1efeb782eda100cd95fb25194777ea4 (diff)
backend :v4.2409.2
* Improve the database query to take SLOTS into consideration * This addresses the unreliability of the 'upgradable' filter. * The change ensures consistent and accurate filtering of upgradable packages. qt frontend : * Select the package SLOT on install and remove operations * This resolves a rare issue where for example Blender version 4.2 is unavailable, * and selecting version 3.6, 4.0 or 4.1 inadvertently defaults to 4.2 due to a missing SLOT. * The change ensures consistent and accurate version selection thanks to SLOT selection.
Diffstat (limited to 'src/backend/querydb.py')
-rw-r--r--src/backend/querydb.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/backend/querydb.py b/src/backend/querydb.py
index bc87123..b1dd257 100644
--- a/src/backend/querydb.py
+++ b/src/backend/querydb.py
@@ -6,19 +6,21 @@ def start(filter, cat='', pn='', desc=''):
'all': f'''SELECT
i.category AS cat,
i.name as pn,
+ i.slot as ist,
i.version as iv,
IFNULL(a.version, 'alien') AS av,
d.description AS desc
FROM local_packages AS i LEFT OUTER JOIN remote_packages as a
ON i.category = a.category
AND i.name = a.name
- AND i.slot = i.slot
+ AND i.slot = a.slot
LEFT JOIN remote_descriptions AS d ON i.name = d.name AND i.category = d.category
WHERE cat LIKE '%{cat}%' AND pn LIKE '%{pn}%' AND desc LIKE '%{desc}%' {NOVIRT}
UNION
SELECT
a.category AS cat,
a.name as pn,
+ a.slot as ast,
IFNULL(i.version, 'None') AS iv,
a.version as av,
d.description AS desc
@@ -31,6 +33,7 @@ def start(filter, cat='', pn='', desc=''):
'installed': f'''SELECT
i.category AS cat,
i.name AS pn,
+ i.slot as ist,
i.version AS iv,
a.version as av,
d.description AS desc
@@ -38,12 +41,13 @@ def start(filter, cat='', pn='', desc=''):
LEFT JOIN remote_packages AS a
ON i.category = a.category
AND i.name = a.name
- AND i.slot = i.slot
+ AND i.slot = a.slot
LEFT JOIN remote_descriptions AS d ON i.name = d.name AND i.category = d.category
WHERE cat LIKE '%{cat}%' AND pn LIKE '%{pn}%' AND desc LIKE '%{desc}%' {NOVIRT}''',
'alien': f'''SELECT
i.category AS cat,
i.name AS pn,
+ i.slot as ist,
i.version as iv,
IFNULL(a.version, 'alien') AS av,
d.description AS desc
@@ -58,6 +62,7 @@ def start(filter, cat='', pn='', desc=''):
'available': f'''SELECT
a.category AS cat,
a.name AS pn,
+ a.slot as ast,
i.version as iv,
a.version AS av,
d.description AS desc
@@ -72,6 +77,7 @@ def start(filter, cat='', pn='', desc=''):
'upgradable': f'''SELECT
i.category AS cat,
i.name AS pn,
+ i.slot as ist,
i.version as iv,
a.version AS av,
d.description AS desc
@@ -79,7 +85,7 @@ def start(filter, cat='', pn='', desc=''):
INNER JOIN remote_packages AS a
ON i.category = a.category
AND i.name = a.name
- AND i.slot = i.slot
+ AND i.slot = a.slot
LEFT JOIN remote_descriptions AS d ON i.name = d.name AND i.category = d.category
WHERE cat LIKE '%{cat}%' AND pn LIKE '%{pn}%' AND desc LIKE '%{desc}%' {NOVIRT}
AND iv <> av'''