Running 'connectWithNull.R' [162s]
  Running 'createTableMixedCaseTest.R' [0s]
  Comparing 'createTableMixedCaseTest.Rout' to 'createTableMixedCaseTest.Rout.save' ...86a87,94
> Test should create foo1 and Foo2 tables
> Pass - Foo1 Table does not exist.
> Pass - foo1 Table exists.
> Pass - Foo2 Table exists.
> Pass - foo2 Table does not exist.
> Pass - "Foo2" Table does not exist.
> Pass - "foo2" Table does not exist.
> [1] TRUE
  Running 'dataTypeTests.R' [0s]
  Comparing 'dataTypeTests.Rout' to 'dataTypeTests.Rout.save' ...115a116,125
> Read Numeric values
> GOOD -- all numeric types are as expected
> GOOD -- all numeric values are as expected
> Read Logical values
> GOOD -- all logical types are as expected
> GOOD -- all logical values are as expected
> Read Character values
> GOOD -- all character types are as expected
> GOOD -- all character values are as expected
> DONE
  Running 'dateTZ.R' [0s]
  Comparing 'dateTZ.Rout' to 'dateTZ.Rout.save' ...89a90,163
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> testing UTC
> 
> **** Trying with  timestamp 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> 
> 
> **** Trying with  timestamp with time zone 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing Asia/Tokyo
> 
> **** Trying with  timestamp 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> 
> 
> **** Trying with  timestamp with time zone 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing Australlia/South
> 
> **** Trying with  timestamp 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> 
> 
> **** Trying with  timestamp with time zone 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing America/New_York
> 
> **** Trying with  timestamp 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> 
> 
> **** Trying with  timestamp with time zone 
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> [1] TRUE
  Running 'datetimeTests.R' [167s]
  Running 'datetimestampwrite.R' [166s]
  Running 'dbColumnInfo.R' [163s]
  Running 'dbExistsIssue.R' [0s]
  Comparing 'dbExistsIssue.Rout' to 'dbExistsIssue.Rout.save' ...56a57,60
> Does rockdata exist? [1] TRUE
> Does public.rockdata exist? [1] FALSE
> [1] "Removing rockdata\n"
> [1] TRUE
  Running 'dbExistsq.R' [162s]
  Running 'dbExistsqc.R' [0s]
  Comparing 'dbExistsqc.Rout' to 'dbExistsqc.Rout.save' ...95a96,108
> Does rock.data exist? 
> PASS: true
> create schema testschema and change the search_path
> Does rock.data exist? 
> PASS: false as the search_path changed
> Does testschema."rock.data" exist? 
> PASS: false as the testschema specified
> Does public."rock.data" exist? 
> PASS: true despite search_path change
> write in current schema
> Does rock.data exist? 
> PASS: true
> [1] TRUE
  Running 'dbGetQueryParams.R' [0s]
  Comparing 'dbGetQueryParams.Rout' to 'dbGetQueryParams.Rout.save' ...51a52,70
>    row.names  area    peri    shape  perm
> 1          6  7979 4010.15 0.167045  17.1
> 2          7  9333 4345.75 0.189651  17.1
> 3          8  8209 4344.75 0.164127  17.1
> 4         11  9364 4480.05 0.150944 119.0
> 5         13 10651 4036.54 0.228595  82.4
> 6         17 10962 4608.66 0.204314  58.6
> 7         18 10743 4787.62 0.262727  58.6
> 8         19 11878 4864.22 0.200071  58.6
> 9         20  9867 4479.41 0.144810  58.6
> 10        22 11876 4353.14 0.291029 142.0
>   row.names area    peri    shape  perm
> 1         6 7979 4010.15 0.167045  17.1
> 2         7 9333 4345.75 0.189651  17.1
> 3         8 8209 4344.75 0.164127  17.1
> 4        11 9364 4480.05 0.150944 119.0
> 5        20 9867 4479.41 0.144810  58.6
> [1] "Removing rockdata\n"
> [1] TRUE
  Running 'dbListFields.R' [0s]
  Comparing 'dbListFields.Rout' to 'dbListFields.Rout.save' ...59a60,65
