You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2016/04/14 08:32:36 UTC
incubator-eagle git commit: EAGLE-257 Support != operator in jdbc
storage
Repository: incubator-eagle
Updated Branches:
refs/heads/master 72b79c558 -> 01f48fe80
EAGLE-257 Support != operator in jdbc storage
Fixed bug/exception reported at https://issues.apache.org/jira/browse/EAGLE-257.
Author: Hao Chen <ha...@apache.org>
Closes #152 from haoch/EAGLE-257.
Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/01f48fe8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/01f48fe8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/01f48fe8
Branch: refs/heads/master
Commit: 01f48fe8034a9eaf935e1576d442f3c348b66d84
Parents: 72b79c5
Author: Hao Chen <ha...@apache.org>
Authored: Thu Apr 14 14:32:25 2016 +0800
Committer: Hao Chen <ha...@apache.org>
Committed: Thu Apr 14 14:32:25 2016 +0800
----------------------------------------------------------------------
.../jdbc/criteria/impl/ExpressionCriterionBuilder.java | 8 ++++++--
.../org/apache/eagle/storage/jdbc/TestJdbcStorage.java | 13 +++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/01f48fe8/eagle-core/eagle-query/eagle-storage-jdbc/src/main/java/org/apache/eagle/storage/jdbc/criteria/impl/ExpressionCriterionBuilder.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-storage-jdbc/src/main/java/org/apache/eagle/storage/jdbc/criteria/impl/ExpressionCriterionBuilder.java b/eagle-core/eagle-query/eagle-storage-jdbc/src/main/java/org/apache/eagle/storage/jdbc/criteria/impl/ExpressionCriterionBuilder.java
index b3eb462..b0f7ed7 100644
--- a/eagle-core/eagle-query/eagle-storage-jdbc/src/main/java/org/apache/eagle/storage/jdbc/criteria/impl/ExpressionCriterionBuilder.java
+++ b/eagle-core/eagle-query/eagle-storage-jdbc/src/main/java/org/apache/eagle/storage/jdbc/criteria/impl/ExpressionCriterionBuilder.java
@@ -109,9 +109,12 @@ public class ExpressionCriterionBuilder implements CriterionBuilder {
return EntityQualifierUtils.parseList(value);
} else if (tokenType.equals(TokenType.NUMBER)) {
// TODO: currently only treat all number value as double
- if(columnType.equals(Long.class)) {
+ // NOTE: Must use Number Object instead of primitive type
+ if(columnType.equals(Long.class) || columnType.equals(long.class)) {
return Long.parseLong(value);
- } else {
+ } else if(columnType.equals(int.class) || columnType.equals(Integer.class)){
+ return Integer.parseInt(value);
+ }else {
return Double.parseDouble(value);
}
} else if (op.equals(ComparisonOperator.LIKE) && value.equals(".*")){
@@ -145,6 +148,7 @@ public class ExpressionCriterionBuilder implements CriterionBuilder {
static{
_opSqlEnum.put(ComparisonOperator.CONTAINS, SqlEnum.LIKE);
_opSqlEnum.put(ComparisonOperator.EQUAL, SqlEnum.EQUAL);
+ _opSqlEnum.put(ComparisonOperator.NOT_EQUAL, SqlEnum.NOT_EQUAL);
_opSqlEnum.put(ComparisonOperator.GREATER, SqlEnum.GREATER_THAN);
_opSqlEnum.put(ComparisonOperator.GREATER_OR_EQUAL, SqlEnum.GREATER_EQUAL);
_opSqlEnum.put(ComparisonOperator.IN, SqlEnum.IN);
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/01f48fe8/eagle-core/eagle-query/eagle-storage-jdbc/src/test/java/org/apache/eagle/storage/jdbc/TestJdbcStorage.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-storage-jdbc/src/test/java/org/apache/eagle/storage/jdbc/TestJdbcStorage.java b/eagle-core/eagle-query/eagle-storage-jdbc/src/test/java/org/apache/eagle/storage/jdbc/TestJdbcStorage.java
index cb0f0a7..005a61c 100644
--- a/eagle-core/eagle-query/eagle-storage-jdbc/src/test/java/org/apache/eagle/storage/jdbc/TestJdbcStorage.java
+++ b/eagle-core/eagle-query/eagle-storage-jdbc/src/test/java/org/apache/eagle/storage/jdbc/TestJdbcStorage.java
@@ -55,6 +55,19 @@ public class TestJdbcStorage extends JdbcStorageTestBase {
}
@Test
+ public void testReadByNotEqualCondition() throws QueryCompileException, IOException {
+ RawQuery rawQuery = new RawQuery();
+ rawQuery.setQuery("TestTimeSeriesAPIEntity[@cluster!=\"c4ut_not_found\" AND @field1 != 0]{*}");
+ System.out.println(DateTimeUtil.millisecondsToHumanDateWithSeconds(baseTimestamp));
+ rawQuery.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(baseTimestamp));
+ rawQuery.setEndTime(DateTimeUtil.millisecondsToHumanDateWithMilliseconds(baseTimestamp+2000));
+ rawQuery.setPageSize(1000);
+ CompiledQuery query = new CompiledQuery(rawQuery);
+ QueryResult<TestTimeSeriesAPIEntity> result = storage.query(query, entityDefinition);
+ Assert.assertNotNull(result);
+ }
+
+ @Test
public void testReadByComplexQuery() throws QueryCompileException, IOException {
RawQuery rawQuery = new RawQuery();
rawQuery.setQuery("TestTimeSeriesAPIEntity[@cluster=\"c4ut\" AND @field4 > 1000 OR @datacenter =\"d4ut\" ]{@field1,@field2}");