|
From: SVN by r. <sv...@ca...> - 2010-01-27 08:04:38
|
Author: roy
Date: 2010-01-27 09:04:27 +0100 (Wed, 27 Jan 2010)
New Revision: 464
Modified:
src/main/java/nl/improved/sqlclient/util/SQLParser.java
src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
Log:
fix duplication in group by
Modified: src/main/java/nl/improved/sqlclient/util/SQLParser.java
===================================================================
--- src/main/java/nl/improved/sqlclient/util/SQLParser.java 2010-01-27 08:00:57 UTC (rev 463)
+++ src/main/java/nl/improved/sqlclient/util/SQLParser.java 2010-01-27 08:04:27 UTC (rev 464)
@@ -232,7 +232,7 @@
}
}
}
- if (allColumns.length() > 0) {
+ if (allColumns.length() > 0 && !possibleMatches.contains(allColumns.toString())) {
possibleMatches.add(allColumns.toString());
}
}
Modified: src/test/java/nl/improved/sqlclient/util/SQLParserTest.java
===================================================================
--- src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2010-01-27 08:00:57 UTC (rev 463)
+++ src/test/java/nl/improved/sqlclient/util/SQLParserTest.java 2010-01-27 08:04:27 UTC (rev 464)
@@ -744,6 +744,26 @@
assertTrue(matches.contains("to_char(mydate, 'yyyymm')"));
assertTrue(matches.contains("to_char(mydate, 'yyyymm'), c2"));
assertEquals("", info.getStart());
+
+ sqlCommand = Arrays.asList(new String[]{"SELECT to_char(mydate, 'yyyymm') , count(*) FROM A,B", "GROUP BY "});
+ cursorPos = new Point(sqlCommand.get(1).length(),1);
+ info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(TabCompletionInfo.MatchType.OTHER, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertEquals(matches.toString(), 1, matches.size());
+ assertTrue(matches.contains("to_char(mydate, 'yyyymm')"));
+ assertEquals("", info.getStart());
+
+ sqlCommand = Arrays.asList(new String[]{"SELECT count(*), to_char(mydate, 'yyyymm') FROM A,B", "GROUP BY "});
+ cursorPos = new Point(sqlCommand.get(1).length(),1);
+ info = SQLParser.getTabCompletionInfo(sqlCommand, cursorPos);
+ assertNotNull(info);
+ assertEquals(TabCompletionInfo.MatchType.OTHER, info.getMatchType());
+ matches = info.getPossibleMatches();
+ assertEquals(matches.toString(), 1, matches.size());
+ assertTrue(matches.contains("to_char(mydate, 'yyyymm')"));
+ assertEquals("", info.getStart());
}
public void testOrderBy() {
|