pike.git / lib / modules / Sql.pmod / pgsql_util.pmod

version» Context lines:

pike.git/lib/modules/Sql.pmod/pgsql_util.pmod:918:    value = (int)value[1];    value = Gmp.mpq(i * denom + (i >= 0 ? value : -value),    denom);    }    }    } else {    int nwords = cr->read_int16();    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;    if (magnitude > 0)    do    value *= NUMERIC_MAGSTEP;    while (--magnitude);    else if (magnitude < 0) {    for (sign = NUMERIC_MAGSTEP;    ++magnitude;    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;    }    break;    case INT8OID:case INT2OID:    case OIDOID:case INT4OID:    if (_forcetext) {    value = cr->read(collen);    if (!alltext)    value = (int)value;