Skip to content
Snippets Groups Projects
Commit 020177a1 authored by Jean-Karim Heriche's avatar Jean-Karim Heriche
Browse files

Fix query to avoid return of duplicated datafiles.

parent e430010c
No related branches found
No related tags found
No related merge requests found
......@@ -37,7 +37,7 @@ DatafileHandle <- R6Class(
#' @param datafile A Datafile object
#' @return List of Datafile objects
get_parents = function(datafile) {
query <- "SELECT Parent_ID FROM Analysis_has_Data
query <- "SELECT UNIQUE Parent_ID FROM Analysis_has_Data
WHERE Child_ID = ?"
data <- self$dbConnection$get_data(query, list(datafile$ID))
if(length(data$ID)>0) {
......@@ -67,7 +67,7 @@ DatafileHandle <- R6Class(
if(length(analysis) == 0 || !('Analysis' %in% class(analysis))) {
stop("get_children() method requires an Analysis object")
}
query <- "SELECT Child_ID FROM Analysis_has_Data
query <- "SELECT UNIQUE Child_ID FROM Analysis_has_Data
WHERE Parent_ID = ? AND Analysis_ID = ?"
data <- self$dbConnection$get_data(query, list(datafile$ID, analysis$ID))
if(length(data$ID)>0) {
......@@ -94,7 +94,7 @@ DatafileHandle <- R6Class(
#' @param well A Well object
#' @return List of Datafile objects
get_all_by_well = function(well) {
query <- "SELECT D.* FROM Datafile AS D, Well_has_Data AS WhD
query <- "SELECT UNIQUE D.* FROM Datafile AS D, Well_has_Data AS WhD
WHERE WhD.Plate_ID = ? AND WhD.Well_position = ? AND
D.ID = WhD.Datafile_ID"
data <- self$dbConnection$get_data(query, list(well$plate_ID, well$position))
......@@ -120,7 +120,7 @@ DatafileHandle <- R6Class(
#' @param plate A Plate object
#' @return List of Datafile objects
get_all_by_plate = function(plate) {
query <- "SELECT D.* FROM Datafile AS D, Plate_has_Data AS PhD
query <- "SELECT UNIQUE D.* FROM Datafile AS D, Plate_has_Data AS PhD
WHERE PhD.Plate_ID = ? AND D.ID = PhD.Datafile_ID"
data <- self$dbConnection$get_data(query, list(plate$ID))
if(length(data$ID)>0) {
......@@ -148,13 +148,13 @@ DatafileHandle <- R6Class(
#' @return List of Datafile objects
get_all_by_analysis = function(analysis, category = NULL) {
if(is.null(category)) {
query <- "SELECT D.* FROM Datafile AS D, Analysis_has_Data AS AhD
query <- "SELECT UNIQUE D.* FROM Datafile AS D, Analysis_has_Data AS AhD
WHERE AhD.Analysis_ID = ? AND (D.ID = AhD.Parent_ID OR D.ID = AhD.Child_ID)"
} else if(category == 'input'){
query <- "SELECT D.* FROM Datafile AS D, Analysis_has_Data AS AhD
query <- "SELECT UNIQUE D.* FROM Datafile AS D, Analysis_has_Data AS AhD
WHERE AhD.Analysis_ID = ? AND D.ID = AhD.Parent_ID"
} else if(category == 'output'){
query <- "SELECT D.* FROM Datafile AS D, Analysis_has_Data AS AhD
query <- "SELECT UNIQUE D.* FROM Datafile AS D, Analysis_has_Data AS AhD
WHERE AhD.Analysis_ID = ? AND D.ID = AhD.Child_ID"
}
data <- self$dbConnection$get_data(query, list(analysis$ID))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment