1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.sqlfederation.executor.context;
19
20 import lombok.Getter;
21 import lombok.RequiredArgsConstructor;
22 import org.apache.calcite.DataContext;
23 import org.apache.calcite.adapter.java.JavaTypeFactory;
24 import org.apache.calcite.linq4j.QueryProvider;
25 import org.apache.calcite.schema.SchemaPlus;
26 import org.apache.calcite.sql.validate.SqlValidator;
27 import org.apache.calcite.sql2rel.SqlToRelConverter;
28
29 import java.util.Map;
30
31
32
33
34 @RequiredArgsConstructor
35 public final class SQLFederationBindContext implements DataContext {
36
37 private final SqlValidator validator;
38
39 private final SqlToRelConverter converter;
40
41 @Getter
42 private final Map<String, Object> parameters;
43
44 @Override
45 public SchemaPlus getRootSchema() {
46 return validator.getCatalogReader().getRootSchema().plus();
47 }
48
49 @Override
50 public JavaTypeFactory getTypeFactory() {
51 return (JavaTypeFactory) converter.getCluster().getTypeFactory();
52 }
53
54 @Override
55 public QueryProvider getQueryProvider() {
56 return null;
57 }
58
59 @Override
60 public Object get(final String name) {
61 return parameters.get(name);
62 }
63 }