jvertica 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jvertica/version.rb +1 -1
- data/lib/jvertica.rb +28 -17
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c23d87043466109fa58a4068771e6fbdfb5a7130
|
4
|
+
data.tar.gz: 970b488aa5d74b94a59fe131d265c56e4ebf8a40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c702a7ef2da491b0b261b1dacd51eec569e386e8d37c1af276069fbb3441451ed8fdaa3ae2c7abb9e33ff28f3a6f1730b1927545bb70ff7bf551e1d4abb639cd
|
7
|
+
data.tar.gz: 8eeadf300ea89cbf68f9ba63296a932a7cc2d84e05f5705160960d4bdbc0c55b574edd97bd64fb504443435a4257b54b34b16e1ca408de1d6ce5a5794191d9e3
|
data/lib/jvertica/version.rb
CHANGED
data/lib/jvertica.rb
CHANGED
@@ -16,7 +16,7 @@ class Jvertica
|
|
16
16
|
password: '',
|
17
17
|
user: 'dbadmin',
|
18
18
|
AutoCommit: false,
|
19
|
-
}
|
19
|
+
}
|
20
20
|
|
21
21
|
def self.connect options = {}
|
22
22
|
new options
|
@@ -41,8 +41,8 @@ class Jvertica
|
|
41
41
|
@connection = begin
|
42
42
|
DriverManager.getConnection "jdbc:vertica://#{host}:#{port}/#{database}", prop
|
43
43
|
rescue => e
|
44
|
-
raise ConnectionError.new("Connection Failed.\n" +
|
45
|
-
"Error Message => #{e.message}\n" +
|
44
|
+
raise ConnectionError.new("Connection Failed.\n" +
|
45
|
+
"Error Message => #{e.message}\n" +
|
46
46
|
"see documentation => #{Constant::CONNECTION_PROPERTY_DOCUMENT_URL}\n")
|
47
47
|
end
|
48
48
|
@closed = false
|
@@ -58,7 +58,7 @@ class Jvertica
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def commit
|
61
|
-
@connection.commit
|
61
|
+
@connection.commit
|
62
62
|
end
|
63
63
|
|
64
64
|
def rollback
|
@@ -89,7 +89,7 @@ class Jvertica
|
|
89
89
|
def query query, &blk
|
90
90
|
stmt = @connection.createStatement
|
91
91
|
case query
|
92
|
-
when %r{\A\s*copy}miu then
|
92
|
+
when %r{\A\s*copy}miu then return stmt.execute query
|
93
93
|
when %r{\A\s*insert}miu then return stmt.executeUpdate query
|
94
94
|
when %r{\A\s*update}miu then return stmt.executeUpdate query
|
95
95
|
when %r{\A\s*delete}miu then return stmt.executeUpdate query
|
@@ -110,19 +110,22 @@ class Jvertica
|
|
110
110
|
|
111
111
|
def copy query, source = nil, &blk
|
112
112
|
raise InvalidQuery.new('can use only "copy".') unless %r{\A\s*copy}miu === query
|
113
|
+
if !source.nil?
|
114
|
+
copy_stream(query, source, &blk)
|
115
|
+
else
|
116
|
+
[query(query), nil]
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
def copy_stream query, io = nil, &blk
|
113
122
|
stream = com.vertica.jdbc.VerticaCopyStream.new @connection, query
|
114
123
|
stream.start
|
115
124
|
thread = nil
|
116
125
|
begin
|
117
|
-
if !source.nil?
|
118
126
|
|
119
|
-
|
120
|
-
stream.addStream org.jruby.util.IOInputStream.new(source)
|
121
|
-
else
|
122
|
-
raise InvalidObject.new("source must be a IO.")
|
123
|
-
end
|
127
|
+
if block_given?
|
124
128
|
|
125
|
-
elsif block_given?
|
126
129
|
i, o = IO.pipe
|
127
130
|
begin
|
128
131
|
thread = Thread.new do
|
@@ -134,8 +137,17 @@ class Jvertica
|
|
134
137
|
raise e
|
135
138
|
ensure
|
136
139
|
end
|
140
|
+
|
141
|
+
else
|
142
|
+
|
143
|
+
if source.is_a? IO
|
144
|
+
stream.addStream org.jruby.util.IOInputStream.new(source)
|
145
|
+
else
|
146
|
+
raise InvalidObject.new("source must be a IO.")
|
147
|
+
end
|
148
|
+
|
137
149
|
end
|
138
|
-
|
150
|
+
|
139
151
|
rescue => e
|
140
152
|
r = stream.finish
|
141
153
|
raise e.class.new("[affected rows: #{r}] #{e.message}")
|
@@ -147,14 +159,13 @@ class Jvertica
|
|
147
159
|
results = stream.finish
|
148
160
|
rescue => e
|
149
161
|
raise e
|
150
|
-
ensure
|
151
|
-
thread.join
|
162
|
+
ensure
|
163
|
+
thread.join unless thread.nil?
|
152
164
|
end
|
153
165
|
|
154
166
|
[results, rejects.to_ary]
|
155
167
|
end
|
156
168
|
|
157
|
-
private
|
158
169
|
class ConnectionError < StandardError
|
159
170
|
end
|
160
171
|
|
@@ -357,7 +368,7 @@ class Jvertica
|
|
357
368
|
module Constant
|
358
369
|
CONNECTION_PROPERTY_DOCUMENT_URL =
|
359
370
|
'http://my.vertica.com/docs/7.1.x/HTML/index.htm#Authoring/ProgrammersGuide/ClientJDBC/JDBCConnectionProperties.htm'
|
360
|
-
|
371
|
+
|
361
372
|
RUBY_SQL_TYPE_MAP = {
|
362
373
|
Fixnum => java.sql.Types::INTEGER,
|
363
374
|
Bignum => java.sql.Types::BIGINT,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jvertica
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takahiro.nakayama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|