}
db_quote <- function(text) {
- return(paste('"',gsub('([^][[:alnum:][:space:]*?.,()<>;:/=+%-])','\\\\\\1',text),'"',sep=''))
+ return(paste('\'', gsub('([\'"])','\\1\\1',text),'\'',sep=''))
}
db_now <- function() {
return(v)
}
+db_get_version <- function() {
+ con <- db_start()
+ v <- db_cur_version(con)
+ db_stop(con)
+ return(v)
+}
+
db_add_version <- function(con, version, epoch) {
dbGetQuery(con,paste('INSERT INTO database_versions (version,version_date,base_epoch)'
,'VALUES (',as.integer(version),',',db_now(),',',as.integer(epoch),')'))
,db_quote(tolower(sysreq_text)),'LIKE r_pattern'))
db_stop(con)
if (length(results) == 0) {
- return(NA)
+ return(NULL)
}
return(results$depend_alias)
}
db_record_build <- function(package, deb_version, log, success=F) {
con <- db_start()
- dbGetQuery(con,paste('INSERT INTO builds'
+ dbGetQuery(con,paste('INSERT OR REPLACE INTO builds'
,'(package,r_version,deb_epoch,deb_revision,db_version,success,log)'
,'VALUES'
,'(',db_quote(package)
,'WHERE id = max_id'
,'AND builds.package =',db_quote(pkgname)))
db_stop(con)
+ if (length(build) == 0) {
+ return(NULL)
+ }
+ build$success <- as.logical(build$success)
return(build)
}
db_latest_build_version <- function(pkgname) {
build <- db_latest_build(pkgname)
- if (length(build) == 0) {
- return(NA)
+ if (is.null(build)) {
+ return(NULL)
}
return(version_new(build$r_version, build$deb_revision, build$deb_epoch))
}
db_latest_build_status <- function(pkgname) {
build <- db_latest_build(pkgname)
- if (length(build) == 0) {
- return(NA)
+ if (is.null(build)) {
+ return(NULL)
}
return(c(build$success,build$log))
}