Convert floats to native objects as well.

FossilOrigin-Name: 7a033e34c4e334f5b663b7c5e2f10eb8e3fe9a8a0de96a64b352fc4a1e37b410
This commit is contained in:
Jonathan Schleifer 2012-10-08 18:54:16 +00:00
parent e55daef3c0
commit 9a98086e25

View file

@ -4,17 +4,21 @@ static id
convert_type(PGresult *res, int col, OFString *str) convert_type(PGresult *res, int col, OFString *str)
{ {
switch (PQftype(res, col)) { switch (PQftype(res, col)) {
case 16: /* BOOLOID */ case 16: /* BOOLOID */
if ([str isEqual: @"t"]) if ([str isEqual: @"t"])
return [OFNumber numberWithBool: YES]; return [OFNumber numberWithBool: YES];
else else
return [OFNumber numberWithBool: NO]; return [OFNumber numberWithBool: NO];
case 21: /* INT2OID */ case 21: /* INT2OID */
return [OFNumber numberWithInt16: (int16_t)[str decimalValue]]; return [OFNumber numberWithInt16: (int16_t)[str decimalValue]];
case 23: /* INT4OID */ case 23: /* INT4OID */
return [OFNumber numberWithInt32: (int32_t)[str decimalValue]]; return [OFNumber numberWithInt32: (int32_t)[str decimalValue]];
case 20: /* INT8OID */ case 20: /* INT8OID */
return [OFNumber numberWithInt64: (int64_t)[str decimalValue]]; return [OFNumber numberWithInt64: (int64_t)[str decimalValue]];
case 700: /* FLOAT4OID */
return [OFNumber numberWithFloat: [str floatValue]];
case 701: /* FLOAT8OID */
return [OFNumber numberWithDouble: [str doubleValue]];
} }
return str; return str;