Fixed backend crashing bug in apply_typmod()

Jan
This commit is contained in:
Jan Wieck 1999-01-04 12:53:23 +00:00
parent e3a5ac283b
commit c1855793df
1 changed files with 6 additions and 2 deletions

View File

@ -5,7 +5,7 @@
*
* 1998 Jan Wieck
*
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.6 1999/01/04 11:20:33 wieck Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.7 1999/01/04 12:53:23 wieck Exp $
*
* ----------
*/
@ -2377,7 +2377,7 @@ apply_typmod(NumericVar *var, int32 typmod)
}
i = scale + var->weight + 1;
if (var->ndigits > i)
if (i >= 0 && var->ndigits > i)
{
long carry = (var->digits[i] > 4) ? 1 : 0;
@ -2396,6 +2396,10 @@ apply_typmod(NumericVar *var, int32 typmod)
var->weight++;
}
}
else
{
var->ndigits = MAX(0, MIN(i, var->ndigits));
}
var->rscale = scale;
var->dscale = scale;