|
From: SVN by r. <sv...@ca...> - 2009-03-15 20:44:51
|
Author: roy
Date: 2009-03-15 21:44:38 +0100 (Sun, 15 Mar 2009)
New Revision: 395
Modified:
src/main/java/nl/improved/sqlclient/util/SQLParser.java
src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
Log:
set/where unit test added + fix
Modified: src/main/java/nl/improved/sqlclient/util/SQLParser.java
===================================================================
--- src/main/java/nl/improved/sqlclient/util/SQLParser.java 2009-03-14 15:23:00 UTC (rev 394)
+++ src/main/java/nl/improved/sqlclient/util/SQLParser.java 2009-03-15 20:44:38 UTC (rev 395)
@@ -160,7 +160,7 @@
}
} else if (sql.matches("[\\s]*SET.*")) {
sqlType = SQLPart.SQLType.SET;
- if (sql.matches("[\\s]*WHERE.*")) {
+ if (sql.matches(".*[\\s]*WHERE.*")) {
end = sql.indexOf("WHERE");
}
} else {
@@ -196,8 +196,6 @@
if (end.lastIndexOf(" ") >0) {
end = end.substring(end.lastIndexOf(' ')+1);
}
- System.err.println("SUB: "+"'"+ subPart+"'");
- System.err.println("END: "+ "'"+end+"'");
return new TabCompletionInfo(TabCompletionInfo.MatchType.SQL_KEYWORD, Arrays.asList(new String[]{"WHERE", "GROUP BY", "ORDER BY", ","}), end.trim());
}
return new TabCompletionInfo(TabCompletionInfo.MatchType.TABLE_NAMES, Arrays.asList(new String[]{}), end.trim());
@@ -423,7 +421,7 @@
return new TabCompletionInfo(TabCompletionInfo.MatchType.COLUMN_NAMES
, tableNames, end);
}
- if (upperCommandString.matches(".*[\\s]+(AND|OR)[\\s]+")) {
+ if (upperCommandString.matches("[\\s]*") || upperCommandString.matches(".*[\\s]+(AND|OR)[\\s]+")) {
return new TabCompletionInfo(TabCompletionInfo.MatchType.COLUMN_NAMES
, getTableNames(parts));
}
Modified: src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
===================================================================
--- src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2009-03-14 15:23:00 UTC (rev 394)
+++ src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2009-03-15 20:44:38 UTC (rev 395)
@@ -796,6 +796,16 @@
matches = info.getPossibleMatches();
assertTrue("WHERE not in " + matches , matches.contains("WHERE"));
assertEquals("WH", info.getStart());
+
+ sqlCommand = Arrays.asList(new String[]{"update l set s='' where "});
+ cursorPos = new Point(sqlCommand.get(0).length(),0);
+ info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(info.getPossibleMatches().toString(), TabCompletionInfo.MatchType.COLUMN_NAMES, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertEquals(1, matches.size());
+ assertTrue(matches.contains("l"));
+ assertEquals("", info.getStart());
}
public void testGetTableName() {
|