Changeset 2754

Show
Ignore:
Timestamp:
02/23/06 20:44:25 (18 years ago)
Author:
jerome
Message:

Huge speed improvement in data retrieval when wildcards are not used.

Location:
pykota/trunk/pykota/storages
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/ldapstorage.py

    r2753 r2754  
    694694        if result : 
    695695            patterns = printerpattern.split(",") 
     696            try : 
     697                patdict = {}.fromkeys(patterns) 
     698            except AttributeError :     
     699                # Python v2.2 or earlier 
     700                patdict = {} 
     701                for p in patterns : 
     702                    patdict[p] = None 
    696703            for (printerid, fields) in result : 
    697704                printername = self.databaseToUserCharset(fields.get("pykotaPrinterName", [""])[0] or fields.get(self.info["printerrdn"], [""])[0]) 
    698                 if self.tool.matchString(printername, patterns) : 
     705                if patdict.has_key(printername) or self.tool.matchString(printername, patterns) : 
    699706                    printer = StoragePrinter(self, printername) 
    700707                    printer.ident = printerid 
     
    723730        if result : 
    724731            patterns = userpattern.split(",") 
     732            try : 
     733                patdict = {}.fromkeys(patterns) 
     734            except AttributeError :     
     735                # Python v2.2 or earlier 
     736                patdict = {} 
     737                for p in patterns : 
     738                    patdict[p] = None 
    725739            for (userid, fields) in result : 
    726740                username = self.databaseToUserCharset(fields.get("pykotaUserName", [""])[0] or fields.get(self.info["userrdn"], [""])[0]) 
    727                 if self.tool.matchString(username, patterns) : 
     741                if patdict.has_key(username) or self.tool.matchString(username, patterns) : 
    728742                    user = StorageUser(self, username) 
    729743                    user.ident = userid 
     
    781795        if result : 
    782796            patterns = grouppattern.split(",") 
     797            try : 
     798                patdict = {}.fromkeys(patterns) 
     799            except AttributeError :     
     800                # Python v2.2 or earlier 
     801                patdict = {} 
     802                for p in patterns : 
     803                    patdict[p] = None 
    783804            for (groupid, fields) in result : 
    784805                groupname = self.databaseToUserCharset(fields.get("pykotaGroupName", [""])[0] or fields.get(self.info["grouprdn"], [""])[0]) 
    785                 if self.tool.matchString(groupname, patterns) : 
     806                if patdict.has_key(groupname) or self.tool.matchString(groupname, patterns) : 
    786807                    group = StorageGroup(self, groupname) 
    787808                    group.ident = groupid 
  • pykota/trunk/pykota/storages/sql.py

    r2749 r2754  
    376376        if result : 
    377377            patterns = printerpattern.split(",") 
     378            try : 
     379                patdict = {}.fromkeys(patterns) 
     380            except AttributeError :     
     381                # Python v2.2 or earlier 
     382                patdict = {} 
     383                for p in patterns : 
     384                    patdict[p] = None 
    378385            for record in result : 
    379386                pname = self.databaseToUserCharset(record["printername"]) 
    380                 if self.tool.matchString(pname, patterns) : 
     387                if patdict.has_key(pname) or self.tool.matchString(pname, patterns) : 
    381388                    printer = StoragePrinter(self, pname) 
    382389                    printer.ident = record.get("id") 
     
    404411        if result : 
    405412            patterns = userpattern.split(",") 
     413            try : 
     414                patdict = {}.fromkeys(patterns) 
     415            except AttributeError :     
     416                # Python v2.2 or earlier 
     417                patdict = {} 
     418                for p in patterns : 
     419                    patdict[p] = None 
    406420            for record in result : 
    407421                uname = self.databaseToUserCharset(record["username"]) 
    408                 if self.tool.matchString(uname, patterns) : 
     422                if patdict.has_key(uname) or self.tool.matchString(uname, patterns) : 
    409423                    user = StorageUser(self, uname) 
    410424                    user.ident = record.get("id") 
     
    429443        if result : 
    430444            patterns = grouppattern.split(",") 
     445            try : 
     446                patdict = {}.fromkeys(patterns) 
     447            except AttributeError :     
     448                # Python v2.2 or earlier 
     449                patdict = {} 
     450                for p in patterns : 
     451                    patdict[p] = None 
    431452            for record in result : 
    432453                gname = self.databaseToUserCharset(record["groupname"]) 
    433                 if self.tool.matchString(gname, patterns) : 
     454                if patdict.has_key(gname) or self.tool.matchString(gname, patterns) : 
    434455                    group = StorageGroup(self, gname) 
    435456                    group.ident = record.get("id")