> [1] "pk" "v1" "v2"
> PASS: 3 fields returned
> [1] "pid"  "name"
> PASS: 2 fields returned
> Removing "AA"
> [1] TRUE
  Running 'dbTransactionTests.R' [155s]
  Running 'dbWriteTableSchema.R' [0s]
  Comparing 'dbWriteTableSchema.Rout' to 'dbWriteTableSchema.Rout.save' ...52a53,65
>    row.names area    peri     shape  perm
> 1          1 4990 2791.90 0.0903296   6.3
> 2          2 7002 3892.60 0.1486220   6.3
> 3          3 7558 3930.66 0.1833120   6.3
> 4          4 7352 3869.32 0.1170630   6.3
> 5          5 7943 3948.54 0.1224170  17.1
> 6          6 7979 4010.15 0.1670450  17.1
> 7          7 9333 4345.75 0.1896510  17.1
> 8          8 8209 4344.75 0.1641270  17.1
> 9          9 8393 3682.04 0.2036540 119.0
> 10        10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
  Running 'dbWriteTableTest.R' [0s]
  Comparing 'dbWriteTableTest.Rout' to 'dbWriteTableTest.Rout.save' ...52a53,65
>    row.names area    peri     shape  perm
> 1          1 4990 2791.90 0.0903296   6.3
> 2          2 7002 3892.60 0.1486220   6.3
> 3          3 7558 3930.66 0.1833120   6.3
> 4          4 7352 3869.32 0.1170630   6.3
> 5          5 7943 3948.54 0.1224170  17.1
> 6          6 7979 4010.15 0.1670450  17.1
> 7          7 9333 4345.75 0.1896510  17.1
> 8          8 8209 4344.75 0.1641270  17.1
> 9          9 8393 3682.04 0.2036540 119.0
> 10        10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
  Running 'dbWriteTabletypes.R' [0s]
  Comparing 'dbWriteTabletypes.Rout' to 'dbWriteTabletypes.Rout.save' ...234a235,264
>   row.names            strings
> 1         1             normal
> 2         2              t\tab
> 3         3     v\vertical tab
> 4         4          n\newline
> 5         5 r carriage \retern
> 6         6      back \\ slash
> 7         7        f\form feed
> [1] "Removing rockdata\n"
> 1 	normal
> 2 	müß
> [1] "Removing rockdata\n"
> PASS:  could write small umlaut u and ligature sz
> 1 	normal
> 2 	kanji漢字
> [1] "Removing rockdata\n"
> PASS:  could write kanji
> Read Numeric values
> PASS -- all integer is as expected
> PASS integer value is preservedGOOD -- all numeric values are as expected
> Read Logical values
> GOOD -- all logical types are as expected
> GOOD -- all logical values are as expected
> Read Character values
> GOOD -- all character types are as expected
> GOOD -- all character values are as expected
> Check that read after write gets the same data types
> PASS -- Date type is as expected
> PASS -- TIMESTAMP is received as POSIXct
> DONE
  Running 'dbtemptable.R' [0s]
  Comparing 'dbtemptable.Rout' to 'dbtemptable.Rout.save' ...48a49,51
>   name
> 1  bar
> PASS -- ended without segmentation fault
  Running 'escape.R' [0s]
  Comparing 'escape.Rout' to 'escape.Rout.save' ...42a43,45
> [1] "aaa"
> [1] "aa''a"
> [1] TRUE
  Running 'loadDriverAndConnect.R' [0s]
  Comparing 'loadDriverAndConnect.Rout' to 'loadDriverAndConnect.Rout.save' ...39a40,43
>     datname encoding datallowconn
> 1 template0        6        FALSE
> 2 template1        6         TRUE
> [1] TRUE
  Running 'openSendQuery.R' [0s]
  Comparing 'openSendQuery.Rout' to 'openSendQuery.Rout.save' ...68a69,76
> create temp table tmptest with dbGetQuery
> [1] f1
> <0 rows> (or 0-length row.names)
> create temp table tmptest with dbSendQuery
> [1] f2
> <0 rows> (or 0-length row.names)
> PASS tmptest disappeared after disconnection
> [1] TRUE
  Running 'selectWithAlias.R' [0s]
  Comparing 'selectWithAlias.Rout' to 'selectWithAlias.Rout.save' ...53a54,66
