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.

Files:
1 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