Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Bug in MariaDB

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von akretschmer, 18 Oktober 2014.

  1. akretschmer

    akretschmer Datenbank-Guru

    Falls jemand MariaDB nutzt:

    Code:
    test=*# select * from t1;
     id   
    ----   
      1   
      2   
      3   
    (3 rows)   
    
    Time: 0,173 ms
    test=*# select * from t2;
     id   
    ----   
      4   
      5   
      6   
    (3 rows)   
    
    Time: 0,167 ms
    test=*# select x.id, message from (select id from t1) x left join (select id, 1 as message from t2) y on x.id=y.id where coalesce(message,0) <> 0;   
     id | message   
    ----+---------   
    (0 rows)   
    
    Time: 0,359 ms
    
    MySQL bringt dasselbe Resultat, MariaDB als Fork von MySQL was anderes ;-)
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Mein Freund Erkan hat es auch schon reportet: https://mariadb.atlassian.net/browse/MDEV-6892
     
  3. BerndB

    BerndB Datenbank-Guru

    Wo ist das Problem ? ( Falls einer MariDB nutzt )

    Code:
    MariaDB [tmp]> select Version();
    +-----------------+
    | Version()       |
    +-----------------+
    | 10.0.12-MariaDB |
    +-----------------+
    1 row in set (0.00 sec)
    
    MariaDB [tmp]> select * from t1;
    +----+
    | id |
    +----+
    |  1 |
    |  2 |
    |  3 |
    +----+
    3 rows in set (0.00 sec)
    
    MariaDB [tmp]> select * from t2;
    +----+
    | id |
    +----+
    |  4 |
    |  5 |
    |  6 |
    +----+
    3 rows in set (0.00 sec)
    
    MariaDB [tmp]> select x.id, message from (select id from t1) x left join (select id, 1 as message from t2) y on x.id=y.id where coalesce(message,0) <> 0;
    +----+---------+
    | id | message |
    +----+---------+
    |  1 |       1 |
    |  2 |       1 |
    |  3 |       1 |
    +----+---------+
    3 rows in set (0.00 sec)
    
    MariaDB [tmp]>
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Das es falsch ist.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Hint: erweitere die Select-Liste um coalesce(message,0) und schau, ob die Spalte der Bedingungung <> 0 genügt.

    Code:
    test=*# select x.id, coalesce(message,0), message from (select id from t1) x left join (select id, 1 as message from t2)y on x.id=y.id;
     id | coalesce | message
    ----+----------+---------
      1 |  0 |
      2 |  0 |
      3 |  0 |
    (3 rows)
    
    Die Maria meint also daß 0 <> 0 ist. Meine jüngste Tochter, erste Klasse, erkennt den Fehler ;-)
     
  6. BerndB

    BerndB Datenbank-Guru

    Darum meine Frage.
    Code:
    MariaDB [tmp]> select x.id, coalesce(message,0), message from (select id from t1) x left join (select id, 1 as message from t2)y on x.id=y.id;
    +----+---------------------+---------+
    | id | coalesce(message,0) | message |
    +----+---------------------+---------+
    |  1 |                   1 |       1 |
    |  2 |                   1 |       1 |
    |  3 |                   1 |       1 |
    +----+---------------------+---------+
    3 rows in set (0.00 sec)
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Dann sitzt der Fehler ja noch tiefer. Was es nicht wirklich besser macht.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden