1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl;
19
20 import org.apache.calcite.config.CalciteConnectionProperty;
21 import org.apache.calcite.config.Lex;
22 import org.apache.calcite.sql.fun.SqlLibrary;
23 import org.apache.calcite.sql.validate.SqlConformanceEnum;
24 import org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLDialectBuilder;
25
26 import java.util.Properties;
27
28
29
30
31 public final class H2OptimizerBuilder implements OptimizerSQLDialectBuilder {
32
33 @Override
34 public Properties build() {
35 Properties result = new Properties();
36
37 result.setProperty(CalciteConnectionProperty.LEX.camelName(), Lex.MYSQL.name());
38 result.setProperty(CalciteConnectionProperty.CONFORMANCE.camelName(), SqlConformanceEnum.LENIENT.name());
39 result.setProperty(CalciteConnectionProperty.FUN.camelName(), SqlLibrary.STANDARD.fun);
40 result.setProperty(CalciteConnectionProperty.CASE_SENSITIVE.camelName(), String.valueOf(Lex.MYSQL.caseSensitive));
41 return result;
42 }
43
44 @Override
45 public String getDatabaseType() {
46 return "H2";
47 }
48 }