Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
LabelsTower LabelsTower
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MaitresNageurs
  • README
  • LabelsTowerLabelsTower
  • Issues
  • #44

Closed
Open
Created Aug 01, 2020 by Elliot Richard@erichardDeveloper

Refactor search route

Problème :

Lorsque nous remplaçons les attributs du SELECT du SQL statement de la fonction get_selected_elements par * le système
de tri par étiquette cesse de fonctionner correctement (/test/script/run_doctest.sh ***Test Failed*** 6 failures.). 

Origine :

Elles sont multiple. 
Si number_of_mandatory_labels > 0
Le FROM utilise les tables LABEL et ELEMENT qui possèdent chacun un attribut id. La table qui apparaît en 
premier dans le  
FROM voit son id disparaître (comportement avec le SGBD sqlite3).
De plus get_selected_elements renvoie les attributs de la table ELEMENT et les attributs des tables jointes  
(LABEL et 
ELEMENT_LABEL)
Si number_of_mandatory_labels <= 0
La jointure entre ELEMENT et ELEMENT_LABEL crée des doublons chez les éléments qui portent plus d'un label.

Solution :

Elles sont multiple. 
Si number_of_mandatory_labels > 0
1. Supprimer la jointure avec LABEL car les id des labels sont déjà disponibles avec la table ELEMENT_LABEL 
   (id_element, 
   id_label).
2. Selectionner uniquement les attributs de la table ELEMENT (SELECT ELEMENT.*).
Si number_of_mandatory_labels <= 0
1. Garder le DISCTINCT dans le SELECT (SELECT DISTINCT ELEMENT.id, ELEMENT.*
2. Ajouter une CLAUSE GROUP BY (GROUP BY ELEMENT.id)
Edited Aug 03, 2020 by Elliot Richard
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking