private Table extractTable(ASTNode ast) throws SemanticException {
   String tableName = BaseSemanticAnalyzer.getUnescapedName(ast);
   if (tableName.contains(".")) {
     return new Table(tableName.split("\\.")[1]);
   } else {
     return new Table(tableName);
   }
 }
 private Database extractDatabase(ASTNode ast) throws SemanticException {
   String tableName = BaseSemanticAnalyzer.getUnescapedName(ast);
   if (tableName.contains(".")) {
     return new Database(tableName.split("\\.")[0]);
   } else {
     return getCanonicalDb();
   }
 }