pingcap / pingcap/tidb

Wrong result in Tiflash when processing timestamp

Aperta
#57,653 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

affects-8.4 affects-8.5 impact/inconsistency may-affects-5.4 may-affects-6.1 may-affects-6.5 may-affects-7.1 may-affects-7.5 may-affects-8.1 severity/major sig/execution type/bug
Lingua principale
Go
Stelle
40.6k
Fork
6.2k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
    c0 TIMESTAMP, 
    c1 DOUBLE, 
    c2 TIMESTAMP AS (c0) VIRTUAL NOT NULL, 
    c3 INT UNSIGNED NOT NULL, 
    c4 VARCHAR(255), 
    c5 JSON, 
    PRIMARY KEY (c3), 
    UNIQUE INDEX idx1 (c2, c0),
    INDEX idx2 (c4)
);

ALTER TABLE t1 SET TIFLASH REPLICA 1;
INSERT IGNORE INTO t1(c1, c3, c4, c5) 
VALUES 
    (-10.0, 2900, 'example', '{"key": "value"}'),
    (232.0, 3921, 'test', '{"key": "test"}'),
    (12222.0, 2123, 'demo', '{"key": "demo"}');
2. What did you expect to see? (Required)

I find that the returned information is inconsistent across two queries.

3. What did you see instead (Required)
mysql> SELECT /*+ READ_FROM_STORAGE(tikv[t1]) */ c0
    -> FROM t1
    -> WHERE c1 = -10 and c2 IS NOT NULL or JSON_UNQUOTE(JSON_EXTRACT(c5, '$.key')) = 'value';
+---------------------+
| c0                  |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+
1 row in set (0.05 sec)

mysql> SELECT /*+ READ_FROM_STORAGE(tiflash[t1]) */ c0
    -> FROM t1
    -> WHERE c1 = -10 and c2 IS NOT NULL or JSON_UNQUOTE(JSON_EXTRACT(c5, '$.key')) = 'value';
+------+
| c0   |
+------+
| NULL |
+------+
1 row in set (0.05 sec)
4. What is your TiDB version? (Required)

TiDB v8.4.0

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Esegui le query CREATE TABLE, INSERT e di confronto fornite su TiDB v8.4.0, utilizzando sia READ_FROM_STORAGE(tikv[t1]) sia READ_FROM_STORAGE(tiflash[t1]). Confronta i risultati dei timestamp e traccia il percorso TiFlash coinvolto nell'elaborazione di c0, c2 e del predicato JSON. Il lavoro è completato quando le query TiKV e TiFlash restituiscono informazioni sui timestamp coerenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
sql
Ambito
databases
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
32/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.