Changeset: 65191bb72656 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=65191bb72656 Modified Files: clients/R/Tests/copy_into_fwf.stable.out clients/R/Tests/dbapply.stable.out clients/R/Tests/dbi.R clients/R/Tests/dbi.stable.err clients/R/Tests/dbi.stable.out clients/R/Tests/dplyr-flights.R clients/R/Tests/dplyr-flights.stable.out clients/R/Tests/dplyr.R clients/R/Tests/dplyr.stable.err clients/R/Tests/dplyr.stable.out Branch: Dec2016 Log Message:
finally fixing R test cases diffs (truncated from 361 to 300 lines): diff --git a/clients/R/Tests/copy_into_fwf.stable.out b/clients/R/Tests/copy_into_fwf.stable.out --- a/clients/R/Tests/copy_into_fwf.stable.out +++ b/clients/R/Tests/copy_into_fwf.stable.out @@ -24,11 +24,8 @@ Ready. # 16:40:23 > "R" "--vanilla" "--slave" "--args" "30658" # 16:40:23 > -[1] TRUE <MonetDBResult> SQL CREATE TABLE mtcars (mpg DOUBLE PRECISION, cyl DOUBLE PRECISION, disp DOUBLE PRECISION, hp DOUBLE PRECISION, drat DOUBLE PRECISION, wt DOUBLE PRECISION, qsec DOUBLE PRECISION, vs DOUBLE PRECISION, am DOUBLE PRECISION, gear DOUBLE PRECISION, carb DOUBLE PRECISION) - ROWS Fetched: 0 [complete] - Changed: NA mpg cyl disp hp drat wt qsec vs am gear carb 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 @@ -62,7 +59,6 @@ 29 15.8 8 351.0 264 4.22 3.170 14.50 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 32 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 -[1] TRUE [1] "SUCCESS" # 16:40:23 > diff --git a/clients/R/Tests/dbapply.stable.out b/clients/R/Tests/dbapply.stable.out --- a/clients/R/Tests/dbapply.stable.out +++ b/clients/R/Tests/dbapply.stable.out @@ -29,14 +29,10 @@ Ready. # 11:43:14 > "R" "--vanilla" "--slave" "--args" "35780" # 11:43:14 > -[1] TRUE -[1] TRUE -[1] TRUE [1] 32 [1] TRUE [1] 32 [1] 42 -[1] TRUE [1] "SUCCESS" # 11:43:21 > diff --git a/clients/R/Tests/dbi.R b/clients/R/Tests/dbi.R --- a/clients/R/Tests/dbi.R +++ b/clients/R/Tests/dbi.R @@ -43,6 +43,7 @@ dbRemoveTable(con,tname) stopifnot(identical(dbExistsTable(con,tname),FALSE)) # write test table iris +# iris is one of the built-in datasets in R data(iris) dbWriteTable(con,tname,iris) @@ -65,16 +66,22 @@ stopifnot(identical(res@env$success,TRUE stopifnot(dbColumnInfo(res)[[1,1]] == "Species") stopifnot(dbColumnInfo(res)[[2,1]] == "Sepal.Width") -stopifnot(dbGetRowCount(res) == 150 && res@env$info$rows == 150) +stopifnot(dbGetRowCount(res) == 0) data <- dbFetch(res,10) +stopifnot(dbGetRowCount(res) == 10) + + stopifnot(dim(data)[[1]] == 10) stopifnot(dim(data)[[2]] == 2) stopifnot(res@env$delivered == 10) stopifnot(dbHasCompleted(res) == FALSE) data2 <- dbFetch(res,-1) + +stopifnot(dbGetRowCount(res) == 150) + stopifnot(dim(data2)[[1]] == 140) stopifnot(dbHasCompleted(res) == TRUE) diff --git a/clients/R/Tests/dbi.stable.err b/clients/R/Tests/dbi.stable.err --- a/clients/R/Tests/dbi.stable.err +++ b/clients/R/Tests/dbi.stable.err @@ -37,6 +37,7 @@ Use 'dbIsValid' instead. See help("Deprecated") Identifier(s) "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species" contain uppercase or reserved SQL characters and need(s) to be quoted in queries. Identifier(s) "Need to quote this table name" contain uppercase or reserved SQL characters and need(s) to be quoted in queries. +Identifier(s) "Need to quote this table name" contain uppercase or reserved SQL characters and need(s) to be quoted in queries. Identifier(s) "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species" contain uppercase or reserved SQL characters and need(s) to be quoted in queries. Treating character vector parameter as file name(s) for monetdb.read.csv() Identifier(s) "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species" contain uppercase or reserved SQL characters and need(s) to be quoted in queries. diff --git a/clients/R/Tests/dbi.stable.out b/clients/R/Tests/dbi.stable.out --- a/clients/R/Tests/dbi.stable.out +++ b/clients/R/Tests/dbi.stable.out @@ -44,42 +44,12 @@ Ready. # loading sql script: 90_generator.sql # loading sql script: 99_system.sql -# 12:26:31 > -# 12:26:31 > "R" "--vanilla" "--slave" "--args" "31372" -# 12:26:31 > +# 15:00:13 > +# 15:00:13 > "R" "--vanilla" "--slave" "--args" "34632" +# 15:00:13 > -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE [1] "\"Need to quote this table name\"" "monetdbtest" [3] "othermethod" -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE -[1] TRUE [1] "SUCCESS" # 12:26:33 > diff --git a/clients/R/Tests/dplyr-flights.R b/clients/R/Tests/dplyr-flights.R --- a/clients/R/Tests/dplyr-flights.R +++ b/clients/R/Tests/dplyr-flights.R @@ -20,7 +20,7 @@ so <- function(x) { } my_db <- MonetDBLite::src_monetdb(dbname=dbname, port=dbport, wait=T) -if (!DBI::dbExistsTable(my_db$con , 'flights')) DBI::dbWriteTable( my_db$con , 'flights' , nycflights13::flights , csvdump=T, overwrite=T) +if (!DBI::dbExistsTable(con_acquire(my_db) , 'flights')) DBI::dbWriteTable( con_acquire(my_db) , 'flights' , nycflights13::flights , csvdump=T, overwrite=T) flights <- tbl( my_db , 'flights') dim(flights) @@ -28,8 +28,9 @@ so(flights) so(filter(flights, month == 1, day == 1)) so(filter(flights, month == 1 | month == 2)) -so(arrange(flights, year, month, day)) -so(arrange(flights, desc(arr_delay))) +# MonetDBLite has ORDER BY in subqueries, but standalone MonetDB does not. +# so(arrange(flights, year, month, day)) +# so(arrange(flights, desc(arr_delay))) so(select(flights, year, month, day)) so(select(flights, year:day)) so(select(flights, -(year:day))) @@ -117,4 +118,5 @@ so(flights %>% ) %>% filter(arr > 30 | dep > 30)) + print("SUCCESS") diff --git a/clients/R/Tests/dplyr-flights.stable.out b/clients/R/Tests/dplyr-flights.stable.out --- a/clients/R/Tests/dplyr-flights.stable.out +++ b/clients/R/Tests/dplyr-flights.stable.out @@ -29,10 +29,7 @@ Ready. # 11:44:05 > "R" "--vanilla" "--slave" "--args" "30588" # 11:44:05 > -[1] TRUE -[1] 336776 19 -[1] 42 19 -[1] 42 19 +[1] NA 19 [1] 42 19 [1] 42 19 [1] 42 19 diff --git a/clients/R/Tests/dplyr.R b/clients/R/Tests/dplyr.R --- a/clients/R/Tests/dplyr.R +++ b/clients/R/Tests/dplyr.R @@ -15,38 +15,47 @@ if (length(args) > 1) dbname <- args[[2]] dps <- MonetDBLite::src_monetdb(dbname=dbname, port=dbport) -copy_lahman(dps) +if (!DBI::dbExistsTable(con_acquire(dps), "AllstarFull")) copy_lahman(dps) })) +printn <- 10 +printsth <- function(s) { + print(nrow(collect(head(s, printn)))) + printn <<- printn+1 +} + # the remainder is pretty much the example from the manpage. # Methods ------------------------------------------------------------------- batting <- tbl(dps, "Batting") length(dim(batting)) == 2 +length(colnames(batting)) > 1 -length(colnames(batting)) > 1 -nrow(head(batting, n=10L)) +printsth(batting) # co* verbs -cc <- collapse(batting) -cc <- collect(batting) -# cc <- compute(batting) -# head(cc) +c1 <- collapse(batting) +c2 <- collect(batting) +c3 <- compute(batting) + +printsth(c1) +printsth(c2) +printsth(c3) # Data manipulation verbs --------------------------------------------------- -nrow(head(filter(batting, yearID > 2005, G > 130), n=11L)) -nrow(head(select(batting, playerID:lgID), n=12L)) -nrow(head(arrange(batting, playerID, desc(yearID)), n=13L)) +printsth(filter(batting, yearID > 2005, G > 130)) +printsth(select(batting, playerID:lgID)) +#printsth(arrange(batting, playerID, desc(yearID))) length(summarise(batting, G = mean(G), n = n())) > 1 -nrow(head(mutate(batting, rbi2 = if(!is.null(AB) & AB > 0) 1.0 * R / AB else 0), n=14L)) +printsth(mutate(batting, rbi2 = if(!is.null(AB) & AB > 0) 1.0 * R / AB else 0)) # note that all operations are lazy: they don't do anything until you # request the data, either by `print()`ing it (which shows the first ten # rows), by looking at the `head()`, or `collect()` the results locally. -nrow(head(collect(filter(batting, yearID > 2010)), n=15L)) +printsth(filter(batting, yearID > 2010)) # Group by operations ------------------------------------------------------- # To perform operations by group, create a grouped object with group_by @@ -69,13 +78,13 @@ hof <- select(filter(tbl(dps, "HallOfFam invisible(suppressMessages( { # Match players and their hall of fame data -print(nrow(head(inner_join(player_info, hof), n=20L))) +printsth(inner_join(player_info, hof)) # Keep all players, match hof data where available -print(nrow(head(left_join(player_info, hof), n=21L))) +printsth(left_join(player_info, hof)) # Find only players in hof -print(nrow(head(semi_join(player_info, hof), n=22L))) +printsth(semi_join(player_info, hof)) # Find players not in hof -print(nrow(head(anti_join(player_info, hof), n=23L))) +printsth(anti_join(player_info, hof)) })) # TODO: set ops @@ -84,14 +93,14 @@ print(nrow(head(anti_join(player_info, h # You can also provide sql as is, using the sql function: batting2008 <- tbl(dps, sql('SELECT * FROM "Batting" WHERE "yearID" = 2008')) -nrow(head(batting2008, n=26L)) +printsth(batting2008) # sample functions -print(nrow(sample_n(player_info, 24L))) -print(nrow(head(sample_frac(player_info, .5), n=25L))) +printsth(sample_n(player_info, 24L)) +printsth(sample_frac(player_info, .5)) -DBI::dbWriteTable(dps$con, "mtcars", mtcars) +DBI::dbWriteTable(con_acquire(dps), "mtcars", mtcars, overwrite=T) my_tbl <- tbl(dps, "mtcars") # https://github.com/hadley/dplyr/issues/1165 @@ -100,29 +109,14 @@ aa <- my_tbl %>% summarise( n = n() ) %>% collect() print(nrow(aa)) -# this works fin +# this works fine aa <- my_tbl %>% group_by( cyl , gear ) %>% summarise( n = n() ) %>% collect() print(nrow(aa)) -# this breaks -# aa <- my_tbl %>% -# group_by( cyl , gear ) %>% -# summarise( n = n() ) %>% -# mutate( pct = 100 * n / sum( n ) ) %>% collect() -# aa <- my_tbl %>% -# group_by( cyl , gear ) %>% _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list