Skip to content

Commit

Permalink
refactor data parsing to fix #31
Browse files Browse the repository at this point in the history
  • Loading branch information
MarkEdmondson1234 committed Mar 2, 2017
1 parent be956e2 commit 439ea30
Show file tree
Hide file tree
Showing 31 changed files with 27 additions and 37 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ Suggests:
knitr,
rmarkdown,
testthat
RoxygenNote: 5.0.1
RoxygenNote: 6.0.1
VignetteBuilder: knitr
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* Add support for standard SQL (#21)
* Add support for hms/timestamp class uploads (#27)
* Add support for partitioned tables (#28)
* Fix bug that only returned one row for single column queries (#31 - thanks Rob)


# bigQueryR 0.2.0 (CRAN)
Expand Down
24 changes: 15 additions & 9 deletions R/dataParseFunctions.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,25 @@ parse_bqr_query <- function(x){
)

schema <- x$schema$fields

template <- x$rows$f[[1]]$v

data_f <- as.data.frame(t(vapply(x$rows$f, function(x) x$v, template)), stringsAsFactors = FALSE)

## ffs
data_f <- as.data.frame(matrix(unlist(unlist(x$rows)),
ncol = length(schema$name),
byrow = TRUE),
stringsAsFactors = FALSE)

types <- tolower(schema$type)

out <- vector("list", length(types))
for(i in seq_along(types)){
## this needs to behave when only length 1
out[[i]] <- converter[[types[i]]](data_f[[i]])
converter_funcs <- converter[types]

for(i in seq_along(converter_funcs)){

data_f[,i] <- converter_funcs[[i]](data_f[, i])
}
names(out) <- schema$name

names(data_f) <- schema$name

out <- data_f

out <- as.data.frame(out, stringsAsFactors = FALSE)
attr(out, "jobReference") <- x$jobReference
Expand Down
1 change: 0 additions & 1 deletion man/bigQueryR.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_auth.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_create_table.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_delete_table.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_download_extract.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_extract_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_get_job.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_grant_extract_access.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_list_datasets.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_list_jobs.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_list_projects.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_list_tables.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_partition.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_query.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_query_asynch.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_table_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_table_meta.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_upload_data.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/bqr_wait_for_job.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/error.message.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/gcs_update_acl.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/idempotency.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/is.NullOb.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/is.error.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/myMessage.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/parse_bqr_query.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion man/rmNullObs.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions tests/testthat/test_query.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,14 @@ test_that("Can query test set", {
expect_equal(as.Date(result$Date), test_data$Date)
expect_equal(result$ID, test_data$ID)

})

test_that("Single query bug", {

result <- bqr_query("big-query-r","samples",
"SELECT repository.url FROM [publicdata:samples.github_nested] LIMIT 10")

## should be 10, not 1
expect_equal(nrow(result), 10)

})

0 comments on commit 439ea30

Please sign in to comment.