apache / apache/iotdb

In select into statement, default encoding type may cause compatibility problems

Offen
#6,953 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
6.4k
Forks
1.2k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
115

Beschreibung

**Describe the bug**
1. In the documentation, GORILLA encoding type has a restriction. However, some select into statements will automatic create a timeseries with GORILLA encoding type(while the original timeseries is not a GORILLA type), which may be conflict with GORILLA's restriction.
If we can't change the default encoding type in select...into... clause, this problem may exist. Perhaps there will be other conficts in this select...into... clause.
2. I try to insert a -Double.MAX_VALUE point into the database, with other points all positive, which means the sum will not over Double; but it still returns -Infinity while I use a avg agggregation statement with group by.

**To Reproduce**
1. running the following iotdb-sql in iotdb-client:
SET STORAGE GROUP TO root.sg0;
CREATE TIMESERIES root.sg0.t1 WITH DATATYPE=DOUBLE, ENCODING=PLAIN;
INSERT INTO root.sg0(timestamp, t1) VALUES (9603, 0.732498412173562);
INSERT INTO root.sg0(timestamp, t1) VALUES (12492, 0.885314087043015);
INSERT INTO root.sg0(timestamp, t1) VALUES (39503, 0.08816170378111365);
INSERT INTO root.sg0(timestamp, t1) VALUES (25965, -1.7976931348623157E308);
INSERT INTO root.sg0(timestamp, t1) VALUES (78893, 0.47220064168506504);
select t1 into t0 from root.sg0
select avg(t1),avg(t0) from root.* group by([1000, 100000), 40000ms)

**Expected behavior**
1. There will be a -Double.MAX_VALUE in a GORILLA type timeseries(root.sg0.t0), which might be invalid? (I think there will also be a restriction in GORILLA while using Double datatype, but the document doesn't mention it)
2. There will be no Infinity exists in the result, since all single points are in the range of double, (though there is a point has a value of -Double.MAX_VALUE)

**Screenshots**
This is the result of the last query, which has -Infinity.
![image](https://user-images.githubusercontent.com/25195216/184050086-21002450-f58e-4d0c-838d-79e3617fc0a7.png)

This avg aggregation return -Infinity, while some other range of group by / sum aggregation will not return infinity.
![1660181660436](https://user-images.githubusercontent.com/25195216/184050285-88fe2821-6ad7-416b-8b3e-3a6c7d80b5b9.png)
![image](https://user-images.githubusercontent.com/25195216/184050315-16a0cdca-ef23-4c21-8b48-29936adac9df.png)

The encoding of t0 becomes GORILLA
![image](https://user-images.githubusercontent.com/25195216/184052028-8d9185c3-1a0f-4bee-9a32-cfa29003b1aa.png)

- OS: Windows 10
- Version: iotdb 0.13.1

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie damit, die SQL-Sequenz in iotdb-client zu reproduzieren, wobei Sie sich auf die Anweisung select...into, die GORILLA-Kodierung und avg mit group by konzentrieren. Verfolgen Sie die Pfade, die die automatische Erstellung von Zeitreihen und die Aggregation behandeln, um festzustellen, warum die Kodierungsbeschränkung und das Ergebnis -Infinity auftreten. Als erledigt gilt die Aufgabe, wenn die reproduzierten Fälle keine inkompatible Kodierung mehr erstellen und für endliche double-Werte nicht mehr -Infinity zurückgeben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.