net.sf.farrago.query
Class FarragoReentrantSubquery

java.lang.Object
  extended by net.sf.farrago.query.FarragoReentrantStmt
      extended by net.sf.farrago.query.FarragoReentrantStmtExecutor
          extended by net.sf.farrago.query.FarragoReentrantSubquery

public class FarragoReentrantSubquery
extends FarragoReentrantStmtExecutor

Extends FarragoReentrantStmtExecutor to handle subqueries. The subquery will be evaluated to a constant.

If the subquery is part of an EXISTS expression, the constant returned is either TRUE or FALSE depending on whether the subquery returned zero or at least one row.

Otherwise, the subquery must be a scalar subquery.

Version:
$Id: //open/dev/farrago/src/net/sf/farrago/query/FarragoReentrantSubquery.java#6 $
Author:
Zelaine Fong

Field Summary
private  boolean isExists
           
private  boolean isExplain
           
private  SqlToRelConverter parentConverter
           
private  SqlCall subq
           
 
Fields inherited from class net.sf.farrago.query.FarragoReentrantStmtExecutor
failed, results, rexBuilder
 
Constructor Summary
FarragoReentrantSubquery(SqlCall subq, SqlToRelConverter parentConverter, boolean isExists, boolean isExplain, List<RexNode> results)
          Constructs a FarragoReentrantSubquery.
 
Method Summary
protected  void executeImpl()
          Supplies subclass-specific behavior.
 
Methods inherited from class net.sf.farrago.query.FarragoReentrantStmtExecutor
executePlan
 
Methods inherited from class net.sf.farrago.query.FarragoReentrantStmt
execute, getPreparingStmt, getRootStmtContext, getStmtContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

subq

private final SqlCall subq

parentConverter

private final SqlToRelConverter parentConverter

isExists

private final boolean isExists

isExplain

private final boolean isExplain
Constructor Detail

FarragoReentrantSubquery

FarragoReentrantSubquery(SqlCall subq,
                         SqlToRelConverter parentConverter,
                         boolean isExists,
                         boolean isExplain,
                         List<RexNode> results)
Constructs a FarragoReentrantSubquery.

Parameters:
subq - the subquery to evaluate
parentConverter - sqlToRelConverter associated with the parent query
isExists - whether the subquery is part of an EXISTS expression
isExplain - whether the subquery is part of an EXPLAIN PLAN statement
results - the resulting evaluated expressions
Method Detail

executeImpl

protected void executeImpl()
                    throws Exception
Description copied from class: FarragoReentrantStmt
Supplies subclass-specific behavior.

Specified by:
executeImpl in class FarragoReentrantStmt
Throws:
Exception