Branch: Tag:

2018-03-10

2018-03-10 09:00:16 by Stephen R. van den Berg <srb@cuci.nl>

pgsql: Fix infinite loop in optimisation of native NUMERIC types.

968:    int magnitude = cr->read_sint(2);    int sign = cr->read_int16();    cr->consume(2); -  switch (nwords) { -  default: -  for (value = cr->read_int16(); -  --nwords; -  magnitude--) +  if (nwords) { +  for (value = cr->read_int16(); --nwords; magnitude--)    value = value * NUMERIC_MAGSTEP + cr->read_int16();    if (sign)    value = -value;
986:    sign *= NUMERIC_MAGSTEP);    value = Gmp.mpq(value, sign);    } -  break; -  case 1: -  for (value = cr->read_int16(); -  magnitude--; -  value *= NUMERIC_MAGSTEP); -  if (sign) -  value = -value; -  break; -  case 0:; +  } else    value = 0; -  } +     if (alltext)    value = (string)value;    }