| 1 package com.daffodilwoods.daffodildb.server.sql99.expression.expressionprimary; 2 3 import com.daffodilwoods.daffodildb.server.sql99.common.*; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 5 import com.daffodilwoods.daffodildb.server.sql99.dql.listenerevents.*; 6 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*; 7 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 8 import com.daffodilwoods.daffodildb.utils.*; 9 import com.daffodilwoods.daffodildb.utils.field.*; 10 import com.daffodilwoods.database.resource.*; 11 12 public class scalarsubquery extends AbstractValueExpressionPrimary implements nonparenthesizedvalueexpressionprimary, valueexpressionprimary, rowvalueexpression { 13 public subquery _scalarsubquery0; 14 15 private boolean firstTime; 16 private int cardinality; 17 18 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 19 _Iterator iterator = (_Iterator) _scalarsubquery0.run(object); 20 if (iterator.first()) { 21 Object row = ( (_SelectIterator) iterator).getSelectColumnValues(); 22 if (iterator.next()) { 23 throw new DException("DSE325", null); 24 } 25 return ( (Object []) row)[0]; 26 } 27 return new FieldLiteral(FieldUtility.NULLBUFFERRANGE, _scalarsubquery0._queryexpression0.getSelectedColumns()[0].getDatatype()); 28 } 29 30 public ParameterInfo[] getParameterInfo() throws DException { 31 return _scalarsubquery0.getParameterInfo(); 32 } 33 34 public AbstractRowValueExpression[] getChilds() { 35 AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] { (AbstractRowValueExpression) (_scalarsubquery0)}; 36 return childs; 37 38 } 39 40 public int getCardinality() throws DException { 41 if (_scalarsubquery0.getColumnCount() > 1) { 42 throw new DException("DSE7064", null); 43 } 44 return 1; 45 } 46 47 public String toString() { 48 49 StringBuffer sb = new StringBuffer (); 50 sb.append(" "); 51 sb.append(_scalarsubquery0); 52 return sb.toString(); 53 } 54 55 public Object clone() throws CloneNotSupportedException { 56 scalarsubquery tempClass = new scalarsubquery(); 57 tempClass._scalarsubquery0 = (subquery) _scalarsubquery0.clone(); 58 return tempClass; 59 } 60 61 public byte[][] getByte(_VariableValues variableValues) throws DException { 62 throw new UnsupportedOperationException ("Not Supported yet"); 63 } 64 65 public Object getObject(_VariableValues variableValues) throws DException { 66 throw new UnsupportedOperationException ("Not Supported yet"); 67 } 68 } 69 | Popular Tags |