in HSQL/src/org/hsqldb1/SetFunction.java [304:374]
static int getType(int setType, int type) throws HsqlException {
switch (setType) {
case Expression.COUNT :
return Types.INTEGER;
case Expression.AVG : {
switch (type) {
case Types.TINYINT :
case Types.SMALLINT :
case Types.INTEGER :
case Types.BIGINT :
return Types.BIGINT;
case Types.REAL :
case Types.FLOAT :
case Types.DOUBLE :
return Types.DOUBLE;
case Types.NUMERIC :
case Types.DECIMAL :
return Types.DECIMAL;
default :
return Types.NULL;
}
}
case Expression.SUM : {
switch (type) {
case Types.TINYINT :
case Types.SMALLINT :
case Types.INTEGER :
return Types.BIGINT;
case Types.BIGINT :
return Types.DECIMAL;
case Types.REAL :
case Types.FLOAT :
case Types.DOUBLE :
return Types.DOUBLE;
case Types.NUMERIC :
case Types.DECIMAL :
return Types.DECIMAL;
default :
return Types.NULL;
}
}
case Expression.MIN :
case Expression.MAX :
return type;
case Expression.EVERY :
case Expression.SOME :
return Types.BOOLEAN;
case Expression.STDDEV_POP :
case Expression.STDDEV_SAMP :
case Expression.VAR_POP :
case Expression.VAR_SAMP :
return Types.DOUBLE;
default :
throw Trace.error(Trace.INVALID_CONVERSION);
}
}