| 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.utils._Reference; 7 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 8 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails; 9 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo; 10 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails; 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.expression.numericvalueexpression.AbstractTerm; 16 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression. 17 AbstractRowValueExpression; 18 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 19 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes; 20 import com.daffodilwoods.daffodildb.server.sql99.common.GeneralPurposeStaticClass; 21 import com.daffodilwoods.database.general.TypeConverter; 22 23 public class datetimevalueexpressionSplussign_1537298301numericvalueexpression extends AbstractTerm 24 implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter ,datetimevalueexpression { 25 26 public numericvalueexpression _numericvalueexpression0 ; 27 public Splussign_1537298301 _Splussign_15372983011 ; 28 public datetimevalueexpression _datetimevalueexpression2 ; 29 public String toString() { 30 StringBuffer sb = new StringBuffer (); 31 sb.append(" "); 32 sb.append(_datetimevalueexpression2); 33 sb.append(" "); 34 sb.append(_Splussign_15372983011); 35 sb.append(" "); 36 sb.append(_numericvalueexpression0); 37 return sb.toString(); 38 } 39 40 46 47 52 public Object clone() throws CloneNotSupportedException { 53 datetimevalueexpressionSplussign_1537298301numericvalueexpression temp = new datetimevalueexpressionSplussign_1537298301numericvalueexpression(); 54 temp._datetimevalueexpression2 = (datetimevalueexpression) temp._datetimevalueexpression2.clone(); 55 temp._Splussign_15372983011 = (Splussign_1537298301)temp._Splussign_15372983011.clone(); 56 temp._numericvalueexpression0 = (numericvalueexpression) temp._numericvalueexpression0.clone(); 57 return temp; 58 } 59 60 66 public _Reference[] checkSemantic(_ServerSession ss) throws DException { 67 _Reference[] refs = super.checkSemantic(ss); 68 if(refs==null || refs.length==0){ 69 ByteComparison bc1 = _numericvalueexpression0.getByteComparison(ss); 70 ByteComparison bc2 = _datetimevalueexpression2.getByteComparison(ss); 71 checkSemantic(ss, bc1, bc2); 72 } 73 checkForQuestion(_datetimevalueexpression2.getColumnDetails(),_numericvalueexpression0.getColumnDetails()); 74 return refs; 75 } 76 77 78 79 84 85 90 public ColumnDetails[] getColumnDetails() throws DException { 91 ColumnDetails cd[] = super.getColumnDetails(); 92 if (cd.length == 1) 93 return cd; 94 95 ColumnDetails columnDetail = new ColumnDetails(); 96 String str = toString(); 97 columnDetail.setColumn(new String [] {str}); 98 columnDetail.setType(FUNCTIONAL); 99 columnDetail.setObject(this); 100 columnDetail.setExpression(str); 101 return new ColumnDetails[] { 102 columnDetail}; 103 104 } 105 106 111 public ParameterInfo[] getParameterInfo() throws DException { 112 ParameterInfo[] parameterInfo = super.getParameterInfo(); 113 for (int i = 0; i < parameterInfo.length; i++) { 114 if (parameterInfo[i].getQuestionMark()) { 115 parameterInfo[i].setDataType(Datatypes.BIGDECIMAL); 116 } 117 } 118 return parameterInfo; 119 120 } 121 122 128 129 134 135 140 141 147 148 154 155 161 162 167 public ColumnDetails[] getChildColumnDetails() { 168 return columnDetails; 169 } 170 171 176 177 180 185 186 191 public AbstractRowValueExpression[] getChilds() { 192 return new AbstractRowValueExpression[]{(AbstractRowValueExpression) _datetimevalueexpression2,(AbstractRowValueExpression) _numericvalueexpression0}; 193 } 194 195 204 public FieldBase getObject(int type1, int type2, Object result1, 205 Object result2) throws DException { 206 207 208 return GeneralPurposeStaticClass.datePlusTerm(type1,type2,result1,result2); 209 } 210 211 217 protected int getAppropriateDataType(Object object) throws DException { 218 int dataType1 = getDataTypeForByte(childs[0].getByteComparison(object)); 219 int dataType2 = getDataTypeForByte(childs[1].getByteComparison(object)); 220 221 if (dataType1 == DATE && 222 GeneralPurposeStaticClass.isfromNumericFamily(dataType2)) 223 return DATE; 224 225 if ( GeneralPurposeStaticClass.isfromNumericFamily(dataType1) && dataType2 == DATE) 226 return DATE; 227 228 if ( GeneralPurposeStaticClass.isfromNumericFamily(dataType1) && dataType2 == TIMESTAMP) 229 return TIMESTAMP; 230 231 if ( dataType1 == TIMESTAMP && GeneralPurposeStaticClass.isfromNumericFamily(dataType2) ) 232 return TIMESTAMP; 233 234 throw new DException("DSE87", 235 new Object [] {TypeConverter. 236 getDataBaseTypeName(dataType1), 237 TypeConverter.getDataBaseTypeName(dataType2)}); 238 } 239 240 } 241 | Popular Tags |