Skip to content

Commit 52f1c6b

Browse files
authored
Improve validate for zero-row dataframes (#119)
1 parent 0ec3cc5 commit 52f1c6b

7 files changed

Lines changed: 7 additions & 2 deletions

File tree

Rlabkey/DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ Copyright: Copyright (c) 2010-2018 LabKey Corporation
2020
LazyLoad: true
2121
Depends: httr, jsonlite
2222
LinkingTo: Rcpp
23-
Imports: Rcpp (>= 0.11.0)
23+
Imports: Rcpp (>= 0.11.0)

Rlabkey/NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Changes in 3.4.4
22
o Issue 53481: additional validation for assay run configurations.
3+
o Improve validation when a zero-row dataframe is passed to insertRows/updateRows/deleteRows
34

45
Changes in 3.4.3
56
o Bugfix to labkey.selectRows when group_concat based field has a NULL value. Related to github issue #112

Rlabkey/R/labkey.deleteRows.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ labkey.deleteRows <- function(baseUrl=NULL, folderPath, schemaName, queryName, t
2626
if (missing(schemaName)) stop (paste("A value must be specified for schemaName."))
2727
if (missing(queryName)) stop (paste("A value must be specified for queryName."))
2828
if (missing(toDelete)) stop (paste("A value must be specified for toDelete."))
29+
if (nrow(toDelete) == 0) stop (paste("toDelete must contain at least one row."))
2930
if (!missing(options) & !is.list(options))
3031
stop (paste("The options parameter must be a list data structure."))
3132

Rlabkey/R/labkey.importRows.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ labkey.importRows <- function(baseUrl=NULL, folderPath, schemaName, queryName, t
2626
if (missing(schemaName)) stop (paste("A value must be specified for schemaName."))
2727
if (missing(queryName)) stop (paste("A value must be specified for queryName."))
2828
if (missing(toImport)) stop (paste("A value must be specified for toImport."))
29+
if (nrow(toImport) == 0) stop (paste("toImport must contain at least one row."))
2930

3031
## normalize the folder path
3132
folderPath <- encodeFolderPath(folderPath)

Rlabkey/R/labkey.insertRows.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ labkey.insertRows <- function(baseUrl=NULL, folderPath, schemaName, queryName, t
2323
if (missing(schemaName)) stop (paste("A value must be specified for schemaName."))
2424
if (missing(queryName)) stop (paste("A value must be specified for queryName."))
2525
if (missing(toInsert)) stop (paste("A value must be specified for toInsert."))
26+
if (nrow(toInsert) == 0) stop (paste("toInsert must contain at least one row."))
2627
if (!missing(options) & !is.list(options))
2728
stop (paste("The options parameter must be a list data structure."))
2829

Rlabkey/R/labkey.updateRows.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ labkey.updateRows <- function(baseUrl=NULL, folderPath, schemaName, queryName, t
2626
if (missing(schemaName)) stop (paste("A value must be specified for schemaName."))
2727
if (missing(queryName)) stop (paste("A value must be specified for queryName."))
2828
if (missing(toUpdate)) stop (paste("A value must be specified for toUpdate."))
29+
if (nrow(toUpdate) == 0) stop (paste("toUpdate must contain at least one row."))
2930
if (!missing(options) & !is.list(options))
3031
stop (paste("The options parameter must be a list data structure."))
3132

Rlabkey/R/makeDF.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ jsonEncodeRowsAndParams <- function(rows, params, na=NULL)
240240
p1 <- toJSON(params, auto_unbox=TRUE, digits = NA) # digits = NA to avoid trimming values (Issue 51160)
241241
cnames <- colnames(rows)
242242
p3 <- NULL
243-
for(j in 1:nrows)
243+
for(j in seq_len(nrows))
244244
{
245245
cvalues <- as.list(rows[j,])
246246
names(cvalues) <- cnames

0 commit comments

Comments
 (0)