1
1
using SQLite
2
- using Base. Test, CSV, DataStreams, DataFrames, NullableArrays
2
+ using Base. Test, DataStreams, DataFrames, NullableArrays, WeakRefStrings
3
3
4
4
import Base: + , ==
5
5
6
- if ! isdefined (Core, :String )
7
- typealias String UTF8String
8
- end
9
-
10
6
a = SQLite. DB ()
11
7
12
8
temp = tempname ()
@@ -19,107 +15,9 @@ dbfile2 = joinpath(dirname(@__FILE__),"test.sqlite")
19
15
cp (dbfile, dbfile2; remove_destination= true )
20
16
db = SQLite. DB (dbfile2)
21
17
22
- # DataStreams interface tests
23
- source_table = " employee"
24
- sink_table = " employee2"
25
- sink_file = " employee2.csv"
26
- selall (x) = " select * from " * x
27
-
28
- # SQLite.Source ==> DataFrame
29
- ds = SQLite. query (db, selall (source_table))
30
- @test size (ds) == (8 ,15 )
31
- # SQLite.Source ==> SQLite.Sink
32
- SQLite. query (db, selall (source_table), SQLite. Sink, db, sink_table)
33
- ds2 = SQLite. query (db, selall (sink_table))
34
- @test size (ds2) == (8 ,15 )
35
- @test Data. types (ds) == Data. types (ds2) && Data. header (ds) == Data. header (ds2)
36
- # SQLite.Source ==> CSV.Sink
37
- SQLite. query (db, selall (source_table), CSV. Sink, sink_file)
38
- ds4 = CSV. read (sink_file; dateformat= " yyyy-mm-dd HH:MM:SS" )
39
- @test size (ds4) == (8 ,15 )
40
- @test Data. header (ds) == Data. header (ds4)
41
-
42
- SQLite. query (db, selall (source_table), SQLite. Sink, db, sink_table; append= true )
43
- ds5 = SQLite. query (db, selall (sink_table))
44
- @test size (ds5) == (16 ,15 )
45
- @test Data. types (ds) == Data. types (ds2) && Data. header (ds) == Data. header (ds2)
46
-
47
- # constructed SQLite.Sink
48
- sink = SQLite. Sink (db, sink_table, Data. schema (ds5))
49
- SQLite. query (db, selall (source_table), sink)
50
- ds2 = SQLite. query (db, selall (sink_table))
51
- @test size (ds2) == (8 ,15 )
52
- @test Data. types (ds) == Data. types (ds2) && Data. header (ds) == Data. header (ds2)
53
- SQLite. query (db, selall (source_table), sink; append= true )
54
- ds3 = SQLite. query (db, selall (sink_table))
55
- @test size (ds3) == (16 ,15 )
56
-
57
- # constructed SQLite.Source
58
- source = SQLite. Source (db, selall (source_table))
59
- ds = SQLite. query (source)
60
- @test size (ds) == (8 ,15 )
61
- source = SQLite. Source (db, selall (source_table))
62
- SQLite. query (source, SQLite. Sink, db, sink_table)
63
- ds2 = SQLite. query (db, selall (sink_table))
64
- @test size (ds2) == (8 ,15 )
65
- source = SQLite. Source (db, selall (source_table))
66
- SQLite. query (source, SQLite. Sink, db, sink_table; append= true )
67
- ds3 = SQLite. query (db, selall (sink_table))
68
- @test size (ds3) == (16 ,15 )
69
-
70
- sink = SQLite. Sink (db, sink_table, Data. schema (ds))
71
- source = SQLite. Source (db, selall (source_table))
72
- SQLite. query (source, sink)
73
- ds = SQLite. query (db, selall (sink_table))
74
- @test size (ds) == (8 ,15 )
75
- source = SQLite. Source (db, selall (source_table))
76
- SQLite. query (source, sink; append= true )
77
- ds2 = SQLite. query (db, selall (sink_table))
78
- @test size (ds2) == (16 ,15 )
79
-
80
- # SQLite.load
81
- si = SQLite. load (db, sink_table, SQLite. Source, db, selall (source_table))
82
- ds = SQLite. query (db, selall (sink_table))
83
- @test size (ds) == (8 ,15 )
84
- si = SQLite. load (db, sink_table, SQLite. Source, db, selall (source_table); append= true )
85
- ds2 = SQLite. query (db, selall (sink_table))
86
- @test size (ds2) == (16 ,15 )
87
-
88
- source = SQLite. Source (db, selall (source_table))
89
- si = SQLite. load (db, sink_table, source)
90
- ds = SQLite. query (db, selall (sink_table))
91
- @test size (ds) == (8 ,15 )
92
- source = SQLite. Source (db, selall (source_table))
93
- si = SQLite. load (db, sink_table, source; append= true )
94
- ds2 = SQLite. query (db, selall (sink_table))
95
- @test size (ds2) == (16 ,15 )
96
-
97
- sink = SQLite. Sink (db, sink_table, Data. schema (ds))
98
- si = SQLite. load (sink, SQLite. Source, db, selall (source_table))
99
- ds = SQLite. query (db, selall (sink_table))
100
- @test size (ds) == (8 ,15 )
101
- sink = SQLite. Sink (db, sink_table, Data. schema (ds); append= true )
102
- si = SQLite. load (sink, SQLite. Source, db, selall (source_table); append= true )
103
- ds2 = SQLite. query (db, selall (sink_table))
104
- @test size (ds2) == (16 ,15 )
105
-
106
- source = SQLite. Source (db, selall (source_table))
107
- sink = SQLite. Sink (db, sink_table, Data. schema (ds))
108
- si = SQLite. load (sink, source)
109
- ds = SQLite. query (db, selall (sink_table))
110
- @test size (ds) == (8 ,15 )
111
- source = SQLite. Source (db, selall (source_table))
112
- sink = SQLite. Sink (db, sink_table, Data. schema (ds); append= true )
113
- si = SQLite. load (sink, source; append= true )
114
- ds2 = SQLite. query (db, selall (sink_table))
115
- @test size (ds2) == (16 ,15 )
116
- SQLite. drop! (db, sink_table)
117
- SQLite. drop! (db, " sqlite_stat1" )
118
- rm (sink_file)
119
-
120
18
# regular SQLite tests
121
19
so = SQLite. Source (db," SELECT name FROM sqlite_master WHERE type='table';" )
122
- ds = Data. stream! (so,DataFrame)
20
+ ds = Data. stream! (so, DataFrame)
123
21
@test length (ds. columns) == 1
124
22
@test Data. header (ds)[1 ] == " name"
125
23
@test size (ds) == (11 ,1 )
@@ -356,29 +254,8 @@ SQLite.drop!(db2, "tab2", ifexists=true)
356
254
SQLite. drop! (db, " sqlite_stat1" )
357
255
@test size (SQLite. tables (db)) == (11 ,1 )
358
256
359
- source = SQLite. Source (db, " select * from album" )
360
- temp = tempname ()
361
- sink = CSV. Sink (temp)
362
- Data. stream! (source,sink)
363
- Data. close! (sink)
364
- dt = Data. stream! (CSV. Source (sink), DataFrame)
365
- @test get (dt[1 ,1 ]) == 1
366
- @test get (dt[1 ,2 ]) == " For Those About To Rock We Salute You"
367
- @test get (dt[1 ,3 ]) == 1
368
-
369
257
db = nothing ; gc (); gc ();
370
258
371
- db = SQLite. DB ()
372
- source = CSV. Source (temp)
373
- sink = SQLite. Sink (db, " temp" , Data. schema (source))
374
- Data. stream! (source, sink)
375
- Data. close! (sink)
376
- source2 = SQLite. Source (sink)
377
- dt = Data. stream! (source2, DataFrame)
378
- @test get (dt[1 ,1 ]) == 1
379
- @test string (get (dt[1 ,2 ])) == " For Those About To Rock We Salute You"
380
- @test get (dt[1 ,3 ]) == 1
381
-
382
259
sink = SQLite. Sink (db, " temp2" , Data. schema (dt, Data. Field))
383
260
Data. stream! (dt, sink)
384
261
Data. close! (sink)
@@ -430,3 +307,9 @@ stmt = SQLite.Stmt(db, "INSERT INTO tbl (a) VALUES (@a);")
430
307
SQLite. bind! (stmt, " @a" , 1 )
431
308
432
309
rm (dbfile2)
310
+
311
+ installed = Pkg. installed ()
312
+ haskey (installed, " DataStreamsIntegrationTests" ) || Pkg. clone (" https://github.com/JuliaData/DataStreamsIntegrationTests" )
313
+ using DataStreamsIntegrationTests
314
+
315
+ include (" datastreams.jl" )
0 commit comments