[yum-git] 2 commits - yum/depsolve.py yum/sqlitesack.py
James Antill
james at linux.duke.edu
Wed Mar 19 20:16:43 UTC 2008
yum/depsolve.py | 7 -------
yum/sqlitesack.py | 16 ++++++++++++++--
2 files changed, 14 insertions(+), 9 deletions(-)
New commits:
commit ac595e8f08df33816295e756b95aa08a3761c45d
Author: James Antill <james at and.org>
Date: Wed Mar 19 16:15:45 2008 -0400
Drop stuff when we see no arch. Drop key2pkg in dropCachedData/close
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 478f887..a58c8f0 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -291,6 +291,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
del self._memoize_provides
if hasattr(self, 'pkgobjlist'):
del self.pkgobjlist
+ self._key2pkg = {}
self._search_cache = {
'provides' : { },
'requires' : { },
@@ -335,6 +336,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
def _delAllPackages(self, repo):
""" Exclude all packages from the repo. """
self._all_excludes[repo] = True
+ if repo in self.excludes:
+ del self.excludes[repo]
+ if repo in self._key2pkg:
+ del self._key2pkg[repo]
def _excluded(self, repo, pkgId):
if repo in self._all_excludes:
commit 7c302d2d7aa21b903e06c7e19356b192a4184a27
Author: James Antill <james at and.org>
Date: Wed Mar 19 15:37:53 2008 -0400
Remove DepCheck() as it's unused.
Don't double cache data in _search_cache().
Skip provides from unused repos.
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 15b9277..af42d52 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -635,9 +635,6 @@ class Depsolve(object):
if not len(self.tsInfo):
return (0, [_('Success - empty transaction')])
- # holder object for things from the check
- if not hasattr(self, '_dcobj'):
- self._dcobj = DepCheck()
self.po_with_problems = set()
self._working_po = None
self.tsInfo.resetResolved(hard=False)
@@ -786,8 +783,6 @@ class Depsolve(object):
self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
provs = self.tsInfo.getProvides(*req)
if not provs:
- reqtuple = (req[0], version_tuple_to_string(req[2]), flags[req[1]])
- self._dcobj.addRequires(txmbr.po, [reqtuple])
ret.append( (txmbr.po, (req[0], flags[req[1]], version_tuple_to_string(req[2]))) )
continue
@@ -823,8 +818,6 @@ class Depsolve(object):
for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
for rn, rf, rv in hits:
if not self.tsInfo.getProvides(rn, rf, rv):
- reqtuple = (rn, version_tuple_to_string(rv), flags[rf])
- self._dcobj.addRequires(pkg, [reqtuple])
ret.append( (pkg, (rn, flags[rf], version_tuple_to_string(rv))) )
return ret
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 80f916a..478f887 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -647,8 +647,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# Requires is the biggest hit, pre-loading provides actually hurts
if prcotype != 'requires':
primarydb_items = self.primarydb.items()
+ preload = False
else:
primarydb_items = []
+ preload = True
memoize = self._search_get_memoize(prcotype)
for (rep,cache) in self.primarydb.items():
if rep in self._all_excludes:
@@ -665,6 +667,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
result[self._packageByKey(rep, pkgKey)] = hits
for (rep,cache) in primarydb_items:
+ if rep in self._all_excludes:
+ continue
+
cur = cache.cursor()
executeSQL(cur, "select * from %s where name=?" % prcotype,
(name,))
@@ -682,7 +687,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
result[self._packageByKey(rep, pkgKey)] = hits
if prcotype != 'provides' or name[0] != '/':
- self._search_cache[prcotype][req] = result
+ if not preload:
+ self._search_cache[prcotype][req] = result
return result
if not misc.re_primary_filename(name):
@@ -690,7 +696,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# search the files.xml file info
for pkg in self.searchFiles(name, strict=True):
result[pkg] = [(name, None, None)]
- self._search_cache[prcotype][req] = result
+ if not preload:
+ self._search_cache[prcotype][req] = result
return result
# If it is a filename, search the primary.xml file info
More information about the Yum-cvs-commits
mailing list