Class TableAccessMap


  • public class TableAccessMap
    extends java.lang.Object
    TableAccessMap represents the tables accessed by a query plan, with READ/WRITE information.
    • 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 table
      TableAccessMap​(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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 list
        mode - 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