aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/TableDocument.m3
-rw-r--r--Source/TableSource.h1
-rw-r--r--Source/TableSource.m21
3 files changed, 21 insertions, 4 deletions
diff --git a/Source/TableDocument.m b/Source/TableDocument.m
index b8261a8e..1565a477 100644
--- a/Source/TableDocument.m
+++ b/Source/TableDocument.m
@@ -3613,7 +3613,7 @@
- (NSRect)window:(NSWindow *)window willPositionSheet:(NSWindow *)sheet usingRect:(NSRect)rect {
- // Locate the sheet "Reset Auto Increment" just beneath the chosen index row
+ // Locate the sheet "Reset Auto Increment" just centered beneath the chosen index row
if([[sheet title] isEqualToString:@"Reset Auto Increment"]) {
id it = [tableSourceInstance valueForKeyPath:@"indexView"];
@@ -3622,6 +3622,7 @@
NSRect rowrect = [it rectOfRow:[it selectedRow]];
rowrect.size.width = mwrect.size.width - ltrect.size.width;
rowrect.origin.y -= [it rowHeight]/2.0f+2;
+ rowrect.origin.x -= 8;
return [it convertRect:rowrect toView:nil];
} else
diff --git a/Source/TableSource.h b/Source/TableSource.h
index e09dd16b..6904b875 100644
--- a/Source/TableSource.h
+++ b/Source/TableSource.h
@@ -31,6 +31,7 @@
IBOutlet id tablesListInstance;
IBOutlet id tableDataInstance;
IBOutlet id tableDocumentInstance;
+ IBOutlet id tableInfoInstance;
IBOutlet id tableWindow;
IBOutlet id indexSheet;
diff --git a/Source/TableSource.m b/Source/TableSource.m
index f704dcec..6dd3f7fb 100644
--- a/Source/TableSource.m
+++ b/Source/TableSource.m
@@ -25,6 +25,7 @@
#import "TableSource.h"
#import "TableDocument.h"
+#import "SPTableInfo.h"
#import "TablesList.h"
#import "SPTableData.h"
#import "SPSQLParser.h"
@@ -941,8 +942,9 @@ fetches the result as an array with a dictionary for each row in it
// Reset AUTO_INCREMENT
if ([menuItem action] == @selector(resetAutoIncrement:)) {
- return NO;
- return ([indexView numberOfSelectedRows] == 1 );
+ return ([indexView numberOfSelectedRows] == 1
+ && [[indexes objectAtIndex:[indexView selectedRow]] objectForKey:@"Key_name"]
+ && [[[indexes objectAtIndex:[indexView selectedRow]] objectForKey:@"Key_name"] isEqualToString:@"PRIMARY"]);
}
return YES;
@@ -1010,7 +1012,20 @@ fetches the result as an array with a dictionary for each row in it
}
else if ([contextInfo isEqualToString:@"resetAutoIncrement"]) {
if (returnCode == NSAlertDefaultReturn) {
- // ALTER TABLE tbl_name AUTO_INCREMENT = N
+
+ [mySQLConnection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ AUTO_INCREMENT = %@", [selectedTable backtickQuotedString], [[resetAutoIncrementValue stringValue] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]];
+
+ if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) {
+ SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"),
+ NSLocalizedString(@"OK", @"OK button"),
+ nil, nil, [NSApp mainWindow], nil, nil, nil, nil,
+ [NSString stringWithFormat:NSLocalizedString(@"An error occurred while trying to reset AUTO_INCREMENT of table '%@'.\n\nMySQL said: %@", @"error resetting auto_increment informative message"), selectedTable, [mySQLConnection getLastErrorMessage]]);
+ } else {
+ [tableDataInstance resetAllData];
+ [tablesListInstance setStatusRequiresReload:YES];
+ [self loadTable:selectedTable];
+ [tableInfoInstance tableChanged:nil];
+ }
}
}
else