diff --git a/src/adapter/driver/driver.c b/src/adapter/driver/driver.c index fffa1093..1d1fd2fc 100644 --- a/src/adapter/driver/driver.c +++ b/src/adapter/driver/driver.c @@ -917,12 +917,18 @@ int is_value_in_range(neu_type_e tag_type, int64_t value, double value_d, return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; } case NEU_TYPE_FLOAT: + if (write_type != NEU_TYPE_DOUBLE && write_type != NEU_TYPE_INT64) { + return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; + } if (result < (int64_t) -FLT_MAX || result > (int64_t) FLT_MAX) { return NEU_ERR_PLUGIN_TAG_VALUE_OUT_OF_RANGE; } else { return NEU_ERR_SUCCESS; } case NEU_TYPE_DOUBLE: + if (write_type != NEU_TYPE_DOUBLE && write_type != NEU_TYPE_INT64) { + return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; + } return NEU_ERR_SUCCESS; case NEU_TYPE_STRING: case NEU_TYPE_BOOL: @@ -967,12 +973,18 @@ int is_value_in_range(neu_type_e tag_type, int64_t value, double value_d, return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; } case NEU_TYPE_FLOAT: + if (write_type != NEU_TYPE_DOUBLE && write_type != NEU_TYPE_INT64) { + return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; + } if (value < (int64_t) -FLT_MAX || value > (int64_t) FLT_MAX) { return NEU_ERR_PLUGIN_TAG_VALUE_OUT_OF_RANGE; } else { return NEU_ERR_SUCCESS; } case NEU_TYPE_DOUBLE: + if (write_type != NEU_TYPE_DOUBLE && write_type != NEU_TYPE_INT64) { + return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; + } return NEU_ERR_SUCCESS; case NEU_TYPE_STRING: if (write_type != NEU_TYPE_STRING) {