diff options
author | rowanbeentje <rowan@beent.je> | 2012-03-14 01:16:18 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2012-03-14 01:16:18 +0000 |
commit | 79eff5bf42154da8d7730e0e0159160f68ec4e16 (patch) | |
tree | 38db570f7c36fbe2995774fefa627f1b467a9371 /Source/SPNarrowDownCompletion.m | |
parent | d5e20720cf7f991a691d9a03e7f895211b7c98ad (diff) | |
download | sequelpro-79eff5bf42154da8d7730e0e0159160f68ec4e16.tar.gz sequelpro-79eff5bf42154da8d7730e0e0159160f68ec4e16.tar.bz2 sequelpro-79eff5bf42154da8d7730e0e0159160f68ec4e16.zip |
Final feature work on the SPMySQL branch before merging:
- Add a ping keepalive managing object to prevent retain cycles from the NSTimer
- Add -[SPMySQLConnection copy] support
- Refactor Hans-Jörg Bibiko's database structure retrieval, moving it out of the MySQL framework and building it around a copy of the connection. This reduces the amount of connections-over-time used by Sequel Pro to two constant connections (addressing Issue #1097) and improves robustness.
- Use the database structure retrieval connection for faster query cancellation without an extra connection required, if possible
Diffstat (limited to 'Source/SPNarrowDownCompletion.m')
-rw-r--r-- | Source/SPNarrowDownCompletion.m | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Source/SPNarrowDownCompletion.m b/Source/SPNarrowDownCompletion.m index 5e7b5320..79deb013 100644 --- a/Source/SPNarrowDownCompletion.m +++ b/Source/SPNarrowDownCompletion.m @@ -35,6 +35,7 @@ #import "RegexKitLite.h" #import "SPTextView.h" #import "SPQueryDocumentsController.h" +#import "SPDatabaseStructure.h" #pragma mark - #pragma mark attribute definition @@ -165,6 +166,7 @@ if(suggestions) [suggestions release]; if (filtered) [filtered release]; + if (databaseStructureRetrieval) [databaseStructureRetrieval release]; [super dealloc]; } @@ -193,7 +195,7 @@ timeCounter++; if(timeCounter > 20) { timeCounter = 0; - if(![[theView valueForKeyPath:@"mySQLConnection"] isQueryingDatabaseStructure]) { + if(![databaseStructureRetrieval isQueryingDatabaseStructure]) { isQueryingDatabaseStructure = NO; if(stateTimer) { [stateTimer invalidate]; @@ -229,7 +231,7 @@ dictMode:(BOOL)mode dbMode:(BOOL)theDbMode tabTriggerMode:(BOOL)tabTriggerMode fuzzySearch:(BOOL)fuzzySearch backtickMode:(NSInteger)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName selectedDb:(NSString*)selectedDb caretMovedLeft:(BOOL)caretMovedLeft autoComplete:(BOOL)autoComplete oneColumn:(BOOL)oneColumn - alias:(NSString*)anAlias isQueryingDBStructure:(BOOL)isQueryingDBStructure + alias:(NSString*)anAlias withDBStructureRetriever:(SPDatabaseStructure *)theDatabaseStructure { if((self = [self init])) { @@ -245,10 +247,6 @@ theAliasName = anAlias; oneColumnMode = oneColumn; - isQueryingDatabaseStructure = isQueryingDBStructure; - - if(isQueryingDatabaseStructure) - stateTimer = [[NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(updateSyncArrowStatus) userInfo:nil repeats:YES] retain]; fuzzyMode = fuzzySearch; if(fuzzyMode) @@ -306,6 +304,11 @@ if(someAdditionalWordCharacters) [textualInputCharacters addCharactersInString:someAdditionalWordCharacters]; + databaseStructureRetrieval = [theDatabaseStructure retain]; + isQueryingDatabaseStructure = [databaseStructureRetrieval isQueryingDatabaseStructure]; + + if(isQueryingDatabaseStructure) + stateTimer = [[NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(updateSyncArrowStatus) userInfo:nil repeats:YES] retain]; } return self; } |