SqlParserTest.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package org.elasticsearch;
  2. import junit.framework.TestCase;
  3. import org.apache.commons.collections.CollectionUtils;
  4. import org.elasticsearch.dsl.ElasticDslContext;
  5. import org.elasticsearch.dsl.ElasticSql2DslParser;
  6. import org.junit.Assert;
  7. public class SqlParserTest extends TestCase {
  8. public void testParseSelectFieldWithQueryAs() {
  9. String sql = "select b.id,bookCategory,b.bookStatus,clazz.sortNo,b.clazz.cid from book b where 1 = 1";
  10. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser(sql);
  11. ElasticDslContext dslContext = sql2DslParser.parse();
  12. System.out.println(dslContext.toString());
  13. Assert.assertEquals(dslContext.getQueryFieldList().get(0), "id");
  14. Assert.assertEquals(dslContext.getQueryFieldList().get(1), "bookCategory");
  15. Assert.assertEquals(dslContext.getQueryFieldList().get(2), "bookStatus");
  16. Assert.assertEquals(dslContext.getQueryFieldList().get(3), "clazz.sortNo");
  17. Assert.assertEquals(dslContext.getQueryFieldList().get(4), "clazz.cid");
  18. }
  19. public void testParseSelectFieldWithoutQueryAs() {
  20. String sql = "select b.id,bookCategory,b.bookStatus,clazz.sortNo,clazz.cid from book where 1 = 1";
  21. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser(sql);
  22. ElasticDslContext dslContext = sql2DslParser.parse();
  23. System.out.println(dslContext.toString());
  24. Assert.assertEquals(dslContext.getQueryFieldList().get(0), "b.id");
  25. Assert.assertEquals(dslContext.getQueryFieldList().get(1), "bookCategory");
  26. Assert.assertEquals(dslContext.getQueryFieldList().get(2), "b.bookStatus");
  27. Assert.assertEquals(dslContext.getQueryFieldList().get(3), "clazz.sortNo");
  28. Assert.assertEquals(dslContext.getQueryFieldList().get(4), "clazz.cid");
  29. }
  30. public void testParseSelectFieldMatchAll() {
  31. String sql = "select * from book where 1 = 1";
  32. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser(sql);
  33. ElasticDslContext dslContext = sql2DslParser.parse();
  34. System.out.println(dslContext.toString());
  35. Assert.assertTrue(CollectionUtils.isEmpty(dslContext.getQueryFieldList()));
  36. }
  37. public void testParseFilterCondition() {
  38. //String sql = "select * from book b where 1 = 1 and b.status='ONLINE'"; //SQLBinaryOpExpr
  39. //String sql = "select * from book b where price+1 < 2"; //SQLBinaryOpExpr
  40. //String sql = "select * from book b where c in (1,2,3)"; //SQLInListExpr
  41. //String sql = "select * from book b where c not in (1,2,3)"; //SQLInListExpr
  42. String sql = "select * from book b where c between 1 and 3"; //SQLBetweenExpr
  43. ElasticSql2DslParser sql2DslParser = new ElasticSql2DslParser(sql);
  44. ElasticDslContext dslContext = sql2DslParser.parse();
  45. System.out.println(dslContext.toString());
  46. }
  47. }