>      ar      pe        sh    pr
> 1  4990 2791.90 0.0903296   6.3
> 2  7002 3892.60 0.1486220   6.3
> 3  7558 3930.66 0.1833120   6.3
> 4  7352 3869.32 0.1170630   6.3
> 5  7943 3948.54 0.1224170  17.1
> 6  7979 4010.15 0.1670450  17.1
> 7  9333 4345.75 0.1896510  17.1
> 8  8209 4344.75 0.1641270  17.1
> 9  8393 3682.04 0.2036540 119.0
> 10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
  Running 'utf.R' [0s]
  Comparing 'utf.Rout' to 'utf.Rout.save' ...67c67,70
< Skip because envirinmental variables are not set to tell the connection params.
---
> GOOD -- all encoding are as expected
> GOOD -- all encoding are as expected
> GOOD -- all encoding are as expected
> DONE
Running the tests in 'tests/connectWithNull.R' failed.
Complete output:
  > 
  > ## connectWithNull test
  > ##
  > ## test for the 'Issue 2' on the Google Code issue log
  > ## reported in April 2009, still open ?
  > ##
  > ## 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
  > ##
  > ## Dirk Eddelbuettel, 03 Oct 2009
  > 
  > ## 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))
  +     stopifnot(require(datasets))
  + 
  +     ## load the PostgresSQL driver
  +     drv <- dbDriver("PostgreSQL")
  + 
  +     ## connect to the default db -- replacing any of these with NULL will lead to
  +     ## a stop() call and a return to the R prompt rather than a segfault
  +     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))
  + 
  +     ## do we get here?
  +     print(con)
  + 
  +     ## and disconnect
  +     dbDisconnect(con)
  + }
  > 
  > proc.time()
     user  system elapsed 
     0.26    0.00    0.20 
Running the tests in 'tests/datetimeTests.R' failed.
Complete output:
  > 
  > ## Test of date and datetime types, based on earlier version in inst/devTests
  > ##
  > ## Dirk Eddelbuettel, 21 Oct 2008
  > 
  > dbTypeTests <- function(con, dateclass="timestamp without time zone") {
  +     cat("\n\n**** Trying with ", dateclass, "\n")
  + 
  +     if (dbExistsTable(con, "tempostgrestable"))
  +         dbRemoveTable(con, "tempostgrestable")
  + 
  +     dbGetQuery(con, paste("create table tempostgrestable (tt ", dateclass, ", zz integer);", sep=""))
  +     dbGetQuery(con, "insert into tempostgrestable values('2008-07-01 14:15:16.123', 1);")
  + 
  +     now <- ISOdatetime(2000,1,2,3,4,5.678)
  +     dbGetQuery(con, paste("insert into tempostgrestable values('", format(now), "', 2);", sep=""))
  + 
  +     res <- dbReadTable(con, "tempostgrestable")
  +     print(res)
  + 
  +     res <- dbSendQuery(con, "select tt from tempostgrestable;")
  +     data <- fetch(res, n=-1)
  +     print(dbColumnInfo(res))
  + 
  +     times <- data[,1]
  +     print(times)
  +     print(class(times[1]))
  + 
  +     print(diff(times))
  + 
  +     dbRemoveTable(con, "tempostgrestable")
  +     invisible(NULL)
  + }
  > 
  > ## 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))
  + 
  +     ## Force a timezone to make the tests comparable at different locations
  +     Sys.setenv("PGDATESTYLE"="German")
  +     Sys.setenv("TZ"="UTC")
  + 
  +     ## load the PostgresSQL driver
  +     drv <- dbDriver("PostgreSQL")
  +     ## can't print result as it contains process id which changes  print(summary(drv))
  + 
  +     ## 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))
  + 
  +     dbTypeTests(con, "timestamp")
  + #    dbTypeTests(con, "timestamp with time zone")
  + # output differs depending on the compute environment
  +     dbTypeTests(con, "date")
  + 
  +     dbDisconnect(con)
  + }
  > 
  > 
  > proc.time()
     user  system elapsed 
     0.17    0.06    0.21 
