SqlParserRoutingTest.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package org.elasticsearch;
  2. import org.elasticsearch.dsl.parser.ElasticSql2DslParser;
  3. import org.elasticsearch.dsl.bean.ElasticSqlParseResult;
  4. import org.junit.Assert;
  5. import org.junit.Test;
  6. public class SqlParserRoutingTest {
  7. @Test
  8. public void testParseRoutingExpr() {
  9. String sql = "select * from index.order t where t.status='SUCCESS' order by id asc routing by 'A','B' limit 5,15";
  10. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
  11. ElasticSqlParseResult parseResult = sql2DslParser.parse(sql);
  12. System.out.println(parseResult.toDsl());
  13. Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
  14. Assert.assertTrue("B".equalsIgnoreCase(parseResult.getRoutingBy().get(1)));
  15. sql = "select * from index.order t where t.status='SUCCESS' order by id asc routing by 'A' limit 5,15";
  16. sql2DslParser = new ElasticSql2DslParser();
  17. parseResult = sql2DslParser.parse(sql);
  18. Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
  19. System.out.println(parseResult.toDsl());
  20. }
  21. @Test
  22. public void testParseRoutingExprWithArgs() {
  23. String sql = "select * from index.order t where t.status='SUCCESS' order by id asc routing by ?,? limit 5,15";
  24. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser();
  25. ElasticSqlParseResult parseResult = sql2DslParser.parse(sql, new Object[]{"A", "B"});
  26. Assert.assertTrue("A".equalsIgnoreCase(parseResult.getRoutingBy().get(0)));
  27. Assert.assertTrue("B".equalsIgnoreCase(parseResult.getRoutingBy().get(1)));
  28. System.out.println(parseResult.toDsl());
  29. }
  30. }