Bug dans les contraintes sur les dictionnaires et la structure des clés
contraintes actuelles
dans un schéma en étoile, la taille des clés (en nombre de champs) doit s’allonger quand on descendant dans la hiérarchie
elle doit s’allonger strictement sur on descend vers une sous-table en lien 0-n, qui elle même a des descendants
car pour chaque enregistrement de la sous-table doit identifier de façon unique ses descendants
il y a donc une tolérance dans les feuilles de la hiérarchie
pour les sous-tables terminales, il n'y a pas de descendant à identifier de façon unique
il suffit de rattacher les enregistrements de la sous-table a son unique parent
exemples:
client et ses log
brin d'ADN (SpliceJunction) et la liste des ses base ADN
bug identifié
la tolérance n'est possible que si le dictionnaire parent assure lui-même l'unicité
ce dictionnaire parent doit être soit un dictionnaire Root (avec clé unique), soit un dictionnaire de sous-table avec clé strictement plus grande
sinon, si la table principale n'est pas Root et ses enregistrements ne sont pas unique
quand on lit un enregistrement principal avec la clé "key1", tous les enregistrements secondaires de même clé lui seront associés
le deuxième enregistrement principal de clé "key1" n'aura aucun enregistrement secondaire, ce qui est un bug
Correction à apporter
tout dictionnaire ayant une sous-table (Entity ou Table) doit assurer l'unicité de ses enregistrements, même s'il n'est pas Root
au moment de la lecture d'une base, si un dictionnaire n'est pas terminal et qu'il a une clé, cette clé doit être traitée comme unique et les instances doublons en trop doivent être ignorées avec un warning (comme c'est le cas pour les doublons d'un table Root)
en fait, seules les tables internes terminales (sans instances descendante) n'ont pas de contrainte d'unicité sur leur clé
Plus un détail: dans le bouton "Reload dictionary file", utiliser 'R' (et non 'l') comme accel key
Questions/Ideas
reproduire le bug
partir de SpliceJunction
supprimer le Root du dictionnaire principal SpliceJunction
dans la table principale SpliceJunction.txt, dupliquer quelques enregistrements
on va avoir les enregistrements dupliqués associés à des sous-table vides
Context
Khiops version: V10, V11
Correction in V11, no need to backport correction to V10
Description
Bug dans les contraintes sur les dictionnaires et la structure des clés
Correction à apporter
Plus un détail: dans le bouton "Reload dictionary file", utiliser 'R' (et non 'l') comme accel key
Questions/Ideas
Context