Running the tests in 'tests/datetimestampwrite.R' failed.
Complete output:
  > ## Test of data types, based on earlier version in inst/devTests
  > ##
  > ## Dirk Eddelbuettel, 21 Oct 2008
  > 
  > 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")
  +     ## can't print result as it contains process id which changes  print(summary(drv))
  + 
  +     ## 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))
  + 
  +     if (dbExistsTable(con, "tempostgrestable"))
  +         dbRemoveTable(con, "tempostgrestable")
  + 
  +     ## Test the numeric mapping
  +     dbGetQuery(con, "create table tempostgrestable (intcolumn date, floatcolumn timestamp with time zone);")
  + 
  +     sql <- paste("insert into tempostgrestable ",
  +                  "values ('2011-03-07', '2011-03-07 16:30:39') ")
  +     res <- dbGetQuery(con, sql)
  + 
  +     dat <- dbReadTable(con, "tempostgrestable")
  +     dbRemoveTable(con, "tempostgrestable")
  +     cat("Read Date and TIMESTAMP values\n")
  + 
  +     ## now test the types of the colums we got
  +     if( class(dat[1,1]) == "Date" ){
  +         cat("PASS -- Date type is as expected\n")
  +     }else{
  +         cat("FAIL -- Date type is other than Date: ")
  +         cat(class(dat[1,1]))
  +         cat("\n")
  +     }
  +     if( class(dat[1,2])[1] == "POSIXct" ){
  +         cat("PASS -- TIMESTAMP is received as POSIXct\n")
  +     }else{
  +         cat("FAIL -- TIMESTAMP is other than POSIXct: ")
  +         cat(class(dat[1,2]))
  +         cat("\n")
  +     }
  + 
  +     dbWriteTable(con, "tempostgrestable2", dat)
  +     dat2 <- dbReadTable(con, "tempostgrestable2")
  +     dbRemoveTable(con, "tempostgrestable2")
  +     cat("Check that read after write gets the same data types\n")
  + 
  +     ## now test the types of the colums we got
  +     if( class(dat2[1,1]) == "Date" ){
  +         cat("PASS -- Date type is as expected\n")
  +     }else{
  +         cat("FAIL -- Date type is other than Date: ")
  +         cat(class(dat2[1,1]))
  +         cat("\n")
  +     }
  +     if( class(dat2[1,2])[1] == "POSIXct" ){
  +         cat("PASS -- TIMESTAMP is received as POSIXct\n")
  +     }else{
  +         cat("FAIL -- TIMESTAMP is other than POSIXct: ")
  +         cat(class(dat2[1,2]))
  +         cat("\n")
  +     }
  + 
  + 
  +     dbDisconnect(con)
  +     dbUnloadDriver(drv)
  + 
  +     cat("DONE\n")
  + }
  > 
  > proc.time()
     user  system elapsed 
     0.14    0.06    0.18 
Running the tests in 'tests/dbColumnInfo.R' failed.
Complete output:
  > 
  > ## dbWriteTable 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
  > ##
  > ## Dirk Eddelbuettel, 10 Sep 2009
  > 
  > ## 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 TABLE aa (pk integer, v1 float not null, v2 float)" )
  + 
  +     ## run a simple query and show the query result
  +     res <- dbGetQuery(con, "INSERT INTO aa VALUES(3, 2, NULL)" )
  +     res <- dbSendQuery(con, "select pk, v1, v2, v1+v2 from aa")
  +     cat("dbColumnInfo\n")
  +     print(dbColumnInfo(res))
  +     print(dbColumnInfo(res))
  +     cat("SELECT result\n")
  +     df <- fetch(res, n=-1)
  +     print(df)
  + 
  +     ## cleanup
  +     cat("Removing \"AA\"\n")
  +     dbRemoveTable(con, "aa")
  +     ## and disconnect
  +     dbDisconnect(con)
  + }
  > 
  > proc.time()
     user  system elapsed 
     0.17    0.07    0.20 
