[Bug] There is a logical error in performing multiplication operations with a value of 0.
- 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=INT32;
INSERT INTO root.db0(timestamp, t1) VALUES (1641024000000, 0);
# query 1
SELECT t1 FROM root.db0 WHERE (-1) * t1 == 0;
# query 2
SELECT t1 FROM root.db0 WHERE (-1) * t1 == -0.0;
```
### What did you expect to see?
Query 1 returned result set: **0**
Query 2 returned result set: **0**
### What did you see instead?
Query 1 returned result set: **empty set**
Query 2 returned result set: **0**
### Anything else?
Dear IoTDB team, In the query above, the result of the expression `(-1) * t1` is `-0.0`. In principle, this value should be equivalent to `0`. However, a comparison of the results from Query 1 and Query 2 indicates that the two are not equal. The same logical error also exists in division operations.
### 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
Commencez par exécuter les deux requêtes SQL IoTDB fournies avec la version 1.3.3 et comparez les résultats de leurs prédicats. Suivez ensuite l’évaluation des expressions utilisée par la multiplication et la division, puis vérifiez que les comparaisons impliquant 0 et -0.0 produisent le résultat attendu sans modifier les autres comportements des requêtes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, sql
- Domaine
- databases
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100