pike.git
/
lib
/
modules
/
Sql.pmod
/
pgsql_util.pmod
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/lib/modules/Sql.pmod/pgsql_util.pmod:961:
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 INT4RANGEOID: case INT8RANGEOID: case DATERANGEOID: case TSRANGEOID: case TSTZRANGEOID: if (_forcetext)