Fix floats being read as doubles
The avro floating point numbers were processed as 8 byte values when they are 4 bytes values.
This commit is contained in:
@ -49,10 +49,12 @@ static json_t* read_and_pack_value(MAXAVRO_FILE *file, MAXAVRO_SCHEMA_FIELD *fie
|
|||||||
case MAXAVRO_TYPE_LONG:
|
case MAXAVRO_TYPE_LONG:
|
||||||
{
|
{
|
||||||
uint64_t val = 0;
|
uint64_t val = 0;
|
||||||
maxavro_read_integer(file, &val);
|
if (maxavro_read_integer(file, &val))
|
||||||
|
{
|
||||||
json_int_t jsonint = val;
|
json_int_t jsonint = val;
|
||||||
value = json_pack("I", jsonint);
|
value = json_pack("I", jsonint);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MAXAVRO_TYPE_ENUM:
|
case MAXAVRO_TYPE_ENUM:
|
||||||
@ -74,12 +76,24 @@ static json_t* read_and_pack_value(MAXAVRO_FILE *file, MAXAVRO_SCHEMA_FIELD *fie
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MAXAVRO_TYPE_FLOAT:
|
case MAXAVRO_TYPE_FLOAT:
|
||||||
|
{
|
||||||
|
float f = 0;
|
||||||
|
if (maxavro_read_float(file, &f))
|
||||||
|
{
|
||||||
|
double d = f;
|
||||||
|
value = json_pack("f", d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case MAXAVRO_TYPE_DOUBLE:
|
case MAXAVRO_TYPE_DOUBLE:
|
||||||
{
|
{
|
||||||
double d = 0;
|
double d = 0;
|
||||||
maxavro_read_double(file, &d);
|
if (maxavro_read_double(file, &d))
|
||||||
|
{
|
||||||
value = json_pack("f", d);
|
value = json_pack("f", d);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MAXAVRO_TYPE_BYTES:
|
case MAXAVRO_TYPE_BYTES:
|
||||||
|
Reference in New Issue
Block a user