opti:modify case when result type

This commit is contained in:
lyh250-666 2024-10-15 17:32:04 +08:00
parent e7215c5a24
commit babd3f6360
1 changed files with 12 additions and 7 deletions

View File

@ -3213,15 +3213,20 @@ static bool selectCommonType(SDataType* commonType, const SDataType* newType) {
} else { } else {
resultType = gDisplyTypes[type2][type1]; resultType = gDisplyTypes[type2][type1];
} }
if (resultType == -1) { if (resultType == -1 || resultType == 0) {
return false; return false;
} else if (resultType == 0) { }
return false; if (resultType == commonType->type){
} else { return true;
commonType->type = resultType;
commonType->bytes = (commonType->bytes >= newType->bytes) ? commonType->bytes : newType->bytes;
return true;
} }
if(resultType == newType->type) {
*commonType = *newType;
return true;
}
commonType->type = resultType;
commonType->bytes = TYPE_BYTES[resultType];
return true;
} }
static EDealRes translateCaseWhen(STranslateContext* pCxt, SCaseWhenNode* pCaseWhen) { static EDealRes translateCaseWhen(STranslateContext* pCxt, SCaseWhenNode* pCaseWhen) {