Changeset: 100fc99826b9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=100fc99826b9 Added Files: sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.SQL.bat sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.SQL.sh sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.stable.err sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.stable.out sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.sql sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.stable.err sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.stable.out sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.sql sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.stable.err sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.stable.out sql/test/testdb-upgrade-chain-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade-chain-hge/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade-chain/Tests/dump.SQL.py.src sql/test/testdb-upgrade-chain/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade-hge/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade/Tests/dump.SQL.py.src Removed Files: sql/test/testdb-upgrade-chain-hge/Tests/dump.SQL.py sql/test/testdb-upgrade-chain-hge/Tests/upgrade.SQL.py sql/test/testdb-upgrade-chain/Tests/dump.SQL.py sql/test/testdb-upgrade-chain/Tests/upgrade.SQL.py sql/test/testdb-upgrade-hge/Tests/dump.SQL.py sql/test/testdb-upgrade-hge/Tests/upgrade.SQL.py sql/test/testdb-upgrade/Tests/dump.SQL.py 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.out clients/R/Tests/deps-test.R 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 gdk/gdk_orderidx.c monetdb5/modules/mal/querylog.c sql/jdbc/tests/Tests/All sql/jdbc/tests/Tests/BugDecimalRound_Bug_3561.stable.out sql/test/BugTracker-2017/Tests/All Branch: default Log Message:
Merge with Dec2016 branch. diffs (truncated from 1205 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.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/deps-test.R b/clients/R/Tests/deps-test.R --- a/clients/R/Tests/deps-test.R +++ b/clients/R/Tests/deps-test.R @@ -1,10 +1,18 @@ -packages_required <- c('Rcpp', 'dplyr', 'Lahman', 'nycflights13') +packages_required <- c('Rcpp', 'dplyr', 'Lahman', 'nycflights13', 'gdata', 'survey') install_or_upgrade_packages <- function(lp) { np <- lp[!(lp %in% installed.packages()[,"Package"])] repos <- 'http://cran.rstudio.com/' if(length(np)) install.packages(np, repos=repos, quiet=T) update.packages(repos=repos, ask=F, oldPkgs=lp, quiet=T) + + # dev dplyr + if (packageVersion("devtools") < 1.6) { + install.packages("devtools") + } + devtools::install_github("hadley/lazyeval") + devtools::install_github("hadley/dplyr") + } 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 %>% _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list