[yum-commits] Branch 'yum-3_2_X' - 3 commits - yum/sqlitesack.py

James Antill james at osuosl.org
Mon Mar 9 14:10:52 UTC 2009


 yum/sqlitesack.py |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

New commits:
commit a3d0365fdaa5e62d247db99cbc42bb78b631bdc2
Author: James Antill <james at and.org>
Date:   Mon Mar 9 10:05:26 2009 -0400

    Make querytype nicer for Seth :)

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 47e12fa..aa9fec4 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1138,7 +1138,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if ignore_case:
             patterns = self._sql_esc_glob(patterns)
         else:
-            patterns = [(pat, misc.re_glob(pat) and 1) for pat in patterns]
+            tmp = []
+            for pat in patterns:
+                if misc.re_glob(pat):
+                    tmp.append((pat, 'glob'))
+                else:
+                    tmp.append((pat, '='))
+            patterns = tmp
 
         for (repo,cache) in self.primarydb.items():
             if (repoid == None or repoid == repo.id):
@@ -1154,8 +1160,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                         if ignore_case:
                             pat_sqls.append("%s LIKE ?%s" % (field, rest))
                         else:
-                            querytype = rest and 'GLOB' or '='
-                            pat_sqls.append("%s %s ?" % (field, querytype))
+                            pat_sqls.append("%s %s ?" % (field, rest))
                         pat_data.append(pattern)
                 if pat_sqls:
                     qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
commit dae41b5e2fb12201610dc0eab8a57b74d3fda1a5
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Fri Mar 6 00:27:09 2009 +0200

    Use = instead of GLOB when possible in _buildPkgObjList().

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 2b84141..47e12fa 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1138,7 +1138,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if ignore_case:
             patterns = self._sql_esc_glob(patterns)
         else:
-            patterns = [(pat, '') for pat in patterns]
+            patterns = [(pat, misc.re_glob(pat) and 1) for pat in patterns]
 
         for (repo,cache) in self.primarydb.items():
             if (repoid == None or repoid == repo.id):
@@ -1149,12 +1149,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
                 pat_sqls = []
                 pat_data = []
-                for (pattern, esc) in patterns:
+                for (pattern, rest) in patterns:
                     for field in fields:
                         if ignore_case:
-                            pat_sqls.append("%s LIKE ?%s" % (field, esc))
+                            pat_sqls.append("%s LIKE ?%s" % (field, rest))
                         else:
-                            pat_sqls.append("%s GLOB ?" % field)
+                            querytype = rest and 'GLOB' or '='
+                            pat_sqls.append("%s %s ?" % (field, querytype))
                         pat_data.append(pattern)
                 if pat_sqls:
                     qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
commit 230f2d5009d94b44496119b69b7911d24a599237
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Fri Mar 6 00:24:49 2009 +0200

    SQL-escape patterns only once in _buildPkgObjList().

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7599808..2b84141 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -1135,6 +1135,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             pat_max = constants.PATTERNS_INDEXED_MAX
         if len(patterns) > pat_max:
             patterns = []
+        if ignore_case:
+            patterns = self._sql_esc_glob(patterns)
+        else:
+            patterns = [(pat, '') for pat in patterns]
 
         for (repo,cache) in self.primarydb.items():
             if (repoid == None or repoid == repo.id):
@@ -1145,10 +1149,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
                 pat_sqls = []
                 pat_data = []
-                if ignore_case:
-                    patterns = self._sql_esc_glob(patterns)
-                else:
-                    patterns = [(pat, '') for pat in patterns]
                 for (pattern, esc) in patterns:
                     for field in fields:
                         if ignore_case:


More information about the Yum-commits mailing list