Package org.apache.calcite.plan
Class TableAccessMap
- java.lang.Object
-
- org.apache.calcite.plan.TableAccessMap
-
public class TableAccessMap extends java.lang.Object
TableAccessMap
represents the tables accessed by a query plan, with READ/WRITE information.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TableAccessMap.Mode
Access mode.private class
TableAccessMap.TableRelVisitor
Visitor that finds all tables in a tree.
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.util.List<java.lang.String>,TableAccessMap.Mode>
accessMap
-
Constructor Summary
Constructors Constructor Description TableAccessMap()
Constructs a permanently empty TableAccessMap.TableAccessMap(java.util.List<java.lang.String> table, TableAccessMap.Mode mode)
Constructs a TableAccessMap for a single tableTableAccessMap(RelNode rel)
Constructs a TableAccessMap for all tables accessed by a RelNode and its descendants.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>
getQualifiedName(RelOptTable table)
Constructs a qualified name for an optimizer table reference.TableAccessMap.Mode
getTableAccessMode(java.util.List<java.lang.String> tableName)
Determines the access mode of a table.java.util.Set<java.util.List<java.lang.String>>
getTablesAccessed()
boolean
isTableAccessed(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed at all.boolean
isTableAccessedForRead(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed for read.boolean
isTableAccessedForWrite(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed for write.
-
-
-
Field Detail
-
accessMap
private final java.util.Map<java.util.List<java.lang.String>,TableAccessMap.Mode> accessMap
-
-
Constructor Detail
-
TableAccessMap
public TableAccessMap()
Constructs a permanently empty TableAccessMap.
-
TableAccessMap
public TableAccessMap(RelNode rel)
Constructs a TableAccessMap for all tables accessed by a RelNode and its descendants.- Parameters:
rel
- the RelNode for which to build the map
-
TableAccessMap
public TableAccessMap(java.util.List<java.lang.String> table, TableAccessMap.Mode mode)
Constructs a TableAccessMap for a single table- Parameters:
table
- fully qualified name of the table, represented as a listmode
- access mode for the table
-
-
Method Detail
-
getTablesAccessed
public java.util.Set<java.util.List<java.lang.String>> getTablesAccessed()
- Returns:
- set of qualified names for all tables accessed
-
isTableAccessed
public boolean isTableAccessed(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed at all.- Parameters:
tableName
- qualified name of the table of interest- Returns:
- true if table is accessed
-
isTableAccessedForRead
public boolean isTableAccessedForRead(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed for read.- Parameters:
tableName
- qualified name of the table of interest- Returns:
- true if table is accessed for read
-
isTableAccessedForWrite
public boolean isTableAccessedForWrite(java.util.List<java.lang.String> tableName)
Determines whether a table is accessed for write.- Parameters:
tableName
- qualified name of the table of interest- Returns:
- true if table is accessed for write
-
getTableAccessMode
public TableAccessMap.Mode getTableAccessMode(java.util.List<java.lang.String> tableName)
Determines the access mode of a table.- Parameters:
tableName
- qualified name of the table of interest- Returns:
- access mode
-
getQualifiedName
public java.util.List<java.lang.String> getQualifiedName(RelOptTable table)
Constructs a qualified name for an optimizer table reference.- Parameters:
table
- table of interest- Returns:
- qualified name
-
-