code: private Object executeExp(PageContext pc, SQL sql, Query qr, Expression exp, int row) throws PageException {
  	// print.e("name:"+exp.getClass().getName());
  	if (exp instanceof Value) return ((Value) exp).getValue();// executeConstant(sql,qr, (Value)exp, row);
  	if (exp instanceof Column) return executeColumn(sql, qr, (Column) exp, row);
  	if (exp instanceof Operation) return executeOperation(pc, sql, qr, (Operation) exp, row);
  	if (exp instanceof BracketExpression) return executeBracked(pc, sql, qr, (BracketExpression) exp, row);
  	throw new DatabaseException("unsupported sql statement [" + exp + "]", null, sql, null);
      }
docs: Executes a ZEXp
  
  @param sql
  @param qr Query Result
  @param exp expression to execute
  @param row current row of resultset
  @return result
  @throws PageException