| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package org.elasticsearch;
- import org.apache.commons.collections.CollectionUtils;
- import org.elasticsearch.dsl.parser.syntax.ElasticSql2DslParser;
- import org.elasticsearch.dsl.bean.ElasticSqlParseResult;
- import org.junit.Assert;
- import org.junit.Test;
- public class SqlParserSelectFieldTest {
- @Test
- public void testParseFromSource() {
- String sql = "select id,status from index.order t";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
- Assert.assertEquals(parseResult.getIndices().get(0), "index");
- Assert.assertEquals(parseResult.getType(), "order");
- Assert.assertEquals(parseResult.getQueryAs(), "t");
- System.out.println(parseResult.toDsl());
- }
- @Test
- public void testParseDefaultLimit() {
- String sql = "select id,status from index.order";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
- Assert.assertEquals(parseResult.getFrom(), 0);
- Assert.assertEquals(parseResult.getSize(), 15);
- System.out.println(parseResult.toDsl());
- }
- @Test
- public void testParseOriSelectField() {
- String sql = "select id,status from index.order t";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
- 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
- public void testSelectAllField() {
- String sql = "select * from index.order order by id asc routing by 'A','B','C' limit 1,2";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
- Assert.assertTrue(CollectionUtils.isEmpty(parseResult.getQueryFieldList()));
- System.out.println(parseResult.toDsl());
- }
- @Test
- public void testInnerDocField() {
- String sql = "select id,product.status from index.order";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- 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
- public void testNestedDocField() {
- String sql = "select id,$product.status from index.order";
- ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
- 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());
- }
- }
|