IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

Bugs sur jointures externes corrigés en 01F170069g


Sujet :

HyperFileSQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut Bugs sur jointures externes corrigés en 01F170069g
    Bonjour à tous,

    Pour ceux qui n'auraient pas rencontré le problème, je rappelle qu'Hyperfile souffre de nombreux bugs sur les jointures externes.

    Notamment, une condition dans une jointure externe (LEFT OUTER JOIN t1.a = T2.a) est traitée comme une condition dans la clause WHERE, ce qui est grave puisque cela nécessite de passer par des sous-requêtes en Hyperfile, à la différence des autres SGBD.

    Ces bugs ont notamment été abordés dans les sujets suivants :
    http://www.developpez.net/forums/d11...oin-multiples/
    http://www.developpez.net/forums/d10...d11-left-join/
    http://www.developpez.net/forums/d10...ures-externes/

    Certains de ces bugs ont été signalés depuis l'été 2010 à l'éditeur.
    Hé bien, alleluia, la dernière version 01F170069g semble régler ces différents problèmes, d'après nos premiers tests !

    Bon dimanche, Arnaud Benhamdine.

  2. #2
    Membre éprouvé Avatar de wimbish
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 416
    Points : 1 073
    Points
    1 073
    Par défaut
    Merci Arnaud pour cette info.
    c'est une bonne nouvelle !!
    Christophe.

    Tous les chemins mènent à Rome http://doc.pcsoft.fr/fr-FR/

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    J'ajouterai que le bug sur les SUM référencé ici est également résolu.
    (référencé en novembre 2008, je peux vous dire que je ne l'attendais plus...)

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Ouah finalement tout vient à point à qui sait attendre... longtemps

    En tout cas, on va pouvoir commencer à faire des requêtes dans les règles de l'art.

    En revanche, je n'ai pas encore testé si on pouvait faire des jointures externes sur plusieurs colonnes (autre limitation d'Hyperfile) : par exemple
    SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.c1 = t2.c1 AND t1.c2 = t2.c2)

    Jusqu'ici ça ne fonctionnait pas.

    Cdlt, Arnaud.

    Citation Envoyé par Bowen Voir le message
    J'ajouterai que le bug sur les SUM référencé ici est également résolu.
    (référencé en novembre 2008, je peux vous dire que je ne l'attendais plus...)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Citation Envoyé par Arnaud B. Voir le message
    En revanche, je n'ai pas encore testé si on pouvait faire des jointures externes sur plusieurs colonnes (autre limitation d'Hyperfile) : par exemple
    SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.c1 = t2.c1 AND t1.c2 = t2.c2)
    Alors ça je ne sais pas te dire, mais ça sent plutôt bon de ce coté là, car ça maintenant ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM TPrinc
    LEFT OUTER JOIN TSec ON TPrinc.ID = TSec.TPrincID AND TSec.ParDefaut = 1

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    ouah là on a fait un bond dans le futur

    Ils ont changé de chef de projet SGBD ou quoi ???

    Il faudra aussi tester si on peut désormais faire une jointure externe sur une sous-requête aliasée:
    SELECT * FROM (SELECT * FROM t1 WHERE t1.lib = 'toto') t1_alias LEFT OUTER JOIN t2 ON (t1_alias.c1 = t2.c1)

    Ca marchait pô non plus jusqu'alors...

    Citation Envoyé par Bowen Voir le message
    Alors ça je ne sais pas te dire, mais ça sent plutôt bon de ce coté là, car ça maintenant ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM TPrinc
    LEFT OUTER JOIN TSec ON TPrinc.ID = TSec.TPrincID AND TSec.ParDefaut = 1

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    En fait pour être précis, si j'en crois mes "archives", le bug sur les jointures externes avait été signalé par un autre développeur en juillet 2009.

    Je m'incline donc...

    Citation Envoyé par Bowen Voir le message
    J'ajouterai que le bug sur les SUM référencé ici est également résolu.
    (référencé en novembre 2008, je peux vous dire que je ne l'attendais plus...)

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 576
    Points
    2 576
    Par défaut
    J'ai toujours connu ce bug des conditions dans les clauses de jointures externes. Il a dû être signalé bien plus tôt qu'en 2009.

    Un exemple de signalement datant de 2006 : https://groups.google.com/forum/?fro...ev/HFR-CFXlTf8

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Je ne suis pas sûr qu'il s'agisse exactement du même problème...
    Mais si c'est le cas, ça bat le record de Bowen (2008), hourra

    Quoiqu'il en soit, je paye ma tournée virtuelle pour fêter ce correctif

    Citation Envoyé par vmolines Voir le message
    J'ai toujours connu ce bug des conditions dans les clauses de jointures externes. Il a dû être signalé bien plus tôt qu'en 2009.

    Un exemple de signalement datant de 2006 : https://groups.google.com/forum/?fro...ev/HFR-CFXlTf8

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Pour info, après tests, les bugs sur les jointures sur plusieurs colonnes et sur les jointures sur des sous-requêtes sont également corrigés !

  11. #11
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Bonjour,

    Enfin ! il y ont mis le temps...

    Merci Arnaud pour l'info.

    vers 2023 on pourra faire "UPDATE matable set (toto,titi)=(select col1,col2 from..."

    On peut toujours rêver...

    patrick

Discussions similaires

  1. condition sur jointure externe gauche
    Par paolo2002 dans le forum Développement
    Réponses: 0
    Dernier message: 21/06/2010, 16h47
  2. Help sur Jointure EXTERNE
    Par nomissamoht dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/03/2009, 17h18
  3. Aide sur jointure externe
    Par viny dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/09/2006, 17h51
  4. Réponses: 2
    Dernier message: 22/04/2005, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo