aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/SPTablesList.m9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/SPTablesList.m b/Source/SPTablesList.m
index d2d9f494..6cbf5f82 100644
--- a/Source/SPTablesList.m
+++ b/Source/SPTablesList.m
@@ -1809,11 +1809,16 @@ static NSString *SPDuplicateTable = @"SPDuplicateTable";
NSUInteger i;
NSInteger lastTableType = NSNotFound, tableType;
NSRange substringRange;
+ NSString *filterString = [listFilterField stringValue];
for (i = 0; i < [tables count]; i++) {
tableType = [[tableTypes objectAtIndex:i] integerValue];
if (tableType == SPTableTypeNone) continue;
- substringRange = [[tables objectAtIndex:i] rangeOfString:[listFilterField stringValue] options:NSCaseInsensitiveSearch];
- if (substringRange.location == NSNotFound) continue;
+
+ // First check the table name against the string as a regex, falling back to direct string match
+ if (![[tables objectAtIndex:i] isMatchedByRegex:filterString]) {
+ substringRange = [[tables objectAtIndex:i] rangeOfString:filterString options:NSCaseInsensitiveSearch];
+ if (substringRange.location == NSNotFound) continue;
+ }
// Add a title if necessary
if ((tableType == SPTableTypeTable || tableType == SPTableTypeView) && lastTableType == NSNotFound)