From 7c0cb302151e4b7ae449c7a778c84fdd09501ede Mon Sep 17 00:00:00 2001 From: "Roger D. Peng [audrey]" Date: Mon, 13 Aug 2007 08:55:32 -0400 Subject: [PATCH] Remove dbDisconnect calls from dbReorganize; add regression test Also add some messages to dbReorganize --- R/filehash-DB1.R | 12 +++++++----- tests/reg-tests.R | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/R/filehash-DB1.R b/R/filehash-DB1.R index 1ffb0b4..8641108 100644 --- a/R/filehash-DB1.R +++ b/R/filehash-DB1.R @@ -389,11 +389,12 @@ setMethod("dbReorganize", "filehashDB1", keys <- dbList(db) ## Copy all keys to temporary database + message("reorganizing database contents...") for(key in keys) dbInsert(tempdb, key, dbFetch(db, key)) - dbDisconnect(tempdb) - dbDisconnect(db) + ## dbDisconnect(tempdb) + ## dbDisconnect(db) status <- file.rename(tempdata, datafile) if(!isTRUE(status)) { @@ -402,13 +403,14 @@ setMethod("dbReorganize", "filehashDB1", tempdata) return(FALSE) } - message("original database has been disconnected; ", - "reload with 'dbInit'") + ## message("original database has been disconnected; ", + ## "reload with 'dbInit'") + message("database reorganized; reload database with 'dbInit'") TRUE }) -###################################################################### +################################################################################ ## Test system's ftell() hasWorkingFtell <- function() { diff --git a/tests/reg-tests.R b/tests/reg-tests.R index 8aa01b1..0c969e9 100644 --- a/tests/reg-tests.R +++ b/tests/reg-tests.R @@ -185,3 +185,36 @@ summary(b) +################################################################################ +## Check dbReorganize + +dbCreate("test_reorg", "DB1") +db <- dbInit("test_reorg", "DB1") + +set.seed(1000) +dbInsert(db, "a", 1) +dbInsert(db, "a", 1) +dbInsert(db, "a", 1) +dbInsert(db, "a", 1) +dbInsert(db, "b", rnorm(1000)) +dbInsert(db, "b", rnorm(1000)) +dbInsert(db, "b", rnorm(1000)) +dbInsert(db, "b", rnorm(1000)) +dbInsert(db, "c", runif(1000)) +dbInsert(db, "c", runif(1000)) +dbInsert(db, "c", runif(1000)) +dbInsert(db, "c", runif(1000)) + +summary(db$b) +summary(db$c) + +print(file.info(db@datafile)$size) + +dbReorganize(db) + +db <- dbInit("test_reorg", "DB1") + +print(file.info(db@datafile)$size) + +summary(db$b) +summary(db$c) -- 2.11.4.GIT