[Bug] The CAST operator has a logical error causing precision loss when converting floating-point values.
- Langage dominant
- Java
- Étoiles
- 6.4k
- Forks
- 1.2k
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 115
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.
### Version
version 1.3.3 (Build: ad95a7e)
### Describe the bug and provide the minimal reproduce step
```
DROP DATABASE root.db0
CREATE DATABASE root.db0
CREATE TIMESERIES root.db0.t1 WITH datatype=FLOAT compressor=GZIP 'MAX_POINT_NUMBER'='6';
INSERT INTO root.db0(timestamp, t1) VALUES (1643027794590, 0.5522);
INSERT INTO root.db0(timestamp, t1) VALUES (1643027794600, 0.8044);
# query 1
select t1 from root.db0 where t1 <= 0.8044
# query 2
select t1 from root.db0 where cast(t1 as float) <= 0.8044
```
### What did you expect to see?
Query 1 returned result set: 0.5522 and 0.8044
Query 2 returned result set: 0.5522 and 0.8044
### What did you see instead?
Query 1 returned result set: 0.5522 and 0.8044
Query 2 returned result set: 0.5522
### Anything else?
Dear IoTDB team, When using the CAST operator to convert a FLOAT value to FLOAT, the value theoretically should remain unchanged. However, the above test case indicates that a logical error causing precision loss occurs after the CAST conversion.
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Exécutez la reproduction SQL de l’issue sur IoTDB 1.3.3 et comparez les deux résultats de requête. Suivez le traitement de l’expression CAST et le chemin de comparaison de FLOAT, puis vérifiez que convertir FLOAT en FLOAT préserve la valeur et que les deux lignes attendues sont renvoyées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- databases
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100