| 1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates; 2 3 import com.daffodilwoods.daffodildb.server.sql99.dcl.sqlcontrolstatement.*; 4 import com.daffodilwoods.daffodildb.server.serversystem.*; 5 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*; 6 import com.daffodilwoods.daffodildb.server.sql99.dml.*; 7 import com.daffodilwoods.daffodildb.server.sql99.expression.*; 8 import java.util.*; 9 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 10 import com.daffodilwoods.daffodildb.server.sql99.common.*; 11 import com.daffodilwoods.database.resource.DException; 12 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 13 import com.daffodilwoods.database.utility.IntegerPool; 14 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.CostFactorConstants; 15 16 24 25 public class NotNullPredicate extends PredicateAbstract implements predicate, OperatorConstants { 26 27 private ColumnDetails column; 28 public NotNullPredicate(ColumnDetails column0) throws DException{ 29 column = column0.getExistingColumnDetails()[0]; 30 } 31 32 public AbstractRowValueExpression[] getChilds() { 33 AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {}; 34 return childs; 35 } 36 37 public ColumnDetails[] getColumnDetails() throws DException { 38 column.setAsBelongToAllowedPredicateColumn(); 39 return new ColumnDetails[]{column}; 40 } 41 42 43 public double getCost(long rowCount, boolean index) throws DException { 44 return rowCount * CostFactorConstants.NONINDEXPREDICATE / 100; 45 } 46 47 public int getPredicateType() throws DException { 48 return OperatorConstants.NOTNULL; 49 } 50 51 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 52 Object result = column.run(object); 53 boolean nullValue = true; 54 try { 55 nullValue = ((FieldBase)result).isNull(); 56 } 57 catch (ClassCastException ex) { 58 Object [] values = (Object [])result; 59 FieldBase[] fieldBases = GeneralPurposeStaticClass.changeIntoFieldBase(values); 60 for (int i = 0 , length = fieldBases.length ; i < length; i++) { 61 nullValue &= fieldBases[i].isNull(); 62 } 63 } 64 return nullValue ? IntegerPool.Integer1 : IntegerPool.Integer0 ; 65 } 66 67 public String toString() { 68 return column.getColumn() + " is not NULL "; 69 } 70 71 } 72 | Popular Tags |