File: dbTransactionTests.Rout.save

package info (click to toggle)
r-cran-rpostgresql 0.6-2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 944 kB
  • sloc: ansic: 3,091; sh: 2,863; makefile: 7
file content (130 lines) | stat: -rw-r--r-- 4,402 bytes parent folder | download | duplicates (3)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130

R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> 
> ## 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)
+ }
Loading required package: RPostgreSQL
Loading required package: DBI
begin transaction in con1
create table rockdata in con1
PASS rockdata is visible through con1
PASS rockdata is invisible through con2
commit in con1
PASS rockdata is visible through con2
remove the table from con1
PASS rockdata is invisible through con2
begin transaction in con1
create table rockdata in con1
PASS rockdata is visible through con1
RollBack con1
PASS rockdata is invisible through con1
[1] TRUE
> 
> proc.time()
   user  system elapsed 
  0.539   0.039   0.715