[Bug] In version 1.3.3 of IoTDB, The trend calculation function DIFF does not correctly handle the non-ignore null-value attribute.
- 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.t1
CREATE DATABASE root.db0.t1
CREATE TIMESERIES root.db0.t1.c0 WITH datatype=INT32;
INSERT INTO root.db0.t1(timestamp, c0) VALUES (1641024000000, 0), (1641024005000, null), (1641024010000, 2), (1641024015000, 3), (1641024020000, null);
CREATE TIMESERIES root.db0.t1.c1 WITH datatype=INT32;
INSERT INTO root.db0.t1(timestamp, c1) VALUES (1641024000000, 0), (1641024005000, 1), (1641024010000, 2), (1641024015000, 3), (1641024020000, 4);
# query 1
select DIFF(c0) from root.db0.t1;
# query 2
select DIFF(c0, 'ignoreNull'='false') from root.db0.t1;
```
### What did you expect to see?
The expected result set for Query 1 is: **null, 2, 1**
The expected result set for Query 2 is: **null, null, null, 1, null**
### What did you see instead?
The actual result set returned by Query 1 is: **null, 2, 1**
The actual result set returned by Query 2 is: **null, 2, 1**
### Anything else?
Dear IoTDB team, In the above trend calculation function queries, Query 1 uses the `DIFF` function with the **ignore null-value** attribute enabled, while Query 2 has it disabled. However, the results returned by Query 2 indicate that null-value data was not included in the trend calculation, which does not meet expectations.
### 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 requêtes de reproduction minimale pour DIFF sur IoTDB 1.3.3 et localisez l’implémentation de la fonction DIFF ainsi que ses tests existants. Comparez le comportement avec ignoreNull activé et désactivé ; c’est terminé lorsque Query 2 renvoie null, null, null, 1, null, tandis que Query 1 reste null, 2, 1.
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é
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100