Skip to content

GitLab

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

Mise à jour terminée. Pour connaître les apports de la version 13.8.4 par rapport à notre ancienne version vous pouvez lire les "Release Notes" suivantes :
https://about.gitlab.com/releases/2021/02/11/security-release-gitlab-13-8-4-released/
https://about.gitlab.com/releases/2021/02/05/gitlab-13-8-3-released/

  • vidjil
  • vidjilvidjil
  • Issues
  • #4416

Closed
Open
Opened Jul 27, 2020 by Mikaël Salson@mikael-sOwner

Code quasi dupliqué et éliminiation de doublon

Dans sample_set.py, méthode index, on a :

    if config :
	query =[]
	
        query2 = db(
                (db.sequence_file.id == db.sample_set_membership.sequence_file_id)
                & (db.sample_set_membership.sample_set_id == sample_set_id)
            ).select(
                left=db.results_file.on(
                    (db.results_file.sequence_file_id==db.sequence_file.id)
                    & (db.results_file.config_id==str(config_id))
                    & (db.results_file.hidden == False)
                ), 
                orderby = db.sequence_file.id|~db.results_file.run_date
            )
        
	previous=-1
	for row in query2 :
	    if row.sequence_file.id != previous : 
		query.append(row)
		previous=row.sequence_file.id

    else:

        query = db(
                (db.sequence_file.id == db.sample_set_membership.sequence_file_id)
                & (db.sample_set_membership.sample_set_id == sample_set_id)
            ).select(
                left=db.results_file.on(
                    (db.results_file.sequence_file_id==db.sequence_file.id)
                    & (db.results_file.config_id==str(config_id))
                    & (db.results_file.hidden == False)
                    & (db.sample_set_membership.sequence_file_id == db.sequence_file.id)
                    & (db.sample_set.id == db.sample_set_membership.sample_set_id)
                )
            )

Plusieurs remarques/questions

  • La requête est quasi la même entre le if et le else. Ne peut-on pas factoriser ?
  • Le for à la fin du if sert à retirer des doublons. Est-ce encore utile ? Est-ce bien normal que la requête produise des doublons ?
  • Le else correspond au cas où on n'a pas de configuration en paramètre, et donc config_id vaut -1. Est-ce que (db.results_file.config_id==str(config_id)) va vraiment donner quelque chose ? Si non, pourquoi laisser cette requête ?

cc @duez

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: vidjil/vidjil#4416