!3710 intervaltypmodin函数中使用unsigned int32类型存在问题
Merge pull request !3710 from ytwx1993/ytwx1993_0711_04
This commit is contained in:
@ -1111,7 +1111,7 @@ Datum intervaltypmodin(PG_FUNCTION_ARGS)
|
||||
|
||||
if (n == 1) {
|
||||
if (tl[0] != INTERVAL_FULL_RANGE)
|
||||
typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, (unsigned int32)tl[0]);
|
||||
typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, (unsigned int)tl[0]);
|
||||
else
|
||||
typmod = -1;
|
||||
} else if (n == 2) {
|
||||
@ -1123,9 +1123,9 @@ Datum intervaltypmodin(PG_FUNCTION_ARGS)
|
||||
ereport(WARNING,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d", tl[1], MAX_INTERVAL_PRECISION)));
|
||||
typmod = INTERVAL_TYPMOD(MAX_INTERVAL_PRECISION, (unsigned int32)tl[0]);
|
||||
typmod = INTERVAL_TYPMOD(MAX_INTERVAL_PRECISION, (unsigned int)tl[0]);
|
||||
} else
|
||||
typmod = INTERVAL_TYPMOD((unsigned int32)tl[1], (unsigned int32)tl[0]);
|
||||
typmod = INTERVAL_TYPMOD((unsigned int)tl[1], (unsigned int)tl[0]);
|
||||
} else {
|
||||
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid INTERVAL type modifier")));
|
||||
typmod = 0; /* keep compiler quiet */
|
||||
|
Reference in New Issue
Block a user