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); } }
private SqlDataTypeSpec convertSqlDataTypeSpec(SqlDataTypeSpec typeSpec) { return convMaster.findTargetSqlDataTypeSpec(typeSpec); }
private SqlNode convertSqlIdentifier(SqlIdentifier sqlIdentifier) { Pair<SqlNode, SqlNode> matched = convMaster.matchSqlFunc(sqlIdentifier); if (matched != null) { Preconditions.checkState(matched.getFirst() instanceof SqlIdentifier); return matched.getSecond(); } else { return null; } }
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); }
private SqlNode convertSqlCall(SqlCall sqlCall) { SqlOperator operator = sqlCall.getOperator(); if (operator != null) { Pair<SqlNode, SqlNode> matched = convMaster.matchSqlFunc(sqlCall); if (matched != null) { Preconditions.checkState(matched.getFirst() instanceof SqlCall); SqlCall sourceTmpl = (SqlCall) matched.getFirst(); Preconditions.checkState(sourceTmpl.operandCount() == sqlCall.operandCount()); SqlNode targetTmpl = matched.getSecond(); boolean isWindowCall = sourceTmpl.getOperator() instanceof SqlOverOperator; SqlParamsFinder sqlParamsFinder = SqlParamsFinder.newInstance(sourceTmpl, sqlCall, isWindowCall); return targetTmpl.accept(new SqlFuncFiller(sqlParamsFinder.getParamNodes(), isWindowCall)); } } return null; }
private SqlDataTypeSpec convertSqlDataTypeSpec(SqlDataTypeSpec typeSpec) { return convMaster.findTargetSqlDataTypeSpec(typeSpec); }
@Test public void testConvertSqlWithoutEscape() throws SQLException, SqlParseException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() { @Override
private SqlNode convertSqlIdentifier(SqlIdentifier sqlIdentifier) { Pair<SqlNode, SqlNode> matched = convMaster.matchSqlFunc(sqlIdentifier); if (matched != null) { Preconditions.checkState(matched.getFirst() instanceof SqlIdentifier); return matched.getSecond(); } else { return null; } }
@Test public void testConvertColumn() throws SQLException, SqlParseException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() {
private SqlNode convertSqlCall(SqlCall sqlCall) { SqlOperator operator = sqlCall.getOperator(); if (operator != null) { Pair<SqlNode, SqlNode> matched = convMaster.matchSqlFunc(sqlCall); if (matched != null) { Preconditions.checkState(matched.getFirst() instanceof SqlCall); SqlCall sourceTmpl = (SqlCall) matched.getFirst(); Preconditions.checkState(sourceTmpl.operandCount() == sqlCall.operandCount()); SqlNode targetTmpl = matched.getSecond(); boolean isWindowCall = sourceTmpl.getOperator() instanceof SqlOverOperator; SqlParamsFinder sqlParamsFinder = SqlParamsFinder.newInstance(sourceTmpl, sqlCall, isWindowCall); return targetTmpl.accept(new SqlFuncFiller(sqlParamsFinder.getParamNodes(), isWindowCall)); } } return null; }
@Test public void testConvertQuotedSqlWithEscape() throws SQLException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() {
@Test public void testConvertSqlWithStrictLimitOffset() throws SQLException, SqlParseException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() {
@Test public void testConvertSqlWithEscape() throws SQLException, SqlParseException { DataSourceDefProvider provider = DataSourceDefProvider.getInstance(); ConvMaster master = new ConvMaster(provider.getDefault(), provider.getById(TEST_TARGET)); SqlConverter converter = new SqlConverter(new SqlConverter.IConfigurer() {
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 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); }