mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
[improvement][headless] fixed sql optimizer utf8 error (#580)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.tencent.supersonic.headless.query.parser.calcite;
|
||||
|
||||
|
||||
import com.tencent.supersonic.headless.query.parser.calcite.schema.HeadlessSqlTypeFactoryImpl;
|
||||
import com.tencent.supersonic.headless.query.parser.calcite.schema.SemanticSqlDialect;
|
||||
import com.tencent.supersonic.headless.query.parser.calcite.schema.ViewExpanderImpl;
|
||||
import java.util.ArrayList;
|
||||
@@ -27,9 +28,7 @@ import org.apache.calcite.sql.SqlOperatorTable;
|
||||
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
|
||||
import org.apache.calcite.sql.parser.SqlParser;
|
||||
import org.apache.calcite.sql.parser.impl.SqlParserImpl;
|
||||
import org.apache.calcite.sql.type.SqlTypeFactoryImpl;
|
||||
import org.apache.calcite.sql.util.ChainedSqlOperatorTable;
|
||||
import org.apache.calcite.sql.validate.SqlConformanceEnum;
|
||||
import org.apache.calcite.sql.validate.SqlValidator;
|
||||
import org.apache.calcite.sql.validate.SqlValidatorScope;
|
||||
import org.apache.calcite.sql.validate.SqlValidatorUtil;
|
||||
@@ -40,7 +39,7 @@ import org.apache.calcite.tools.Frameworks;
|
||||
public class Configuration {
|
||||
|
||||
public static Properties configProperties = new Properties();
|
||||
public static RelDataTypeFactory typeFactory = new SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
|
||||
public static RelDataTypeFactory typeFactory = new HeadlessSqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
|
||||
public static SqlOperatorTable operatorTable = SqlStdOperatorTable.instance();
|
||||
public static CalciteConnectionConfig config = new CalciteConnectionConfigImpl(configProperties);
|
||||
public static SqlValidator.Config validatorConfig = SqlValidator.Config.DEFAULT
|
||||
@@ -69,7 +68,7 @@ public class Configuration {
|
||||
.setQuoting(Quoting.SINGLE_QUOTE)
|
||||
.setQuotedCasing(Casing.TO_UPPER)
|
||||
.setUnquotedCasing(Casing.TO_UPPER)
|
||||
.setConformance(SqlConformanceEnum.MYSQL_5)
|
||||
.setConformance(SemanticSqlDialect.DEFAULT.getConformance())
|
||||
.setLex(Lex.BIG_QUERY);
|
||||
return parserConfig.build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.tencent.supersonic.headless.query.parser.calcite.schema;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import org.apache.calcite.rel.type.RelDataTypeSystem;
|
||||
import org.apache.calcite.sql.type.SqlTypeFactoryImpl;
|
||||
|
||||
public class HeadlessSqlTypeFactoryImpl extends SqlTypeFactoryImpl {
|
||||
|
||||
public HeadlessSqlTypeFactoryImpl(RelDataTypeSystem typeSystem) {
|
||||
super(typeSystem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Charset getDefaultCharset() {
|
||||
return Charset.forName("UTF8");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user