1 package com.daffodilwoods.daffodildb.server.sql99.expression.datetimevalueexpression; 2 3 import com.daffodilwoods.database.resource.*; 4 import com.daffodilwoods.daffodildb.server.sql99.token.*; 5 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.numericvalueexpression; 6 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails; 7 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo; 8 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 9 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails; 10 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 11 import java.util.ArrayList ; 12 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues; 13 import com.daffodilwoods.daffodildb.server.sql99.utils.ByteComparison; 14 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValueOperations; 15 import com.daffodilwoods.daffodildb.server.sql99.common.GeneralPurposeStaticClass; 16 import com.daffodilwoods.daffodildb.server.sql99.expression.AbstractValueExpression; 17 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression. 18 AbstractRowValueExpression; 19 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes; 20 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 21 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.AbstractTerm; 22 import com.daffodilwoods.database.general.TypeConverter; 23 24 public class datetimevalueexpressionSminussign1770466157numericvalueexpression extends AbstractTerm 25 implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter ,datetimevalueexpression { 26 27 public numericvalueexpression _numericvalueexpression0 ; 28 public Sminussign1770466157 _Sminussign17704661571 ; 29 public datetimevalueexpression _datetimevalueexpression2 ; 30 31 32 public String toString() { 33 StringBuffer sb = new StringBuffer (); 34 sb.append(" "); 35 sb.append(_datetimevalueexpression2); 36 sb.append(" "); 37 sb.append(_Sminussign17704661571); 38 sb.append(" "); 39 sb.append(_numericvalueexpression0); 40 return sb.toString(); 41 } 42 43 49 50 55 public Object clone() throws CloneNotSupportedException { 56 datetimevalueexpressionSminussign1770466157numericvalueexpression tempClass = new datetimevalueexpressionSminussign1770466157numericvalueexpression(); 57 tempClass._datetimevalueexpression2 = (datetimevalueexpression) _datetimevalueexpression2.clone(); 58 tempClass._Sminussign17704661571 = (Sminussign1770466157) _Sminussign17704661571.clone(); 59 tempClass._numericvalueexpression0 = (numericvalueexpression) _numericvalueexpression0.clone(); 60 return tempClass; 61 62 } 63 64 69 public ColumnDetails[] getColumnDetails() throws DException { 70 ColumnDetails[] cd = super.getColumnDetails(); 71 if( cd.length == 1) 72 return cd; 73 74 ColumnDetails columnDetail = new ColumnDetails(); 75 String str = toString(); 76 columnDetail.setColumn(new String [] {str}); 77 columnDetail.setType(FUNCTIONAL); 78 columnDetail.setObject(this); 79 columnDetail.setExpression(str); 80 return new ColumnDetails[] {columnDetail}; 81 82 83 } 84 85 90 public ParameterInfo[] getParameterInfo() throws DException { 91 ParameterInfo[] parameterInfo = super.getParameterInfo(); 92 for (int i = 0; i < parameterInfo.length; i++) { 93 if(parameterInfo[i].getQuestionMark()){ 94 parameterInfo[i].setDataType(Datatypes.BIGDECIMAL); 95 } 96 } 97 return parameterInfo; 98 } 99 100 105 106 112 113 119 public _Reference[] checkSemantic(_ServerSession ss) throws DException { 120 _Reference[] refs = super.checkSemantic(ss); 121 if(refs==null || refs.length==0){ 122 ByteComparison bc1 = _numericvalueexpression0.getByteComparison(ss); 123 ByteComparison bc2 = _datetimevalueexpression2.getByteComparison(ss); 124 checkSemantic(ss, bc1, bc2); 125 } 126 checkForQuestion(_datetimevalueexpression2.getColumnDetails(),_numericvalueexpression0.getColumnDetails()); 127 return refs; 128 } 129 130 135 136 141 142 148 149 155 156 162 163 168 public ColumnDetails[] getChildColumnDetails() { 169 return columnDetails; 170 } 171 172 177 178 183 184 187 188 193 public AbstractRowValueExpression[] getChilds() { 194 return new AbstractRowValueExpression[]{ (AbstractRowValueExpression)_datetimevalueexpression2 ,( AbstractRowValueExpression)_numericvalueexpression0}; 195 } 196 197 206 public FieldBase getObject(int type1, int type2, Object result1, 207 Object result2) throws DException { 208 209 return GeneralPurposeStaticClass.dateMinusTerm(type1, type2, result1, result2); 210 } 211 212 213 219 protected int getAppropriateDataType(Object object) throws DException { 220 int dataType1 = getDataTypeForByte(childs[0].getByteComparison(object)); 221 int dataType2 = getDataTypeForByte(childs[1].getByteComparison(object)); 222 223 if (dataType1 == DATE && dataType2 == DATE) 224 return INTEGER; 225 226 if (dataType1 == DATE && 227 GeneralPurposeStaticClass.isfromNumericFamily(dataType2)) 228 return DATE; 229 230 if (dataType1 == TIMESTAMP && dataType2 == TIMESTAMP) 231 return INTEGER; 232 233 if (dataType1 == TIMESTAMP && 234 GeneralPurposeStaticClass.isfromNumericFamily(dataType2)) 235 return TIMESTAMP; 236 throw new DException("DSE87", 237 new Object [] {TypeConverter. 238 getDataBaseTypeName(dataType1), 239 TypeConverter.getDataBaseTypeName(dataType2)}); 240 } 241 242 } 243 | Popular Tags |