1 package com.daffodilwoods.daffodildb.server.sql99.common; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.serversystem.*; 6 import com.daffodilwoods.daffodildb.server.sql99.*; 7 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 8 import com.daffodilwoods.daffodildb.utils.*; 9 import com.daffodilwoods.daffodildb.utils.field.*; 10 import com.daffodilwoods.database.resource.*; 11 12 public class UserFunctionColumnDetails extends ColumnDetails { 13 private _Executer functionExecuter; 14 _StatementExecutionContext sec; 15 16 public Object run(Object object) throws DException { 17 _VariableValues vv = (_VariableValues) object; 18 _ServerSession currentSession = vv.getServerSession(); 19 if (functionExecuter == null) { 20 sec = currentSession.getStatementExecutionContext(); 21 sec.setVariableValues(vv); 22 functionExecuter = (_Executer) ( 23 (com.daffodilwoods.daffodildb.utils.parser.StatementExecuter)super.getObject()).run(sec); 24 } 25 CallResult cr = (CallResult) functionExecuter.execute(vv); 26 Object functionObject = cr.getResult(); 27 FieldBase fb = FieldUtility.getFieldForVariable(functionObject); 28 return FieldUtility.convertToAppropriateType(fb, getDatatype(), getSize(), null); 29 } 30 31 public Object clone() throws CloneNotSupportedException { 32 UserFunctionColumnDetails cd = new UserFunctionColumnDetails(); 33 cd.columnName = columnName; 34 cd.type = type; 35 cd.aliasName = aliasName; 36 cd.functionType = functionType; 37 cd.quantifier = quantifier; 38 cd.dataType = dataType; 39 cd.size = size; 40 cd.index = index; 41 cd.tableDetails = tableDetails; 42 cd.typeObject = typeObject; 43 cd.outerReference = outerReference; 44 cd.tableAliasArray = tableAliasArray; 45 cd.columnName = new ArrayList(); 46 cd.columnName.addAll(columnName); 47 cd.negativeFlag = negativeFlag; 48 cd.isTriggerCase = isTriggerCase; 49 cd.originalColumnName = originalColumnName; 50 cd.question = question; 51 cd.isCloned = true; 52 cd.functionExecuter = functionExecuter; 53 return cd; 54 } 55 } 56 | Popular Tags |