/** * Used for create flatten table, sql pushdown. * * @param orig * @return the converted sql statement according to data source dialect */ public String convertSql(String orig) { return sqlConverter.convertSql(orig); }
public String convertSql(String originSql, String sourceDialect, String targetDialect) throws SQLException { SqlConverter sqlConverter = getSqlConverter(sourceDialect, targetDialect); return sqlConverter.convertSql(originSql); }
Assert.assertEquals("SELECT 1", converter.convertSql("select 1")); Assert.assertEquals("SELECT *\nFROM \"FACT\"", converter.convertSql("select * from FACT")); Assert.assertEquals("SELECT 1\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 LIMIT 1")); Assert.assertEquals("SELECT 1\nFETCH NEXT 0 ROWS ONLY", converter.convertSql("SELECT 1 LIMIT 0")); Assert.assertEquals("SELECT 1\nOFFSET 1 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 LIMIT 1 OFFSET 1")); Assert.assertEquals("SELECT *\nFROM \"DEFAULT\".\"FACT\"", converter.convertSql("select * from DEFAULT.FACT")); Assert.assertEquals("SELECT *\nFROM \"DEFAULT\".\"FACT\"", converter.convertSql("select * from \"DEFAULT\".FACT")); Assert.assertEquals("SELECT *\nFROM \"DEFAULT\".\"FACT\"", converter.convertSql("select * from \"Default\".FACT")); Assert.assertEquals("SELECT *\nFROM \"DEFAULT\".\"FACT\"", converter.convertSql("select * from \"default\".FACT")); converter.convertSql("select DAYOFYEAR(PART_DT) from \"DEFAULT\".FACT")); Assert.assertEquals( "SELECT 12 * (EXTRACT(YEAR FROM \"DT1\") - EXTRACT(YEAR FROM \"DT2\")) + EXTRACT(MONTH FROM \"DT1\") - EXTRACT(MONTH FROM \"DT2\") - " + "CASE WHEN EXTRACT(DAY FROM \"DT2\") > EXTRACT(DAY FROM \"DT1\") THEN 1 ELSE 0 END\n" + "FROM \"DEFAULT\".\"FACT\"", converter.convertSql("select TIMESTAMPDIFF(month,DT2, DT1) from \"DEFAULT\".FACT")); Assert.assertEquals("SELECT TRUNC(\"ID\")\nFROM \"DEFAULT\".\"FACT\"", converter.convertSql("select cast(ID as INT) from \"DEFAULT\".FACT")); Assert.assertEquals("SELECT 1\nFROM \"A\"\nWHERE 1 BETWEEN ASYMMETRIC 0 AND 2", converter.convertSql("select 1 from a where 1 BETWEEN 0 and 2")); Assert.assertEquals("SELECT \"CURRENT_DATE\", TEST_CURR_TIME()", converter.convertSql("select CURRENT_DATE, CURRENT_TIME")); Assert.assertEquals(
converter.convertSql("SELECT 1 ORDER BY 2 LIMIT 1")); Assert.assertEquals("SELECT 1\nORDER BY 1\nOFFSET 0 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 ORDER BY 1 LIMIT 1")); Assert.assertEquals("SELECT 1\nORDER BY \"COL\"\nOFFSET 0 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 ORDER BY COL LIMIT 1")); Assert.assertEquals("SELECT 1\nORDER BY 1\nOFFSET 0 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 ORDER BY 1 LIMIT 0")); Assert.assertEquals("SELECT 1\nORDER BY 1\nOFFSET 1 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 ORDER BY 1 LIMIT 1 OFFSET 1")); Assert.assertEquals("SELECT 1\nORDER BY 1\nOFFSET 0 ROWS\nFETCH NEXT 1 ROWS ONLY", converter.convertSql("SELECT 1 LIMIT 1"));
converter.convertSql("select sum(A), count(`A`) as AB from DEFAULT.`CUBE`")); Assert.assertEquals("SELECT A(), B(\"A\"), CAST(\"PRICE@@\" AS DDD)\nFROM \"DEFAULT\".\"CUBE\"", converter.convertSql("select A(), B(`A`), cast(`PRICE@@` as `DDD`) from DEFAULT.`CUBE`")); Assert.assertEquals("SELECT A(), B(\"A\"), CAST(\"PRICE@@\" AS DDD)\nFROM \"DEFAULT\".\"CUBE\"", converter.convertSql("select A(), B(\"A\"), cast(\"PRICE@@\" as \"DDD\") from \"DEFAULT\".\"CUBE\"")); Assert.assertEquals( "SELECT \"kylin_sales\".\"price_@@\", \"kylin_sales\".\"count\"\nFROM \"cube\".\"kylin_sales\"\nWHERE \"kylin_sales\".\"price_@@\" > 1 AND \"kylin_sales\".\"count\" < 50", converter.convertSql( "select `kylin_sales`.`price_@@`, `kylin_sales`.`count` from `cube`.`kylin_sales` where `kylin_sales`.`price_@@` > 1 and `kylin_sales`.`count` < 50")); Assert.assertEquals("SELECT COUNT(DISTINCT \"price_#@\")\nFROM \"cube\".\"kylin_sales\"", converter.convertSql("select count(distinct `price_#@`) from `cube`.`kylin_sales`"));
converter.convertSql("select * from \"DEFAULT\".FACT")); Assert.assertEquals("SELECT *\nFROM \"Default\".\"FACT\"", converter.convertSql("select * from \"Default\".FACT")); Assert.assertEquals("SELECT *\nFROM \"default\".\"FACT\"", converter.convertSql("select * from \"default\".FACT"));
/** * Used for create flatten table, sql pushdown. * * @param orig * @return the converted sql statement according to data source dialect */ public String convertSql(String orig) { return sqlConverter.convertSql(orig); }
public String convertSql(String originSql, String sourceDialect, String targetDialect) throws SQLException { SqlConverter sqlConverter = getSqlConverter(sourceDialect, targetDialect); return sqlConverter.convertSql(originSql); }