Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Teaser for "Detecting Optimization Bugs in Data...

Manuel Rigger
October 29, 2020
110

Teaser for "Detecting Optimization Bugs in Database Engines via Non-Optimizing Reference Engine Construction" at ESEC/FSE '20

Manuel Rigger

October 29, 2020
Tweet

More Decks by Manuel Rigger

Transcript

  1. Detecting Optimization Bugs in Database Engines via Non-optimizing Reference Engine

    Construction Manuel Rigger Zhendong Su ETH Zurich, Switzerland ESEC/FSE 2020 @RiggerManuel @ast_eth https://people.inf.ethz.ch/suz/
  2. 3 Database Management Systems (DBMSs) PostgreSQL SQLite is used in

    mobile phones, web browsers, OSs, TVs, …
  3. 4 PostgreSQL Database Management Systems (DBMSs) We found 159 unique

    bugs in these systems, 141 of which have been fixed
  4. 5 Optimization Bugs CREATE TABLE t0(c0 UNIQUE); INSERT INTO t0

    VALUES (-1) ; SELECT * FROM t0 WHERE t0.c0 GLOB '-*'; c0 -1 t0 {}  Optimizer https://www.sqlite.org/src/tktview?name=0f0428096f
  5. 6 Optimization Bugs CREATE TABLE t0(c0 UNIQUE); INSERT INTO t0

    VALUES (-1) ; SELECT * FROM t0 WHERE t0.c0 GLOB '-*'; c0 -1 t0 Optimizer -1 ✓ https://www.sqlite.org/src/tktview?name=0f0428096f
  6. 9 SELECT t0.c0 GLOB '-*' FROM t0; NoREC SELECT *

    FROM t0 WHERE t0.c0 GLOB '-*'; {} Optimizer
  7. 10 SELECT t0.c0 GLOB '-*' FROM t0; NoREC SELECT *

    FROM t0 WHERE t0.c0 GLOB '-*'; TRUE {} Optimizer Optimizer
  8. 11 SELECT t0.c0 GLOB '-*' FROM t0; NoREC SELECT *

    FROM t0 WHERE t0.c0 GLOB '-*'; TRUE {} Result should contain one row Optimizer Optimizer
  9. 12 SELECT t0.c0 GLOB '-*' FROM t0; NoREC SELECT *

    FROM t0 WHERE t0.c0 GLOB '-*'; TRUE {} Result should contain one row  Optimizer Optimizer