Permalink
Browse files

Merge pull request #2710 from abhibeckert/master

New URL for feedback reporter, and some other small things
  • Loading branch information...
abhibeckert committed Mar 3, 2017
2 parents b87faac + cbf8095 commit 8b69a9e3b1ab660fc22a5551ac21dcde33daee5e
Showing with 70 additions and 8 deletions.
  1. +4 −5 Interfaces/English.lproj/MainMenu.xib
  2. +1 −3 Resources/Plists/Info.plist
  3. +65 −0 Source/SPDatabaseDocument.m
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6751" systemVersion="13F1507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
<development version="5100" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6751"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
@@ -12,7 +11,7 @@
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application">
<customObject id="-3" userLabel="Application" customClass="NSObject">
<connections>
<outlet property="delegate" destination="213" id="1001"/>
</connections>
@@ -187,7 +187,7 @@
<key>FRFeedbackReporter.maxConsoleLogSize</key>
<integer>10000</integer>
<key>FRFeedbackReporter.targetURL</key>
<string>http://log.sequelpro.com/submit</string>
<string>https://sequelpro.com/api?action=feedback-submit</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
@@ -199,7 +199,6 @@
<key>x86_64</key>
<string>10.6.0</string>
</dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
@@ -223,7 +222,6 @@
</dict>
</dict>
</dict>
<key>NSAppleScriptEnabled</key>
<true/>
<key>NSHumanReadableCopyright</key>
@@ -856,6 +856,71 @@ - (IBAction)alterDatabase:(id)sender
contextInfo:SPAlterDatabaseAction];
}
- (IBAction)compareDatabase:(id)sender
{
/*
This method is a basic experiment to see how long it takes to read an string compare an entire database. It works,
well, good performance and very little memory usage.
Next we need to ask the user to select another connection (from the favourites list) and compare chunks of ~1000 rows
at a time, ordered by primary key, between the two databases, using three threads (one for each database and one for
comparisons).
We will the write to disk every difference that has been found and open the result in FileMerge.
In future, add the ability to write all difference to the current database.
*/
NSLog(@"=================");
SPMySQLResult *showTablesQuery = [mySQLConnection queryString:@"show tables"];
NSArray *tableRow;
while ((tableRow = [showTablesQuery getRowAsArray]) != nil) {
@autoreleasepool {
NSString *table = tableRow[0];
NSLog(@"-----------------");
NSLog(@"Scanning %@", table);
NSDictionary *tableStatus = [[mySQLConnection queryString:[NSString stringWithFormat:@"SHOW TABLE STATUS LIKE %@", [table tickQuotedString]]] getRowAsDictionary];
NSInteger rowCountEstimate = [tableStatus[@"Rows"] integerValue];
NSLog(@"Estimated row count: %li", rowCountEstimate);
SPMySQLResult *tableContentsQuery = [mySQLConnection streamingQueryString:[NSString stringWithFormat:@"select * from %@", [table backtickQuotedString]] useLowMemoryBlockingStreaming:NO];
//NSDate *lastProgressUpdate = [NSDate date];
time_t lastProgressUpdate = time(NULL);
NSInteger rowCount = 0;
NSArray *row;
while (true) {
@autoreleasepool {
row = [tableContentsQuery getRowAsArray];
if (!row) {
break;
}
[row isEqualToArray:row]; // TODO: compare to the other database, instead of the same one (just doing that to test performance)
rowCount++;
if ((time(NULL) - lastProgressUpdate) > 0) {
NSLog(@"Progress: %.1f%%", (((float)rowCount) / ((float)rowCountEstimate)) * 100);
lastProgressUpdate = time(NULL);
}
}
}
NSLog(@"Done. Actual row count: %li", rowCount);
}
}
NSLog(@"=================");
}
#ifndef SP_CODA /* operations on whole databases */
/**
* opens the copy database sheet and copies the databsae

0 comments on commit 8b69a9e

Please sign in to comment.