1 package com.daffodilwoods.daffodildb.server.sql99.dql.execution; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.sql99.common.*; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 7 import com.daffodilwoods.daffodildb.server.sql99.expression.*; 8 import com.daffodilwoods.daffodildb.utils.field.*; 9 import com.daffodilwoods.database.resource.*; 10 import com.daffodilwoods.daffodildb.server.sql99.expression.valueexpression; 11 12 22 public class AggregateCountAll implements _Aggregate, Datatypes { 23 24 27 private long count = 0; 28 32 private valueexpression column; 33 34 41 public AggregateCountAll(valueexpression column0) throws DException { 42 column = column0; 43 GeneralPurposeStaticClass.checkForValidColumnsInAggregatesMaxMinAndCount(column0.getColumnDetails(), "COUNT"); 44 if (column0.getCardinality() > 1) { 45 throw new DException("DSE4119", new Object [] {"AGGREGATE FUNCTION COUNT"}); 46 } 47 48 } 49 50 55 public void initialize() throws DException { 56 count = 0; 57 } 58 59 65 public Object getResult() throws DException { 66 return new FieldLiteral(new Long (count), LONG); 67 } 68 69 public void releaseResource() throws DException { 70 } 71 72 public valueexpression getValueExpression() { 73 return column; 74 } 75 76 84 85 public void addRecord(Object newObject) throws DException{ 86 if (((FieldBase)newObject).isNull()) { 87 return; 88 } 89 count++; 90 91 } 92 } 93 | Popular Tags |