Running the tests in 'tests/dbExistsq.R' failed.
Complete output:
  > 
  > ## dbExists test with schema name: reported as Issue 3 at
  > ## http://code.google.com/p/rpostgresql/issues/detail?id=3
  > ## and based on an earlier email by Prasenjit Kapat
  > ##
  > ## 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
  > ##
  > ## Dirk Eddelbuettel, 10 Sep 2009
  > 
  > ## 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))
  +     stopifnot(require(datasets))
  + 
  +     ## 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))
  + 
  +     if (dbExistsTable(con, "rock'data")) {
  +         cat("Removing rock'data\n")
  +         dbRemoveTable(con, "rock'data")
  +     }
  + 
  +     cat("Write rock'data\n")
  +     dbWriteTable(con, "rock'data", rock)
  + 
  +     ## run a simple dbExists
  +     cat("Does rock'data exist? ")
  +     print(res <- dbExistsTable(con, "rock'data"))
  + 
  +     ## this should return TRUE but did not -- does now after patch
  +     cat("Does \"public.rock'data\" exist? ")
  +     print(res <- dbExistsTable(con, "public.rock'data"))
  + 
  +     ## cleanup
  +     if (dbExistsTable(con, "rock'data")) {
  +         cat("Removing rock'data\n")
  +         dbRemoveTable(con, "rock'data")
  +     }
  + 
  +     ## and disconnect
  +     dbDisconnect(con)
  + }
  > 
  > proc.time()
     user  system elapsed 
     0.14    0.10    0.23 
Running the tests in 'tests/dbTransactionTests.R' failed.
Complete output:
  > 
  > ## dbWriteTable 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
  > ##
  > ## Dirk Eddelbuettel, 10 Sep 2009
  > 
  > ## 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))
  +     stopifnot(require(datasets))
  + 
  +     ## load the PostgresSQL driver
  +     drv <- dbDriver("PostgreSQL")
  + 
  +     ## create two independent connections
  +     con1 <- 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))
  + 
  +     con2 <- 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))
  + 
  + 
  +     if (dbExistsTable(con1, "rockdata")) {
  +         cat("Removing rockdata\n")
  +         dbRemoveTable(con1, "rockdata")
  +     }
  + 
  +     cat("begin transaction in con1\n")
  +     dbGetQuery(con1, "BEGIN TRANSACTION")
  +     cat("create table rockdata in con1\n")
  +     dbWriteTable(con1, "rockdata", rock)
  +     if (dbExistsTable(con1, "rockdata")) {
  +         cat("PASS rockdata is visible through con1\n")
  +     }else{
  +         cat("FAIL rockdata is invisible through con1\n")
  +     }
  +     if (dbExistsTable(con2, "rockdata")) {
  +         cat("FAIL rockdata is visible through con2\n")
  +     }else{
  +         cat("PASS rockdata is invisible through con2\n")
  +     }
  +     cat("commit in con1\n")
  +     dbCommit(con1)
  +     if (dbExistsTable(con2, "rockdata")) {
  +         cat("PASS rockdata is visible through con2\n")
  +     }else{
  +         cat("FAIL rockdata is invisible through con2\n")
  +     }
  + 
  +     cat("remove the table from con1\n")
  +     dbRemoveTable(con1, "rockdata")
  + 
  +     if (dbExistsTable(con2, "rockdata")) {
  +         cat("FAIL rockdata is visible through con2\n")
  +     }else{
  +         cat("PASS rockdata is invisible through con2\n")
  +     }
  + 
  +     cat("begin transaction in con1\n")
  +     dbGetQuery(con1, "BEGIN TRANSACTION")
  +     cat("create table rockdata in con1\n")
  +     dbWriteTable(con1, "rockdata", rock)
  +     if (dbExistsTable(con1, "rockdata")) {
  +         cat("PASS rockdata is visible through con1\n")
  +     }else{
  +         cat("FAIL rockdata is invisible through con1\n")
  +     }
  +     cat("RollBack con1\n")
  +     dbRollback(con1)
  +     if (dbExistsTable(con1, "rockdata")) {
  +         cat("FAIL rockdata is visible through con1\n")
  +     }else{
  +         cat("PASS rockdata is invisible through con1\n")
  +     }
  + 
  +     ## and disconnect
  +     dbDisconnect(con2)
  +     dbDisconnect(con1)
  + }
  > 
  > proc.time()
     user  system elapsed 
     0.21    0.06    0.23