From 82e5aa96bcd4f92572c4536eba1fe7b50434c2eb Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@cd1c1023-2f26-0410-ae45-c471fc1f0318> Date: Sat, 3 Nov 2007 00:38:43 +0000 Subject: [PATCH] iniziamo lo speedup sql git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@599 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- libraries/databaseTools.py | 387 ++++++++++--------------------------- 1 file changed, 102 insertions(+), 285 deletions(-) diff --git a/libraries/databaseTools.py b/libraries/databaseTools.py index defb5c079..b678bcd64 100644 --- a/libraries/databaseTools.py +++ b/libraries/databaseTools.py @@ -1862,12 +1862,9 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "atom" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - atom = '' - for row in self.cursor: - atom = row[0] - break - + self.cursor.execute('SELECT "atom" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') + atom = self.cursor.fetchone()[0] + ''' caching ''' if (self.xcache): dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveAtom'] = atom @@ -1887,10 +1884,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "branch" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - br = '' - for row in self.cursor: - br = row[0] - break + br = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -1911,10 +1905,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "download" FROM extrainfo WHERE idpackage = "'+str(idpackage)+'"') - download = '' - for row in self.cursor: - download = row[0] - break + download = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -1935,10 +1926,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "description" FROM extrainfo WHERE idpackage = "'+str(idpackage)+'"') - description = '' - for row in self.cursor: - description = row[0] - break + description = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -1959,10 +1947,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "homepage" FROM extrainfo WHERE idpackage = "'+str(idpackage)+'"') - home = '' - for row in self.cursor: - home = row[0] - break + home = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -1985,16 +1970,14 @@ class etpDatabase: counter = -1 try: self.cursor.execute('SELECT "counter" FROM counters WHERE idpackage = "'+str(idpackage)+'"') - for row in self.cursor: - counter = row[0] - break + counter = self.cursor.fetchone()[0] except: pass ''' caching ''' if (self.xcache): - dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveCounter'] = counter - return counter + dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveCounter'] = int(counter) + return int(counter) def retrieveMessages(self, idpackage): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveMessages: retrieving messages for package ID "+str(idpackage)) @@ -2090,10 +2073,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "digest" FROM extrainfo WHERE idpackage = "'+str(idpackage)+'"') - digest = '' - for row in self.cursor: - digest = row[0] - break + digest = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2114,10 +2094,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "name" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - name = '' - for row in self.cursor: - name = row[0] - break + name = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2138,10 +2115,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "version" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - ver = '' - for row in self.cursor: - ver = row[0] - break + ver = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2162,10 +2136,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "revision" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - rev = '' - for row in self.cursor: - rev = row[0] - break + rev = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2233,15 +2204,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idflag" FROM useflags WHERE idpackage = "'+str(idpackage)+'"') - idflgs = [] - for row in self.cursor: - idflgs.append(row[0]) - flags = [] - for idflg in idflgs: - self.cursor.execute('SELECT "flagname" FROM useflagsreference WHERE idflag = "'+str(idflg)+'"') - for row in self.cursor: - flags.append(row[0]) + self.cursor.execute('SELECT flagname FROM useflags,useflagsreference WHERE useflags.idpackage = "'+str(idpackage)+'" and useflags.idflag = useflagsreference.idflag') + flags = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2261,15 +2225,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idclass" FROM eclasses WHERE idpackage = "'+str(idpackage)+'"') - idclasses = [] - for row in self.cursor: - idclasses.append(row[0]) - classes = [] - for idclass in idclasses: - self.cursor.execute('SELECT "classname" FROM eclassesreference WHERE idclass = "'+str(idclass)+'"') - for row in self.cursor: - classes.append(row[0]) + self.cursor.execute('SELECT classname FROM eclasses,eclassesreference WHERE eclasses.idpackage = "'+str(idpackage)+'" and eclasses.idclass = eclassesreference.idclass') + classes = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2289,15 +2246,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idneeded" FROM needed WHERE idpackage = "'+str(idpackage)+'"') - idneededs = set() - for row in self.cursor: - idneededs.add(row[0]) - needed = set() - for idneeded in idneededs: - self.cursor.execute('SELECT "library" FROM neededreference WHERE idneeded = "'+str(idneeded)+'"') - for row in self.cursor: - needed.add(row[0]) + self.cursor.execute('SELECT library FROM needed,neededreference WHERE ineeded.dpackage = "'+str(idpackage)+'" and needed.idneeded = neededreference.idneeded') + needed = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2318,9 +2268,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "conflict" FROM conflicts WHERE idpackage = "'+str(idpackage)+'"') - confl = [] - for row in self.cursor: - confl.append(row[0]) + confl = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2341,9 +2289,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "atom" FROM provide WHERE idpackage = "'+str(idpackage)+'"') - provide = [] - for row in self.cursor: - provide.append(row[0]) + provide = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2363,16 +2309,9 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT iddependency FROM dependencies WHERE idpackage = "'+str(idpackage)+'"') - iddeps = [] - for row in self.cursor: - iddeps.append(row[0]) - deps = [] - for iddep in iddeps: - self.cursor.execute('SELECT dependency FROM dependenciesreference WHERE iddependency = "'+str(iddep)+'"') - for row in self.cursor: - deps.append(row[0]) - + self.cursor.execute('SELECT dependenciesreference.dependency FROM dependencies,dependenciesreference WHERE idpackage = "'+str(idpackage)+'" and dependencies.iddependency = dependenciesreference.iddependency') + deps = self.cursor.fetchall() + ''' caching ''' if (self.xcache): dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveDependencies'] = deps @@ -2392,9 +2331,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT iddependency FROM dependencies WHERE idpackage = "'+str(idpackage)+'"') - iddeps = [] - for row in self.cursor: - iddeps.append(row[0]) + iddeps = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2414,15 +2351,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idkeyword" FROM binkeywords WHERE idpackage = "'+str(idpackage)+'"') - idkws = [] - for row in self.cursor: - idkws.append(row[0]) - kw = [] - for idkw in idkws: - self.cursor.execute('SELECT "keywordname" FROM keywordsreference WHERE idkeyword = "'+str(idkw)+'"') - for row in self.cursor: - kw.append(row[0]) + self.cursor.execute('SELECT keywordname FROM binkeywords,keywordsreference WHERE binkeywords.idpackage = "'+str(idpackage)+'" and binkeywords.idkeyword = keywordsreference.idkeyword') + kw = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2442,15 +2372,9 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveKeywords: retrieving Keywords for package ID "+str(idpackage)) - self.cursor.execute('SELECT "idkeyword" FROM keywords WHERE idpackage = "'+str(idpackage)+'"') - idkws = [] - for row in self.cursor: - idkws.append(row[0]) - kw = [] - for idkw in idkws: - self.cursor.execute('SELECT "keywordname" FROM keywordsreference WHERE idkeyword = "'+str(idkw)+'"') - for row in self.cursor: - kw.append(row[0]) + self.cursor.execute('SELECT keywordname FROM keywords,keywordsreference WHERE keywords.idpackage = "'+str(idpackage)+'" and keywords.idkeyword = keywordsreference.idkeyword') + kw = self.cursor.fetchall() + ''' caching ''' if (self.xcache): @@ -2470,22 +2394,14 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idprotect" FROM configprotect WHERE idpackage = "'+str(idpackage)+'"') - idprotect = -1 - for row in self.cursor: - idprotect = row[0] - break - protect = '' - if idprotect == -1: - return protect - self.cursor.execute('SELECT "protect" FROM configprotectreference WHERE idprotect = "'+str(idprotect)+'"') - for row in self.cursor: - protect = row[0] - break - - ''' caching ''' - if (self.xcache): - dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveProtect'] = protect + self.cursor.execute('SELECT protect FROM configprotect,configprotectreference WHERE configprotect.idpackage = "'+str(idpackage)+'" and configprotect.idprotect = configprotectreference.idprotect') + protect = self.cursor.fetchone() + if not protect: + protect = '' + else: + ''' caching ''' + if (self.xcache): + dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveProtect'] = protect return protect def retrieveProtectMask(self, idpackage): @@ -2501,22 +2417,14 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idprotect" FROM configprotectmask WHERE idpackage = "'+str(idpackage)+'"') - idprotect = -1 - for row in self.cursor: - idprotect = row[0] - break - protect = '' - if idprotect == -1: - return protect - self.cursor.execute('SELECT "protect" FROM configprotectreference WHERE idprotect = "'+str(idprotect)+'"') - for row in self.cursor: - protect = row[0] - break - - ''' caching ''' - if (self.xcache): - dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveProtectMask'] = protect + self.cursor.execute('SELECT protect FROM configprotectmask,configprotectreference WHERE idpackage = "'+str(idpackage)+'" and configprotectmask.idprotect= configprotectreference.idprotect') + protect = self.cursor.fetchone() + if not protect: + protect = '' + else: + ''' caching ''' + if (self.xcache): + dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)]['retrieveProtectMask'] = protect return protect def retrieveSources(self, idpackage): @@ -2532,15 +2440,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT idsource FROM sources WHERE idpackage = "'+str(idpackage)+'"') - idsources = [] - for row in self.cursor: - idsources.append(row[0]) - sources = [] - for idsource in idsources: - self.cursor.execute('SELECT source FROM sourcesreference WHERE idsource = "'+str(idsource)+'"') - for row in self.cursor: - sources.append(row[0]) + self.cursor.execute('SELECT sourcesreference.source FROM sources,sourcesreference WHERE idpackage = "'+str(idpackage)+'" sources.idsource = sourcesreference.idsource') + sources = self.corsor.fetchall() ''' caching ''' if (self.xcache): @@ -2561,9 +2462,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "file" FROM content WHERE idpackage = "'+str(idpackage)+'"') - fl = [] - for row in self.cursor: - fl.append(row[0]) + fl = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2574,7 +2473,7 @@ class etpDatabase: dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveSlot: retrieving Slot for package ID "+str(idpackage)) ''' caching ''' - if (self.xcache): + if (self.xcache): cached = dbCacheStore[etpCache['dbInfo']+self.dbname].get(int(idpackage), None) if cached: rslt = dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)].get('retrieveSlot',None) @@ -2584,10 +2483,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "slot" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - ver = '' - for row in self.cursor: - ver = row[0] - break + ver = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2608,10 +2504,7 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "versiontag" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - ver = '' - for row in self.cursor: - ver = row[0] - break + ver = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2622,9 +2515,7 @@ class etpDatabase: dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"retrieveMirrorInfo: retrieving Mirror info for mirror name "+str(mirrorname)) self.cursor.execute('SELECT "mirrorlink" FROM mirrorlinks WHERE mirrorname = "'+str(mirrorname)+'"') - mirrorlist = [] - for row in self.cursor: - mirrorlist.append(row[0]) + mirrorlist = self.cursor.fetchall() return mirrorlist @@ -2641,17 +2532,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idcategory" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - cat = '' - for row in self.cursor: - cat = row[0] - break - # now get the category name - self.cursor.execute('SELECT "category" FROM categories WHERE idcategory = '+str(cat)) - cat = -1 - for row in self.cursor: - cat = row[0] - break + self.cursor.execute('SELECT category FROM baseinfo,categories WHERE baseinfo.idpackage = "'+str(idpackage)+'" and baseinfo.idcategory = categories.idcategory ') + cat = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2671,17 +2553,8 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - self.cursor.execute('SELECT "idlicense" FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - lic = -1 - for row in self.cursor: - lic = row[0] - break - # now get the license name - self.cursor.execute('SELECT "license" FROM licenses WHERE idlicense = '+str(lic)) - licname = '' - for row in self.cursor: - licname = row[0] - break + self.cursor.execute('SELECT license FROM baseinfo,licenses WHERE baseinfo.idpackage = "'+str(idpackage)+'" baseinfo.idlicense = licenses.idlicense') + licname = self.cursor.fetchone()[0] ''' caching ''' if (self.xcache): @@ -2702,16 +2575,12 @@ class etpDatabase: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} self.cursor.execute('SELECT "idflags" FROM extrainfo WHERE idpackage = "'+str(idpackage)+'"') - idflag = -1 - for row in self.cursor: - idflag = row[0] - break + idflag = self.cursor.fetchone()[0] # now get the flags self.cursor.execute('SELECT chost,cflags,cxxflags FROM flags WHERE idflags = '+str(idflag)) - flags = ["N/A","N/A","N/A"] - for row in self.cursor: - flags = row - break + flags = self.cursor.fetchone()[0] + if not flags: + flags = ["N/A","N/A","N/A"] ''' caching ''' if (self.xcache): @@ -2737,15 +2606,8 @@ class etpDatabase: return -2 # table does not exist or is broken, please regenerate and re-run iddeps = [] - self.cursor.execute('SELECT iddependency FROM dependstable WHERE idpackage = "'+str(idpackage)+'"') - for row in self.cursor: - iddeps.append(row[0]) - result = [] - for iddep in iddeps: - #print iddep - self.cursor.execute('SELECT idpackage FROM dependencies WHERE iddependency = "'+str(iddep)+'"') - for row in self.cursor: - result.append(row[0]) + self.cursor.execute('SELECT idpackage FROM dependstable,dependencies WHERE dependstable.idpackage = "'+str(idpackage)+'" and dependstable.iddependency = dependencies.iddependency') + result = self.cursor.fetchall() ''' caching ''' if (self.xcache): @@ -2758,11 +2620,9 @@ class etpDatabase: def isPackageAvailable(self,pkgkey): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isPackageAvailable: called.") pkgkey = entropyTools.removePackageOperators(pkgkey) - result = [] self.cursor.execute('SELECT idpackage FROM baseinfo WHERE atom = "'+pkgkey+'"') - for row in self.cursor: - result.append(row) - if result == []: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isPackageAvailable: "+pkgkey+" not available.") return False dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isPackageAvailable: "+pkgkey+" available.") @@ -2770,11 +2630,9 @@ class etpDatabase: def isIDPackageAvailable(self,idpackage): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isIDPackageAvailable: called.") - result = [] self.cursor.execute('SELECT idpackage FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - for row in self.cursor: - result.append(row[0]) - if result == []: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isIDPackageAvailable: "+str(idpackage)+" not available.") return False dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isIDPackageAvailable: "+str(idpackage)+" available.") @@ -2784,11 +2642,9 @@ class etpDatabase: def isSpecificPackageAvailable(self, pkgkey, branch): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSpecificPackageAvailable: called.") pkgkey = entropyTools.removePackageOperators(pkgkey) - result = [] self.cursor.execute('SELECT idpackage FROM baseinfo WHERE atom = "'+pkgkey+'" AND branch = "'+branch+'"') - for row in self.cursor: - result.append(row[0]) - if result == []: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isSpecificPackageAvailable: "+pkgkey+" | branch: "+branch+" -> not found.") return False dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSpecificPackageAvailable: "+pkgkey+" | branch: "+branch+" -> found !") @@ -2796,11 +2652,9 @@ class etpDatabase: def isCategoryAvailable(self,category): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isCategoryAvailable: called.") - result = -1 self.cursor.execute('SELECT idcategory FROM categories WHERE category = "'+category+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result???: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isCategoryAvailable: "+category+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isCategoryAvailable: "+category+" available.") @@ -2808,11 +2662,9 @@ class etpDatabase: def isProtectAvailable(self,protect): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isProtectAvailable: called.") - result = -1 self.cursor.execute('SELECT idprotect FROM configprotectreference WHERE protect = "'+protect+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isProtectAvailable: "+protect+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isProtectAvailable: "+protect+" available.") @@ -2820,11 +2672,9 @@ class etpDatabase: def isSourceAvailable(self,source): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSourceAvailable: called.") - result = -1 self.cursor.execute('SELECT idsource FROM sourcesreference WHERE source = "'+source+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isSourceAvailable: "+source+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSourceAvailable: "+source+" available.") @@ -2832,11 +2682,9 @@ class etpDatabase: def isDependencyAvailable(self,dependency): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isDependencyAvailable: called.") - result = -1 self.cursor.execute('SELECT iddependency FROM dependenciesreference WHERE dependency = "'+dependency+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isDependencyAvailable: "+dependency+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isDependencyAvailable: "+dependency+" available.") @@ -2844,11 +2692,9 @@ class etpDatabase: def isKeywordAvailable(self,keyword): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isKeywordAvailable: called.") - result = -1 self.cursor.execute('SELECT idkeyword FROM keywordsreference WHERE keywordname = "'+keyword+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isKeywordAvailable: "+keyword+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isKeywordAvailable: "+keyword+" available.") @@ -2856,11 +2702,9 @@ class etpDatabase: def isUseflagAvailable(self,useflag): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isUseflagAvailable: called.") - result = -1 self.cursor.execute('SELECT idflag FROM useflagsreference WHERE flagname = "'+useflag+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isUseflagAvailable: "+useflag+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isUseflagAvailable: "+useflag+" available.") @@ -2868,11 +2712,9 @@ class etpDatabase: def isEclassAvailable(self,eclass): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isEclassAvailable: called.") - result = -1 self.cursor.execute('SELECT idclass FROM eclassesreference WHERE classname = "'+eclass+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isEclassAvailable: "+eclass+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isEclassAvailable: "+eclass+" available.") @@ -2880,11 +2722,9 @@ class etpDatabase: def isNeededAvailable(self,needed): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isNeededAvailable: called.") - result = -1 self.cursor.execute('SELECT idneeded FROM neededreference WHERE library = "'+needed+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isNeededAvailable: "+needed+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isNeededAvailable: "+needed+" available.") @@ -2904,11 +2744,9 @@ class etpDatabase: def isLicenseAvailable(self,license): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isLicenseAvailable: called.") - result = -1 self.cursor.execute('SELECT idlicense FROM licenses WHERE license = "'+license+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"isLicenseAvailable: "+license+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isLicenseAvailable: "+license+" available.") @@ -2927,13 +2765,10 @@ class etpDatabase: else: dbCacheStore[etpCache['dbInfo']+self.dbname][int(idpackage)] = {} - result = -1 self.cursor.execute('SELECT idpackage FROM systempackages WHERE idpackage = "'+str(idpackage)+'"') - for row in self.cursor: - result = row[0] - break + result = self.cursor.fetchone()[0] rslt = False - if result != -1: + if result: dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSystemPackage: package is in system.") rslt = True dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"isSystemPackage: package is NOT in system.") @@ -2946,11 +2781,9 @@ class etpDatabase: def areCompileFlagsAvailable(self,chost,cflags,cxxflags): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"areCompileFlagsAvailable: called.") - result = -1 self.cursor.execute('SELECT idflags FROM flags WHERE chost = "'+chost+'" AND cflags = "'+cflags+'" AND cxxflags = "'+cxxflags+'"') - for row in self.cursor: - result = row[0] - if result == -1: + result = self.cursor.fetchall() + if not result: dbLog.log(ETP_LOGPRI_WARNING,ETP_LOGLEVEL_NORMAL,"areCompileFlagsAvailable: flags tuple "+chost+"|"+cflags+"|"+cxxflags+" not available.") return result dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"areCompileFlagsAvailable: flags tuple "+chost+"|"+cflags+"|"+cxxflags+" available.") @@ -2958,14 +2791,11 @@ class etpDatabase: def searchBelongs(self, file, like = False): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchBelongs: called for "+file) - result = [] if (like): self.cursor.execute('SELECT idpackage FROM content WHERE file LIKE "'+file+'"') else: self.cursor.execute('SELECT idpackage FROM content WHERE file = "'+file+'"') - for row in self.cursor: - result.append(row[0]) - return result + return self.cursor.fetchall() ''' search packages that need the specified library (in neededreference table) specified by keyword ''' def searchNeeded(self, keyword): @@ -2989,20 +2819,17 @@ class etpDatabase: ''' search dependency string inside dependenciesreference table and retrieve iddependency ''' def searchDependency(self, dep): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchDependency: called for "+dep) - iddep = -1 self.cursor.execute('SELECT iddependency FROM dependenciesreference WHERE dependency = "'+dep+'"') - for row in self.cursor: - iddep = row[0] + iddep = self.cursor.fetchall() + if not iddep: + iddep = -1 return iddep ''' search iddependency inside dependencies table and retrieve idpackages ''' def searchIdpackageFromIddependency(self, iddep): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchIdpackageFromIddependency: called for "+str(iddep)) - result = set() self.cursor.execute('SELECT idpackage FROM dependencies WHERE iddependency = "'+str(iddep)+'"') - for row in self.cursor: - result.add(row[0]) - return result + return self.cursor.fetchall() def searchPackages(self, keyword, sensitive = False): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchPackages: called for "+keyword) @@ -3011,33 +2838,23 @@ class etpDatabase: self.cursor.execute('SELECT atom,idpackage,branch FROM baseinfo WHERE atom LIKE "%'+keyword+'%"') else: self.cursor.execute('SELECT atom,idpackage,branch FROM baseinfo WHERE LOWER(atom) LIKE "%'+string.lower(keyword)+'%"') - for row in self.cursor: - result.append(row) - return result + return self.cursor.fetchall() def searchProvide(self, keyword): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchProvide: called for "+keyword) idpackage = [] self.cursor.execute('SELECT idpackage FROM provide WHERE atom = "'+keyword+'"') - for row in self.cursor: - idpackage = row[0] - break + idpackage = self.cursor.fetchone()[0] self.cursor.execute('SELECT atom,idpackage FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') - result = [] - for row in self.cursor: - result = row - break + result = self.cursor.fetchone()[0] return result def searchProvideInBranch(self, keyword, branch): dbLog.log(ETP_LOGPRI_INFO,ETP_LOGLEVEL_VERBOSE,"searchProvideInBranch: called for "+keyword+" and branch: "+branch) - idpackages = [] self.cursor.execute('SELECT idpackage FROM provide WHERE atom = "'+keyword+'"') - for row in self.cursor: - idpackages.append(row[0]) - results = [] + idpackages = self.cursor.fetchall() for idpackage in idpackages: self.cursor.execute('SELECT atom,idpackage,branch FROM baseinfo WHERE idpackage = "'+str(idpackage)+'"') for row in self.cursor: @@ -3992,4 +3809,4 @@ class etpDatabase: dbCacheStore[etpCache['dbMatch']+self.dbname][atom]['matchBranches'] = matchBranches dbCacheStore[etpCache['dbMatch']+self.dbname][atom]['result'] = -1,1 return -1,1 - \ No newline at end of file +