From babd3f63604e2fd99fbdcf122b277d73d4c9d3bd Mon Sep 17 00:00:00 2001 From: lyh250-666 Date: Tue, 15 Oct 2024 17:32:04 +0800 Subject: [PATCH] opti:modify case when result type --- source/libs/parser/src/parTranslater.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index bb98891b70..e7a8d8e79c 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -3213,15 +3213,20 @@ static bool selectCommonType(SDataType* commonType, const SDataType* newType) { } else { resultType = gDisplyTypes[type2][type1]; } - if (resultType == -1) { + if (resultType == -1 || resultType == 0) { return false; - } else if (resultType == 0) { - return false; - } else { - commonType->type = resultType; - commonType->bytes = (commonType->bytes >= newType->bytes) ? commonType->bytes : newType->bytes; - return true; + } + if (resultType == commonType->type){ + 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) {