spuerx 9 лет назад
Родитель
Сommit
6ba7ee6e6a

+ 2 - 2
src/main/java/org/elasticsearch/dsl/ParseActionListener.java

@@ -2,9 +2,9 @@ package org.elasticsearch.dsl;
 
 public interface ParseActionListener {
 
-    void onSqlSelectFieldParse(ElasticSqlIdentifier sqlIdentifier);
+    void onSelectFieldParse(ElasticSqlIdentifier field);
 
-    void onAtomConditionParse(ElasticSqlIdentifier sqlIdentifier, Object[] paramValues, SQLConditionOperator operator);
+    void onAtomConditionParse(ElasticSqlIdentifier paramName, Object[] paramValues, SQLConditionOperator operator);
 
     void onFailure(Throwable t);
 }

+ 2 - 2
src/main/java/org/elasticsearch/dsl/ParseActionListenerAdapter.java

@@ -3,12 +3,12 @@ package org.elasticsearch.dsl;
 public class ParseActionListenerAdapter implements ParseActionListener {
 
     @Override
-    public void onSqlSelectFieldParse(ElasticSqlIdentifier sqlIdentifier) {
+    public void onSelectFieldParse(ElasticSqlIdentifier field) {
 
     }
 
     @Override
-    public void onAtomConditionParse(ElasticSqlIdentifier sqlIdentifier, Object[] paramValues, SQLConditionOperator operator) {
+    public void onAtomConditionParse(ElasticSqlIdentifier paramName, Object[] paramValues, SQLConditionOperator operator) {
 
     }
 

+ 3 - 3
src/main/java/org/elasticsearch/dsl/parser/QuerySelectFieldListParser.java

@@ -39,14 +39,14 @@ public class QuerySelectFieldListParser implements QueryParser {
                     selectFields.add(String.format("%s.%s", propertyPath, propertyName));
                 }
             });
-            onSqlSelectFieldParse(sqlIdentifier);
+            onSelectFieldParse(sqlIdentifier);
         }
         dslContext.getParseResult().setQueryFieldList(selectFields);
     }
 
-    private void onSqlSelectFieldParse(ElasticSqlIdentifier sqlIdentifier) {
+    private void onSelectFieldParse(ElasticSqlIdentifier field) {
         try {
-            parseActionListener.onSqlSelectFieldParse(sqlIdentifier);
+            parseActionListener.onSelectFieldParse(field);
         } catch (Exception ex) {
             try {
                 parseActionListener.onFailure(ex);

+ 2 - 2
src/main/java/org/elasticsearch/dsl/parser/QueryWhereConditionParser.java

@@ -234,9 +234,9 @@ public class QueryWhereConditionParser implements QueryParser {
         return null;
     }
 
-    private void onAtomConditionParse(ElasticSqlIdentifier sqlIdentifier, Object[] paramValues, SQLConditionOperator operator) {
+    private void onAtomConditionParse(ElasticSqlIdentifier paramName, Object[] paramValues, SQLConditionOperator operator) {
         try {
-            parseActionListener.onAtomConditionParse(sqlIdentifier, paramValues, operator);
+            parseActionListener.onAtomConditionParse(paramName, paramValues, operator);
         } catch (Exception ex) {
             try {
                 parseActionListener.onFailure(ex);

+ 0 - 24
src/test/java/org/elasticsearch/SqlParserLimitTest.java

@@ -25,28 +25,4 @@ public class SqlParserLimitTest {
         Assert.assertEquals(parseResult.getFrom(), 5);
         Assert.assertEquals(parseResult.getSize(), 15);
     }
-
-    @Test
-    public void testParseLimitExprWithListener() {
-        String sql = "select id,productStatus from index.trx_order trx where trx.status = 'SUCCESS' limit 5,15";
-        ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
-        ElasticSqlParseResult parseResult = sql2DslParser.parse(sql, new ParseActionListenerAdapter() {
-            @Override
-            public void onAtomConditionParse(ElasticSqlIdentifier sqlIdentifier, Object[] paramValues, SQLConditionOperator operator) {
-                System.out.println(sqlIdentifier.getPathName());
-                System.out.println(sqlIdentifier.getPropertyName());
-                System.out.println(sqlIdentifier.getIdentifierType());
-            }
-
-            @Override
-            public void onSqlSelectFieldParse(ElasticSqlIdentifier sqlIdentifier) {
-                System.out.println(sqlIdentifier.getPropertyName());
-            }
-        });
-
-        Assert.assertEquals(parseResult.getFrom(), 5);
-        Assert.assertEquals(parseResult.getSize(), 15);
-    }
-
-
 }

+ 41 - 0
src/test/java/org/elasticsearch/SqlParserListenerTest.java

@@ -0,0 +1,41 @@
+package org.elasticsearch;
+
+import com.google.common.collect.Lists;
+import org.elasticsearch.dsl.*;
+import org.junit.Test;
+
+import java.util.List;
+
+public class SqlParserListenerTest {
+    @Test
+    public void testParseActionListener() {
+        final List<String> avaliableIndex = Lists.newArrayList("2016");
+
+        String sql = "select id,productStatus from index.trx_order trx where trx.status = 'SUCCESS' and updatedAt > '2017-01-01' limit 5,15";
+        ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
+        ElasticSqlParseResult parseResult = sql2DslParser.parse(sql, new ParseActionListenerAdapter() {
+            @Override
+            public void onAtomConditionParse(ElasticSqlIdentifier paramName, Object[] paramValues, SQLConditionOperator operator) {
+                if (paramName.getIdentifierType() == ElasticSqlIdentifier.IdentifierType.Property
+                        && "updatedAt".equals(paramName.getPropertyName())) {
+                    if (SQLConditionOperator.GreaterThan == operator || SQLConditionOperator.GreaterThanOrEqual == operator) {
+
+                    }
+
+                    if (SQLConditionOperator.LessThan == operator || SQLConditionOperator.LessThanOrEqual == operator) {
+
+                    }
+
+                    if (SQLConditionOperator.BetweenAnd == operator) {
+
+                    }
+
+                    if (SQLConditionOperator.Equality == operator || SQLConditionOperator.In == operator) {
+
+                    }
+                }
+            }
+        });
+        System.out.println(parseResult.toDsl());
+    }
+}