File: dataTypeTests.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 (146 lines) | stat: -rw-r--r-- 5,036 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146

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.

> ## 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 integer, floatcolumn float);")
+ 
+     i <- as.integer(10)
+     j <- as.numeric(56.6)
+ 
+     sql <- paste("insert into tempostgrestable ",
+                  "values (",i, "," ,j ,") ", sep="")
+     res <- dbGetQuery(con, sql)
+ 
+ 
+     dat <- dbReadTable(con, "tempostgrestable")
+     dbRemoveTable(con, "tempostgrestable")
+     cat("Read Numeric values\n")
+ 
+     ## now test the types of the colums we got
+     stopifnot( class(dat[,1]) == "integer" )
+     stopifnot( class(dat[,2]) == "numeric" )
+     cat("GOOD -- all numeric types are as expected\n")
+ 
+     ## and test the values
+     stopifnot( identical( dat[1,1], i))
+     stopifnot( identical( dat[1,2], j))
+     cat("GOOD -- all numeric values are as expected\n")
+ 
+     ## Test the logical mapping
+     if (dbExistsTable(con, "testlogical"))
+         dbRemoveTable(con, "testlogical")
+     dbGetQuery(con,"create table testlogical (col1 boolean, col2 boolean)")
+ 
+     i <- as.logical(TRUE)
+     j <- as.logical(FALSE)
+ 
+     sql <- paste("insert into testlogical ",
+                  "values (",i, "," ,j ,") ", sep="")
+     res <- dbGetQuery(con, sql);
+ 
+     dat <- dbReadTable(con, "testlogical")
+     dbRemoveTable(con, "testlogical")
+     cat("Read Logical values\n")
+ 
+     ## now test the types of the colums we got
+     stopifnot( class(dat[,1]) == "logical" )
+     stopifnot( class(dat[,2]) == "logical" )
+     cat("GOOD -- all logical types are as expected\n")
+ 
+     ## and test the values
+     stopifnot( identical( dat[1,1], i))
+     stopifnot( identical( dat[1,2], j))
+     cat("GOOD -- all logical values are as expected\n")
+ 
+     ## Test the character mapping
+     if (dbExistsTable(con, "testchar"))
+         dbRemoveTable(con, "testchar")
+     dbGetQuery(con,"create table testchar (code char(3),city varchar(20),country text);")
+ 
+     i <- as.character("IN")
+     j <- as.character("Hyderabad")
+     k <- as.character("India")
+ 
+     sql <- paste("insert into testchar ",
+                  "values ('",i,"' , '",j ,"' , '",k,"') ", sep="")
+     res <- dbGetQuery(con, sql);
+ 
+     dat <- dbReadTable(con, "testchar")
+     cat("Read Character values\n")
+ 
+     ## now test the types of the colums we got
+     stopifnot( class(dat[,1]) == "character" )
+     stopifnot( class(dat[,2]) == "character" )
+     stopifnot( class(dat[,3]) == "character" )
+     cat("GOOD -- all character types are as expected\n")
+ 
+     ## and test the values
+     ##stopifnot( identical( dat[1,1], i))
+     stopifnot( identical( dat[1,2], j))
+     stopifnot( identical( dat[1,3], k))
+     cat("GOOD -- all character values are as expected\n")
+ 
+     dbRemoveTable(con, "testchar")
+     dbRemoveTable(con, "tempostgrestable")
+ 
+     dbDisconnect(con)
+     dbUnloadDriver(drv)
+ 
+     cat("DONE\n")
+ }
Loading required package: RPostgreSQL
Loading required package: DBI
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
> 
> proc.time()
   user  system elapsed 
  0.528   0.031   0.645