diff options
author | rowanbeentje <rowan@beent.je> | 2010-03-16 02:04:50 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2010-03-16 02:04:50 +0000 |
commit | 332f6201ce607a6622fadfd3e6426e4571dc035f (patch) | |
tree | 4e86f4ac81a9b13487482a8ec95dd2dc273f71d3 /Source/TableContent.m | |
parent | 1bfe991970009b1e7011823a00e676271fc04055 (diff) | |
download | sequelpro-332f6201ce607a6622fadfd3e6426e4571dc035f.tar.gz sequelpro-332f6201ce607a6622fadfd3e6426e4571dc035f.tar.bz2 sequelpro-332f6201ce607a6622fadfd3e6426e4571dc035f.zip |
- Make a number of changes to attempt to improve disconnection/quit crashes: prevent multiple disconnects, add more checks, cancel current queries, and add a tiny delay to allow mysql cleanup.
- Alter MCPStreamingResult to no longer return a retained instance, setting up correct result disposal on autorelease but changing callers to retain as soon as they receive.
- Review and change a number of local variables shadowing/shielding other local or global variables.
Diffstat (limited to 'Source/TableContent.m')
-rw-r--r-- | Source/TableContent.m | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/TableContent.m b/Source/TableContent.m index 4c9336d8..b0e5e8fe 100644 --- a/Source/TableContent.m +++ b/Source/TableContent.m @@ -609,7 +609,7 @@ // Perform and process the query [tableContentView performSelectorOnMainThread:@selector(noteNumberOfRowsChanged) withObject:nil waitUntilDone:YES]; [self setUsedQuery:queryString]; - streamingResult = [mySQLConnection streamingQueryString:queryString]; + streamingResult = [[mySQLConnection streamingQueryString:queryString] retain]; // Ensure the number of columns are unchanged; if the column count has changed, abort the load // and queue a full table reload. @@ -624,15 +624,15 @@ // Process the result into the data store if (!fullTableReloadRequired && streamingResult) { [self processResultIntoDataStorage:streamingResult approximateRowCount:rowsToLoad]; - [streamingResult release]; } + if (streamingResult) [streamingResult release]; // If the result is empty, and a late page is selected, reset the page if (!fullTableReloadRequired && [prefs boolForKey:SPLimitResults] && queryStringBeforeLimit && !tableRowsCount && ![mySQLConnection queryCancelled]) { contentPage = 1; queryString = [NSMutableString stringWithFormat:@"%@ LIMIT 0,%ld", queryStringBeforeLimit, (long)[prefs integerForKey:SPLimitResultsValue]]; [self setUsedQuery:queryString]; - streamingResult = [mySQLConnection streamingQueryString:queryString]; + streamingResult = [[mySQLConnection streamingQueryString:queryString] retain]; if (streamingResult) { [self processResultIntoDataStorage:streamingResult approximateRowCount:[prefs integerForKey:SPLimitResultsValue]]; [streamingResult release]; |