public String convertColumn(String column, String originQuote) { return sqlConverter.convertColumn(column, originQuote); }
/** * 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); }
DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { 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",
DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { Assert.assertEquals("\"TEST\".\"AA\"", converter.convertColumn("`test`.`aa`", "`")); Assert.assertEquals("\"TEST\".\"AA\"", converter.convertColumn("`test`.aa", "`")); Assert.assertEquals("\"TEST\".\"AA\"", converter.convertColumn("test.aa", "`"));
private SqlConverter createSqlConverter(String sourceDialect, String targetDialect) throws SQLException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); DataSourceDef sourceDs = provider.getById(sourceDialect); final DataSourceDef targetDs = provider.getById(targetDialect); ConvMaster convMaster = new ConvMaster(sourceDs, targetDs); SqlConverter.IConfigurer configurer = new DefaultConfiguer(targetDs); return new SqlConverter(configurer, convMaster); } }
dataSource.getJdbcPassword(), selectSql, jobWorkingDir, hiveTable, splitColumn, bquery, filedDelimiter, mapperNum); SqlConverter.IConfigurer configurer = dataSource.getSqlConverter().getConfigurer(); if (configurer.getTransactionIsolationLevel() != null) { cmd = cmd + " --relaxed-isolation --metadata-transaction-isolation-level "
DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { 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"));
public JdbcConnector(AbstractJdbcAdaptor adaptor) throws SQLException { this.adaptor = adaptor; DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); jdbcDs = provider.getById(this.adaptor.getDataSourceId()); DataSourceDef kylinDs = provider.getDefault(); convMaster = new ConvMaster(kylinDs, jdbcDs); SqlConverter.IConfigurer configurer = new DefaultConfiguer(this.adaptor, jdbcDs); this.sqlConverter = new SqlConverter(configurer, convMaster); }
SqlConverter.IConfigurer configurer = connector.getSqlConverter().getConfigurer(); Assert.assertTrue(configurer.allowFetchNoRows()); Assert.assertTrue(configurer.allowNoOffset());
DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { 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`"));
private SqlConverter createSqlConverter(String sourceDialect, String targetDialect) throws SQLException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); DataSourceDef sourceDs = provider.getById(sourceDialect); final DataSourceDef targetDs = provider.getById(targetDialect); ConvMaster convMaster = new ConvMaster(sourceDs, targetDs); SqlConverter.IConfigurer configurer = new DefaultConfiguer(targetDs); return new SqlConverter(configurer, convMaster); } }
public String convertSql(String originSql, String sourceDialect, String targetDialect) throws SQLException { SqlConverter sqlConverter = getSqlConverter(sourceDialect, targetDialect); return sqlConverter.convertSql(originSql); }
public String convertColumn(String column, String originQuote) { return sqlConverter.convertColumn(column, originQuote); }
DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { @Override public boolean skipDefaultConvert() { 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"));
public JdbcConnector(AbstractJdbcAdaptor adaptor) throws SQLException { this.adaptor = adaptor; DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); jdbcDs = provider.getById(this.adaptor.getDataSourceId()); DataSourceDef kylinDs = provider.getDefault(); convMaster = new ConvMaster(kylinDs, jdbcDs); SqlConverter.IConfigurer configurer = new DefaultConfiguer(this.adaptor, jdbcDs); this.sqlConverter = new SqlConverter(configurer, convMaster); }
/** * 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); }