Class XPLAINSystemTableVisitor

java.lang.Object
org.apache.derby.impl.sql.execute.xplain.XPLAINSystemTableVisitor
All Implemented Interfaces:
XPLAINVisitor

public class XPLAINSystemTableVisitor extends Object implements XPLAINVisitor
This is the Visitor, which explains the information and stores the statistics in the system catalogs. It traverses the result set statistics tree and extracts the information.
  • Field Details

  • Constructor Details

    • XPLAINSystemTableVisitor

      public XPLAINSystemTableVisitor()
  • Method Details

    • pushUUIDnoChildren

      private void pushUUIDnoChildren(UUID uuid)
      helper method, which pushes the UUID, "number of Children" times onto the UUIDStack.
      Parameters:
      uuid - the UUID to push
    • setNumberOfChildren

      public void setNumberOfChildren(int noChildren)
      this method only stores the current number of children of the current explained node. The child nodes then can re-use this information.
      Specified by:
      setNumberOfChildren in interface XPLAINVisitor
      Parameters:
      noChildren - the number of children of the current explained node.
    • visit

      public void visit(ResultSetStatistics statistics)
      Visit this node, calling back to it to get details. This method visits the RS Statisitcs node, calling back to the node to get detailed descriptor information about it.
      Specified by:
      visit in interface XPLAINVisitor
      Parameters:
      statistics - the statistics, which want to get explained.
    • reset

      public void reset()
      This method resets the visitor. Gets called right before explanation to make sure all needed objects exist and are up to date and the lists are cleared
      Specified by:
      reset in interface XPLAINVisitor
    • doXPLAIN

      public void doXPLAIN(RunTimeStatistics rss, Activation activation) throws StandardException
      the interface method, which gets called by the Top-ResultSet, which starts the tree traversal.
      Specified by:
      doXPLAIN in interface XPLAINVisitor
      Throws:
      StandardException
    • clean

      private void clean()
      This method cleans up things after explanation. It frees kept resources and still holded references.
    • getDefaultConn

      private Connection getDefaultConn() throws SQLException
      Open a nested Connection with which to execute INSERT statements.
      Throws:
      SQLException
    • addStmtDescriptorsToSystemCatalog

      private void addStmtDescriptorsToSystemCatalog() throws StandardException, SQLException
      This method writes only the stmt and its timing descriptor to the dataDictionary
      Throws:
      StandardException
      SQLException
    • addArraysToSystemCatalogs

      private void addArraysToSystemCatalogs() throws StandardException, SQLException
      This method writes the created descriptor arrays to the cooresponding system catalogs.
      Throws:
      StandardException
      SQLException