1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.infra.binder.statement;
19
20 import com.cedarsoftware.util.CaseInsensitiveMap;
21 import lombok.Getter;
22 import lombok.RequiredArgsConstructor;
23 import org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
24 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
25 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
26 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionSegment;
27
28 import java.util.Collection;
29 import java.util.HashSet;
30 import java.util.LinkedList;
31 import java.util.Map;
32
33
34
35
36 @RequiredArgsConstructor
37 @Getter
38 public final class SQLStatementBinderContext {
39
40 private final ShardingSphereMetaData metaData;
41
42 private final String defaultDatabaseName;
43
44 private final DatabaseType databaseType;
45
46 private final Collection<String> variableNames;
47
48 private final Collection<String> usingColumnNames = new HashSet<>();
49
50 private final Collection<ProjectionSegment> joinTableProjectionSegments = new LinkedList<>();
51
52 private final Map<String, TableSegmentBinderContext> externalTableBinderContexts = new CaseInsensitiveMap<>();
53
54 private final Collection<String> pivotColumnNames = new HashSet<>();
55 }