opti:case when else data type compatibility
This commit is contained in:
parent
bab99c7897
commit
521da82e14
|
@ -3220,22 +3220,26 @@ static bool selectCommonType(SDataType* commonType, const SDataType* newType) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// type 6
|
// type 6, float >= float, bool, tinyint, smallint, utinyint, usmallint
|
||||||
if ((commonType->type == TSDB_DATA_TYPE_FLOAT &&
|
if ((commonType->type == TSDB_DATA_TYPE_FLOAT &&
|
||||||
((newType->type >= TSDB_DATA_TYPE_BOOL && newType->type <= TSDB_DATA_TYPE_INT))) ||
|
((newType->type >= TSDB_DATA_TYPE_BOOL && newType->type < TSDB_DATA_TYPE_INT) ||
|
||||||
|
newType->type == TSDB_DATA_TYPE_UTINYINT || newType->type == TSDB_DATA_TYPE_USMALLINT))||
|
||||||
(newType->type == TSDB_DATA_TYPE_FLOAT &&
|
(newType->type == TSDB_DATA_TYPE_FLOAT &&
|
||||||
((commonType->type >= TSDB_DATA_TYPE_BOOL && commonType->type <= TSDB_DATA_TYPE_INT)))) {
|
((commonType->type >= TSDB_DATA_TYPE_BOOL && commonType->type < TSDB_DATA_TYPE_INT) ||
|
||||||
|
commonType->type == TSDB_DATA_TYPE_UTINYINT || commonType->type == TSDB_DATA_TYPE_USMALLINT))) {
|
||||||
*commonType = (commonType->type == TSDB_DATA_TYPE_FLOAT) ? *commonType : *newType;
|
*commonType = (commonType->type == TSDB_DATA_TYPE_FLOAT) ? *commonType : *newType;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//type 7
|
//type 7, double >= double bool, tinyint, smallint, int, utinyint, usmallint, uint,
|
||||||
if ((commonType->type == TSDB_DATA_TYPE_DOUBLE &&
|
if ((commonType->type == TSDB_DATA_TYPE_DOUBLE &&
|
||||||
((newType->type >= TSDB_DATA_TYPE_BOOL && newType->type <= TSDB_DATA_TYPE_BIGINT) ||
|
((newType->type >= TSDB_DATA_TYPE_BOOL && newType->type < TSDB_DATA_TYPE_BIGINT) ||
|
||||||
newType->type == TSDB_DATA_TYPE_FLOAT ||
|
newType->type == TSDB_DATA_TYPE_FLOAT ||
|
||||||
|
(newType->type >= TSDB_DATA_TYPE_UTINYINT && newType->type < TSDB_DATA_TYPE_UBIGINT) ||
|
||||||
newType->type == TSDB_DATA_TYPE_DOUBLE)) ||
|
newType->type == TSDB_DATA_TYPE_DOUBLE)) ||
|
||||||
(newType->type == TSDB_DATA_TYPE_DOUBLE &&
|
(newType->type == TSDB_DATA_TYPE_DOUBLE &&
|
||||||
((commonType->type >= TSDB_DATA_TYPE_BOOL && commonType->type <= TSDB_DATA_TYPE_BIGINT) ||
|
((commonType->type >= TSDB_DATA_TYPE_BOOL && commonType->type < TSDB_DATA_TYPE_BIGINT) ||
|
||||||
commonType->type == TSDB_DATA_TYPE_FLOAT ||
|
commonType->type == TSDB_DATA_TYPE_FLOAT ||
|
||||||
|
(commonType->type >= TSDB_DATA_TYPE_UTINYINT && commonType->type < TSDB_DATA_TYPE_UBIGINT) ||
|
||||||
commonType->type == TSDB_DATA_TYPE_DOUBLE))) {
|
commonType->type == TSDB_DATA_TYPE_DOUBLE))) {
|
||||||
*commonType = (commonType->type == TSDB_DATA_TYPE_DOUBLE) ? *commonType : *newType;
|
*commonType = (commonType->type == TSDB_DATA_TYPE_DOUBLE) ? *commonType : *newType;
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue