db_start <- function() {
drv <- dbDriver('SQLite')
+ if (is.null(drv)) stop("db_start: Could not access driver for SQLite.\n")
con <- dbConnect(drv, dbname=file.path(cache_root,'cran2deb.db'))
+ if (is.null(con)) stop("db_start: Could open connection to file 'cran2deb.db' in directory",cache_root,".\n")
if (!dbExistsTable(con,'sysreq_override')) {
dbGetQuery(con,paste('CREATE TABLE sysreq_override ('
,' depend_alias TEXT NOT NULL'
return(as.integer(dbGetQuery(con, 'SELECT max(version) FROM database_versions')[[1]]))
}
+## this is just wrong. It should never return anything greater than 0.
db_base_epoch <- function(con) {
- return(as.integer(dbGetQuery(con,
- paste('SELECT max(base_epoch) FROM database_versions'
- ,'WHERE version IN (SELECT max(version) FROM database_versions)'))[[1]]))
+ return(0)
+### return(as.integer(dbGetQuery(con,
+### paste('SELECT max(base_epoch) FROM database_versions'
+### ,'WHERE version IN (SELECT max(version) FROM database_versions)'))[[1]]))
}
db_get_base_epoch <- function() {
}
db_date_format <- '%Y-%m-%d'
-db_time_format <- '%H:%M:%OS %Z'
+db_time_format <- '%H:%M:%OS'
db_record_build <- function(package, deb_version, log, success=F) {
# if the log is more than 1kB, only keep the last 1kB.
return(db_cleanup_builds(build))
}
-db_cleanup_builds <- function(build) {
+db_cleanup_builds <- function(build,verbose=FALSE) {
build$success <- as.logical(build$success)
#o <-options(digits.secs = 6)
dt <- as.POSIXct(strptime(paste(as.character(build[,"date_stamp"]), as.character(build[,"time_stamp"])),
build$time_stamp <- NULL
build$date_stamp <- NULL
newdf <- data.frame(build, date_stamp=dt)
+ if (verbose) {
+ cat("db_cleanup_builds: newdf")
+ print(newdf)
+ }
#print(newdf[, -grep("log", colnames(newdf))])
#options(o)
#print(newdf[, -grep("log", colnames(newdf))])
return(newdf)
}
-db_latest_build <- function(pkgname) {
+db_latest_build <- function(pkgname,verbose=FALSE,debug=FALSE) {
+ if (verbose) {cat("db_latest_build: pkgname:",pkgname,"\n")}
con <- db_start()
+ if (debug) {
+ cat(" connection was opened\n")
+ }
build <- dbGetQuery(con, paste('SELECT * FROM builds'
,'NATURAL JOIN (SELECT package,max(id) AS max_id FROM builds'
, 'WHERE system =',db_quote(which_system)
, 'GROUP BY package) AS last'
,'WHERE id = max_id'
,'AND builds.package =',db_quote(pkgname)))
+ if (debug) {
+ cat(" dbGetQuery was executed:\n")
+ cat(" print(build):\n")
+ print(build)
+ }
db_stop(con)
+ if (debug) {
+ cat(" connection was closed\n")
+ }
if (length(build) == 0) {
return(NULL)
+ } else if (0 == nrow(build)) {
+ return(NULL)
}
return(db_cleanup_builds(build))
}
-db_latest_build_version <- function(pkgname) {
+db_latest_build_version <- function(pkgname,verbose=FALSE) {
+ if (verbose) {cat("db_latest_build_version: pkgname:",pkgname,"\n")}
build <- db_latest_build(pkgname)
if (is.null(build)) {
return(NULL)
+ } else if (0 == nrow(build)) {
+ return(NULL)
}
- return(version_new(build$r_version, build$deb_revision, build$deb_epoch))
+ return(version_new(build$r_version, pkgname=pkgname, build$deb_revision, build$deb_epoch))
}
-db_latest_build_status <- function(pkgname) {
+db_latest_build_status <- function(pkgname,verbose=FALSE) {
+ if (verbose) {cat("db_latest_build_status: pkgname:",pkgname,"\n")}
build <- db_latest_build(pkgname)
if (is.null(build)) {
return(NULL)
+ } else if (0 == nrow(build)) {
+ return(NULL)
}
return(list(build$success,build$log))
}
return(packages)
}
+db_epoch_override <- function(pkgname) {
+ con <- db_start()
+ epoch.override <- dbGetQuery(con,paste('SELECT epoch FROM epoch_override WHERE package = ',db_quote(pkgname)))
+ print(c("pkgname: ",pkgname))
+ print(epoch.override)
+ db_stop(con)
+ if(NROW(epoch.override)>=1) {
+ return(epoch.override$epoch[1])
+ } else {
+ return(0)
+ }
+}
+
+
db_blacklist_reasons <- function () {
con <- db_start()
packages <- dbGetQuery(con,'SELECT package,explanation from blacklist_packages group by explanation')