Class XPLAINSystemTableVisitor

  • All Implemented Interfaces:
    XPLAINVisitor

    public class XPLAINSystemTableVisitor
    extends java.lang.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.
    • Constructor Detail

      • XPLAINSystemTableVisitor

        public XPLAINSystemTableVisitor()
    • Method Detail

      • 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
      • clean

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

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

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

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