1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
## dbListFields test
##
## Assumes that
## a) PostgreSQL is running, and
## b) the current user can connect
## both of which are not viable for release but suitable while we test
##
## only run this if this env.var is set correctly
if (Sys.getenv("POSTGRES_USER") != "" & Sys.getenv("POSTGRES_HOST") != "" & Sys.getenv("POSTGRES_DATABASE") != "") {
## try to load our module and abort if this fails
stopifnot(require(RPostgreSQL))
## load the PostgresSQL driver
drv <- dbDriver("PostgreSQL")
## connect to the default db
con <- dbConnect(drv,
user=Sys.getenv("POSTGRES_USER"),
password=Sys.getenv("POSTGRES_PASSWD"),
host=Sys.getenv("POSTGRES_HOST"),
dbname=Sys.getenv("POSTGRES_DATABASE"),
port=ifelse((p<-Sys.getenv("POSTGRES_PORT"))!="", p, 5432))
# create a table
res <- dbGetQuery(con, "CREATE SCHEMA testschema")
res <- dbGetQuery(con, "CREATE TABLE testschema.aa (pid integer, name text)")
res <- dbGetQuery(con, "CREATE TABLE aa (pk integer, v1 float not null, v2 float)" )
## run a simple query and show the query result
df <- dbListFields(con, "aa")
print(df)
if (length(df) == 3){
cat("PASS: 3 fields returned\n")
}else{
cat(paste("FAIL:", length(df), "fields returned\n"))
}
df <- dbListFields(con, c("testschema", "aa"))
print(df)
if (length(df) == 2){
cat("PASS: 2 fields returned\n")
}else{
cat(paste("FAIL:", length(df), "fields returned\n"))
}
## cleanup
cat("Removing \"AA\"\n")
dbRemoveTable(con, "aa")
dbGetQuery(con, "DROP TABLE testschema.aa")
dbGetQuery(con, "DROP SCHEMA testschema")
## and disconnect
dbDisconnect(con)
}
|