influxdata / influxdata/influxdb-client-java
Wrong column type when use wildcard with @Measurement
还没有人认领这个 Issue。
- 主要语言
- Java
- 星标
- 477
- 派生
- 129
- PR 合并指标
- 30 天内没有已合并 PR
描述
Steps to reproduce:
@Getter
public abstract class InfluxDbDefaultPoint<T> {
@Column(timestamp = true)
private final Instant time;
@Column(tag = true)
private final Long deviceId;
@Column
private final T value;
public InfluxDbDefaultPoint(final Long deviceId, final T value) {
this.time = Instant.now();
this.deviceId = deviceId;
this.value = value;
}
}
@Measurement(name = "temperature")
public class InfluxDbTemperaturePoint extends InfluxDbDefaultPoint<Double> {
public InfluxDbTemperaturePoint(Long deviceId, Double value) {
super(deviceId, value);
}
}
public static void main(String[] args) {
final InfluxDBClient database = InfluxDBClientFactory.create("http://localhost:8200","<token>".toCharArray(),"<org>","<bucket>");
database.getWriteApiBlocking().writeMeasurement(WritePrecision.S, new InfluxDbTemperaturePoint(0L,30.0));
}
When I try to send such a prepared model to influxdb, I get an error: HTTP status code: 422; Message: failure writing points to database: partial write: field type conflict: input field "value" on measurement "temperature" is type string, already exists as type float dropped=1.
Previously I had an InfluxDbTemperaturePoint object without wildcard and it worked fine - it saved double
Expected behavior:
It should save the value 30.0 as float/dobule.
Actual behavior:
It tries to save the value 30.0 as a string.
Specifications:
- Client Version: 6.9.0
- InfluxDB Version: v2.7.1
- JDK Version: Java(TM) SE Runtime Environment (build 19.0.2+7-44)
- Platform: Windows
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,通过 writeMeasurement 使用 @Measurement、@Column、InfluxDbDefaultPoint 和 InfluxDbTemperaturePoint 示例重现该问题。跟踪通配符泛型字段值在序列化前是如何分类的,然后验证 30.0 被写入为数值字段而不是字符串,同时不破坏非通配符情况。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100