apache / apache/iotdb

[Bug] There is a logical error in performing multiplication operations with a value of 0.

Ouverte
#14,291 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.