1 package com.daffodilwoods.daffodildb.server.sql99.dql.execution; 2 3 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*; 4 import com.daffodilwoods.daffodildb.server.serversystem.*; 5 import com.daffodilwoods.daffodildb.server.sql99.common.*; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 7 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.condition.*; 8 import com.daffodilwoods.daffodildb.server.sql99.dql.plan.table.*; 9 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; 10 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates.*; 11 import com.daffodilwoods.daffodildb.server.sql99.expression.datetimevalueexpression.*; 12 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*; 13 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 14 import com.daffodilwoods.database.resource.*; 15 import com.daffodilwoods.database.sqlinitiator.*; 16 17 28 29 public class DatedCondition extends AbstractBooleanValueExpression implements booleanvalueexpression, predicate, OperatorConstants { 30 31 34 35 private int Operator = -1; 36 37 40 41 private ColumnDetails cd; 42 43 46 47 private datetimevalueexpression dateTimeExpression; 48 49 public DatedCondition(int Operator0, String colName, datetimevalueexpression dateTimeExpression0) throws DException { 50 Operator = Operator0; 51 cd = new ColumnDetails(); 52 cd.setColumnName(new String [] {colName}); 53 cd.setType(TypeConstants.REFERENCE); 54 dateTimeExpression = dateTimeExpression0; 55 } 56 57 62 63 public int getPredicateType() throws com.daffodilwoods.database.resource.DException { 64 return Operator; 65 } 66 67 72 73 public void setColumnPredicates(_AllColumnPredicates allColumnPredicates) throws com.daffodilwoods.database.resource.DException { 74 SingleColumnPredicate singleColumnPredicate = new SingleColumnPredicate(); 75 singleColumnPredicate.setPredicate(this); 76 singleColumnPredicate.setColumnName(cd.getAppropriateColumn()); 77 allColumnPredicates.addSinglePredicate(new SingleColumnPredicate[] {singleColumnPredicate}); 78 } 79 80 86 87 public Object run(Object object) throws DException { 88 Object oper1 = ( (_VariableValues) object).getColumnValues(cd); 89 Object oper2 = dateTimeExpression.run(object); 90 int cmp = Check.getObject(oper1, oper2); 91 return booleanResult[Operator - 1][cmp + 2]; 92 93 } 94 95 public String toString() { 96 String a = Operator == OperatorConstants.GREATERTHAN ? " > " : " < "; 97 String str = cd.getColumn() + a + dateTimeExpression; 98 return str; 99 } 100 101 106 107 public AbstractRowValueExpression[] getChilds() { 108 AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {}; 109 return childs; 110 } 111 112 119 120 public long getEstimatedRows(long noOfRows) throws DException { 121 switch (Operator) { 122 case EQUALTO: 123 return noOfRows * CostFactorConstants.EQUALTO / 100; 124 case GREATERTHAN: 125 case LESSTHAN: 126 return noOfRows * CostFactorConstants.GREATERTHAN / 100; 127 case GREATERTHANEQUALTO: 128 case LESSTHANEQUALTO: 129 return noOfRows * CostFactorConstants.GREATERTHANEQUALTO / 100; 130 } 131 return noOfRows; 132 } 133 } 134 | Popular Tags |