1 21 22 package org.apache.derby.iapi.sql.compile; 23 24 import org.apache.derby.iapi.services.loader.ClassFactory; 25 26 import org.apache.derby.iapi.services.compiler.MethodBuilder; 27 import org.apache.derby.iapi.services.compiler.LocalField; 28 29 import org.apache.derby.iapi.types.DataTypeDescriptor; 30 import org.apache.derby.iapi.types.DataValueDescriptor; 31 import org.apache.derby.iapi.types.TypeId; 32 33 import org.apache.derby.iapi.error.StandardException; 34 35 import org.apache.derby.iapi.reference.Limits; 36 37 41 42 public interface TypeCompiler 43 { 44 47 public static final int LONGINT_MAXWIDTH_AS_CHAR = 20; 49 50 public static final int INT_MAXWIDTH_AS_CHAR = 11; 52 53 public static final int SMALLINT_MAXWIDTH_AS_CHAR = 6; 55 56 public static final int TINYINT_MAXWIDTH_AS_CHAR = 4; 58 59 public static final int DOUBLE_MAXWIDTH_AS_CHAR = 54; 61 62 public static final int REAL_MAXWIDTH_AS_CHAR = 25; 64 65 public static final int DEFAULT_DECIMAL_PRECISION = Limits.DB2_DEFAULT_DECIMAL_PRECISION; 66 public static final int DEFAULT_DECIMAL_SCALE = Limits.DB2_DEFAULT_DECIMAL_SCALE; 67 public static final int MAX_DECIMAL_PRECISION_SCALE = Limits.DB2_MAX_DECIMAL_PRECISION_SCALE; 68 69 public static final int BOOLEAN_MAXWIDTH_AS_CHAR = 5; 70 71 public static final String PLUS_OP = "+"; 72 public static final String DIVIDE_OP = "/"; 73 public static final String MINUS_OP = "-"; 74 public static final String TIMES_OP = "*"; 75 public static final String SUM_OP = "sum"; 76 public static final String AVG_OP = "avg"; 77 public static final String MOD_OP = "mod"; 78 79 90 91 DataTypeDescriptor resolveArithmeticOperation( 92 DataTypeDescriptor leftType, 93 DataTypeDescriptor rightType, 94 String operator 95 ) 96 throws StandardException; 97 98 109 110 boolean comparable(TypeId otherType, 111 boolean forEquals, 112 ClassFactory cf); 113 114 115 116 129 boolean convertible(TypeId otherType, 130 boolean forDataTypeFunction); 131 132 141 boolean compatible(TypeId otherType); 142 143 153 154 boolean storable(TypeId otherType, ClassFactory cf); 155 156 163 String interfaceName(); 164 165 176 String getCorrespondingPrimitiveTypeName(); 177 178 185 String getPrimitiveMethodName(); 186 187 188 193 String getMatchingNationalCharTypeName(); 194 195 203 204 void generateNull(MethodBuilder mb); 205 206 207 222 void generateDataValue(MethodBuilder eb, LocalField field); 223 224 231 int getCastToCharWidth(DataTypeDescriptor dts); 232 233 } 234 | Popular Tags |