Просмотр исходного кода

Merge branch 'master' into 2.x

spuerx 9 лет назад
Родитель
Сommit
9388a6f208

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

@@ -15,6 +15,8 @@ public class SqlParserLimitTest {
 
         Assert.assertEquals(parseResult.getFrom(), 5);
         Assert.assertEquals(parseResult.getSize(), 15);
+
+        System.out.println(parseResult.toDsl());
     }
 
     @Test

+ 3 - 1
src/test/java/org/elasticsearch/SqlParserListenerTest.java

@@ -1,5 +1,6 @@
 package org.elasticsearch;
 
+import org.elasticsearch.dsl.bean.ElasticSqlParseResult;
 import org.elasticsearch.dsl.bean.ElasticSqlQueryField;
 import org.elasticsearch.dsl.enums.SQLConditionOperator;
 import org.elasticsearch.dsl.parser.ElasticSql2DslParser;
@@ -12,7 +13,7 @@ public class SqlParserListenerTest {
     public void testParseActionListener() {
         String sql = "select id,status from index.order t where t.status = 'SUCCESS' and lastUpdatedTime > '2017-01-01' limit 5,15";
         ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
-        sql2DslParser.parse(sql, new ParseActionListenerAdapter() {
+        ElasticSqlParseResult parseResult = sql2DslParser.parse(sql, new ParseActionListenerAdapter() {
             @Override
             public void onAtomConditionParse(ElasticSqlQueryField paramName, Object[] paramValues, SQLConditionOperator operator) {
                 if (SQLConditionOperator.Equality == operator) {
@@ -24,5 +25,6 @@ public class SqlParserListenerTest {
                 }
             }
         });
+        System.out.println(parseResult.toDsl());
     }
 }

+ 6 - 3
src/test/java/org/elasticsearch/SqlParserOrderByTest.java

@@ -55,9 +55,12 @@ public class SqlParserOrderByTest {
 //        targetSort = SortBuilders.fieldSort("product.price").order(SortOrder.ASC).missing(0);
 //        Assert.assertEquals(parseResult.getOrderBy().get(0).toString(), targetSort.toString());
 //
-//        sql = "select id,status from index.order order by product.price asc, $productTags.sortNo desc";
-//        sql2DslParser = new ElasticSql2DslParser();
-//        parseResult = sql2DslParser.parse(sql);
+        sql = "select id,status from index.order order by product.price asc, $productTags.sortNo desc";
+        sql2DslParser = new ElasticSql2DslParser();
+        parseResult = sql2DslParser.parse(sql);
+
+        System.out.println(parseResult.toDsl());
+
 //        targetSort = SortBuilders.fieldSort("product.price").order(SortOrder.ASC);
 //        Assert.assertEquals(parseResult.getOrderBy().get(0).toString(), targetSort.toString());
 //        targetSort = SortBuilders.fieldSort("productTags.sortNo").order(SortOrder.DESC).setNestedPath("productTags");

+ 6 - 0
src/test/java/org/elasticsearch/SqlParserRoutingTest.java

@@ -13,6 +13,8 @@ public class SqlParserRoutingTest {
         ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
 
+        System.out.println(parseResult.toDsl());
+
         Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
         Assert.assertTrue("B".equalsIgnoreCase(parseResult.getRoutingBy().get(1)));
 
@@ -20,6 +22,8 @@ public class SqlParserRoutingTest {
         sql2DslParser = new ElasticSql2DslParser();
         parseResult = sql2DslParser.parse(sql);
         Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
+
+        System.out.println(parseResult.toDsl());
     }
 
 
@@ -31,5 +35,7 @@ public class SqlParserRoutingTest {
 
         Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
         Assert.assertTrue("B".equalsIgnoreCase(parseResult.getRoutingBy().get(1)));
+
+        System.out.println(parseResult.toDsl());
     }
 }

+ 17 - 0
src/test/java/org/elasticsearch/SqlParserSelectFieldTest.java

@@ -18,6 +18,7 @@ public class SqlParserSelectFieldTest {
         Assert.assertEquals(parseResult.getIndices().get(0), "index");
         Assert.assertEquals(parseResult.getType(), "order");
         Assert.assertEquals(parseResult.getQueryAs(), "t");
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -28,6 +29,7 @@ public class SqlParserSelectFieldTest {
 
         Assert.assertEquals(parseResult.getFrom(), 0);
         Assert.assertEquals(parseResult.getSize(), 15);
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -39,6 +41,7 @@ public class SqlParserSelectFieldTest {
         Assert.assertTrue(parseResult.getQueryFieldList().size() == 2);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "id");
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "status");
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -47,6 +50,7 @@ public class SqlParserSelectFieldTest {
         ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         Assert.assertTrue(CollectionUtils.isEmpty(parseResult.getQueryFieldList()));
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -56,23 +60,28 @@ public class SqlParserSelectFieldTest {
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "id");
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select tmp.product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "tmp.product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,product.* from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "id");
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "product.*");
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -82,22 +91,30 @@ public class SqlParserSelectFieldTest {
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "id");
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "product.status");
+        System.out.println(parseResult.toDsl());
+
 
         sql = "select t.$product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select $tmp.product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "tmp.product.status");
+        System.out.println(parseResult.toDsl());
+
 
         sql = "select product.status from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "product.status");
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,product.* from index.order t";
         parseResult = sql2DslParser.parse(sql);
         Assert.assertEquals(parseResult.getQueryFieldList().get(0), "id");
         Assert.assertEquals(parseResult.getQueryFieldList().get(1), "product.*");
+
+        System.out.println(parseResult.toDsl());
     }
 }

+ 16 - 3
src/test/java/org/elasticsearch/SqlParserWhereConditionTest.java

@@ -23,36 +23,43 @@ public class SqlParserWhereConditionTest {
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         QueryBuilder targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("status", "SUCCESS"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("price", "123.4"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where product.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("product.price", "123.4"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where $product.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.nestedQuery("product", QueryBuilders.termQuery("product.price", "123.4")));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.$product.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.nestedQuery("product", QueryBuilders.termQuery("product.price", "123.4")));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where abc.t.$product.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.nestedQuery("abc.t.product", QueryBuilders.termQuery("abc.t.product.price", "123.4")));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.product.price='123.4'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("product.price", "123.4"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -64,17 +71,19 @@ public class SqlParserWhereConditionTest {
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         QueryBuilder targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("price").gt(123.4));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where product.price > 123.4";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("product.price").gt(123.4));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where $product.price > 123.4";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.nestedQuery("product", QueryBuilders.rangeQuery("product.price").gt(123.4)));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
-
+        System.out.println(parseResult.toDsl());
     }
 
     @Test
@@ -86,28 +95,31 @@ public class SqlParserWhereConditionTest {
         ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
         QueryBuilder targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("lastUpdateTime").gt("2017-01-25T00:00:00.000+0800"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.lastUpdateTime > '2017-01-25 13:32'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("lastUpdateTime").gt("2017-01-25T13:32:00.000+0800"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.lastUpdateTime > '2017-01-25 13:32:59'";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("lastUpdateTime").gt("2017-01-25T13:32:59.000+0800"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.lastUpdateTime > date('yyyy/MM/dd hh:mm:ss', '2017/01/25 13:32:59')";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("lastUpdateTime").gt("2017-01-25T13:32:59.000+0800"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
-
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.lastUpdateTime > date('yyyy/MM/dd hh-mm', '2017/01/25 13-32')";
         parseResult = sql2DslParser.parse(sql);
         targetFilter = QueryBuilders.boolQuery().must(QueryBuilders.rangeQuery("lastUpdateTime").gt("2017-01-25T13:32:00.000+0800"));
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
-
+        System.out.println(parseResult.toDsl());
 
         sql = "select id,status from index.order t where t.lastUpdateTime between date('yyyy/MM/dd hh-mm', '2017/01/25 13-32') and '2018-10-25'";
         parseResult = sql2DslParser.parse(sql);
@@ -117,6 +129,7 @@ public class SqlParserWhereConditionTest {
                         .lte("2018-10-25T00:00:00.000+0800")
         );
         Assert.assertEquals(parseResult.getWhereCondition().toString(), targetFilter.toString());
+        System.out.println(parseResult.toDsl());
     }