Files
MyGoNavi/internal
Syngnat 3adedff09c 🐛 fix(messaging): 避免字段元数据读取样本消息 (#913)
## 背景与问题

Kafka、MQTT 和 RocketMQ 的 `GetColumns` 会读取最多 20
条实际消息并推断动态字段。查看字段元数据因此可能产生等待、订阅或 Broker 消费活动,并要求额外消息读取权限。

## 变更点

- Kafka、MQTT 和 RocketMQ 的 `GetColumns` 只返回静态消息字段,不再调用 `FetchMessages`
- `GetAllColumns` 继续复用静态 `GetColumns`,批量字段加载也不会读取消息
- 保留显式 `SELECT` 查询消息及其动态结果字段行为
- 为三类消息服务补充回归断言,验证字段元数据读取次数为 0,并精确校验静态字段集合

## 影响范围

- 字段元数据与自动补全不再展示从样本消息推断出的动态字段
- 实际查询结果仍会根据消息内容返回动态字段
- 不影响显式消息查询、发布及 Topic 元数据能力

## 验证

- `go test ./internal/db -run
"Test(KafkaGetColumnsReturnsStaticFieldsWithoutFetchingMessages|MQTTQueryExecAndColumns|RocketMQQueryExecAndColumns)$"
-count=1`
- `go test ./internal/db -count=1`
- 独立对抗性代码审查通过;审查发现的字段断言子串误匹配已改为精确匹配

Closes #898
2026-08-11 09:05:12 +08:00
..