td-client 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/td/client/api.rb +3 -1
- data/lib/td/client/api/job.rb +2 -1
- data/lib/td/client/model.rb +4 -3
- data/lib/td/client/version.rb +1 -1
- data/spec/td/client/model_schema_spec.rb +28 -1
- 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: 8a45d6b813ecd784711b722f4092e5bae4092f7f
|
4
|
+
data.tar.gz: 1b0371ff2fbdc251693656e9e63b91f9763417eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7da7f3bd0bef93c74d9adb84f5b9190a1781b50aced54ad8366d04cdf6f27ac745e7a37d7e17b20c62ced7a6d176d1fb3adc68ed9434834c973322f3b4a1b5ea
|
7
|
+
data.tar.gz: a27712fd626d72ac2811b00590d887c786ad113ea40cf67ab5b1d89a3e48ec724c97809d6bed1be8bba908eddfe54346c0b96871db7189800ee1f9f7176bdcac
|
data/lib/td/client/api.rb
CHANGED
@@ -312,7 +312,9 @@ private
|
|
312
312
|
retry_delay *= 2
|
313
313
|
redo # restart from beginning of do-while loop
|
314
314
|
end
|
315
|
-
rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Timeout::Error, EOFError,
|
315
|
+
rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Timeout::Error, EOFError,
|
316
|
+
SystemCallError, OpenSSL::SSL::SSLError, SocketError, HTTPClient::TimeoutError,
|
317
|
+
IncompleteError => e
|
316
318
|
if block_given?
|
317
319
|
raise e
|
318
320
|
end
|
data/lib/td/client/api/job.rb
CHANGED
@@ -331,7 +331,8 @@ module Job
|
|
331
331
|
# completed?
|
332
332
|
validate_content_length_with_range(response, current_total_chunk_size)
|
333
333
|
rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Timeout::Error, EOFError,
|
334
|
-
OpenSSL::SSL::SSLError, SocketError,
|
334
|
+
SystemCallError, OpenSSL::SSL::SSLError, SocketError, HTTPClient::TimeoutError,
|
335
|
+
HTTPServerException => e
|
335
336
|
if response # at least a chunk is downloaded
|
336
337
|
if etag = response.header['ETag'][0]
|
337
338
|
header['If-Range'] = etag
|
data/lib/td/client/model.rb
CHANGED
@@ -320,7 +320,7 @@ class Schema
|
|
320
320
|
@fields.each do |f|
|
321
321
|
raise ArgumentError, "Column name '#{f.name}' is duplicated." if @names.key?(f.name)
|
322
322
|
@names[f.name] = true
|
323
|
-
if f.sql_alias
|
323
|
+
if f.sql_alias && f.name != f.sql_alias
|
324
324
|
raise ArgumentError, "SQL Column alias '#{f.sql_alias}' is duplicated." if @names.key?(f.sql_alias)
|
325
325
|
@names[f.sql_alias] = true
|
326
326
|
end
|
@@ -338,7 +338,7 @@ class Schema
|
|
338
338
|
raise ParameterValidationError, "Column name '#{name}' is duplicated."
|
339
339
|
end
|
340
340
|
@names[name] = true
|
341
|
-
if sql_alias && @names.key?(sql_alias)
|
341
|
+
if sql_alias && sql_alias != name && @names.key?(sql_alias)
|
342
342
|
raise ParameterValidationError, "SQL Column alias '#{sql_alias}' is duplicated."
|
343
343
|
end
|
344
344
|
@names[sql_alias] = true
|
@@ -466,7 +466,8 @@ class Job < Model
|
|
466
466
|
yield self if block_given?
|
467
467
|
rescue timeout_klass
|
468
468
|
raise Timeout::Error, $!.message
|
469
|
-
rescue
|
469
|
+
rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Timeout::Error, EOFError,
|
470
|
+
SystemCallError, OpenSSL::SSL::SSLError, SocketError, HTTPClient::TimeoutError
|
470
471
|
$stderr.puts "ignore network error (#{$!}); retry..." if verbose
|
471
472
|
end until finished?
|
472
473
|
end
|
data/lib/td/client/version.rb
CHANGED
@@ -30,6 +30,15 @@ describe 'TreasureData::Schema::Field' do
|
|
30
30
|
expect(f.sql_alias).to eq 'alice'
|
31
31
|
end
|
32
32
|
end
|
33
|
+
context 'with sql_alias which equals to its name' do
|
34
|
+
it 'works' do
|
35
|
+
name = "abc"
|
36
|
+
f = Schema::Field.new(name, 'int', name)
|
37
|
+
expect(f.name).to eq name
|
38
|
+
expect(f.type).to eq 'int'
|
39
|
+
expect(f.sql_alias).to eq name
|
40
|
+
end
|
41
|
+
end
|
33
42
|
context 'with invalid sql_alias' do
|
34
43
|
it 'raises' do
|
35
44
|
expect{ Schema::Field.new('t:t', 'int', 't:t') }.to raise_error(ParameterValidationError)
|
@@ -57,11 +66,23 @@ describe 'TreasureData::Schema' do
|
|
57
66
|
end
|
58
67
|
|
59
68
|
describe '.new' do
|
60
|
-
it do
|
69
|
+
it 'works with single field' do
|
61
70
|
f = Schema::Field.new('a', 'int')
|
62
71
|
sc = Schema.new([f])
|
63
72
|
expect(sc.fields[0]).to eq f
|
64
73
|
end
|
74
|
+
it 'works with multiple fields' do
|
75
|
+
f0 = Schema::Field.new('a', 'int')
|
76
|
+
f1 = Schema::Field.new('b', 'int', 'b')
|
77
|
+
sc = Schema.new([f0, f1])
|
78
|
+
expect(sc.fields[0]).to eq f0
|
79
|
+
expect(sc.fields[1]).to eq f1
|
80
|
+
end
|
81
|
+
it 'raises' do
|
82
|
+
f0 = Schema::Field.new('a', 'int')
|
83
|
+
f1 = Schema::Field.new('b', 'int', 'a')
|
84
|
+
expect{ Schema.new([f0, f1]) }.to raise_error(ArgumentError)
|
85
|
+
end
|
65
86
|
end
|
66
87
|
|
67
88
|
describe '#fields' do
|
@@ -79,6 +100,12 @@ describe 'TreasureData::Schema' do
|
|
79
100
|
sc.add_field('b', 'double', 'bb')
|
80
101
|
expect(sc.fields[1].name).to eq 'b'
|
81
102
|
end
|
103
|
+
it do
|
104
|
+
f = Schema::Field.new('a', 'int')
|
105
|
+
sc = Schema.new([f])
|
106
|
+
sc.add_field('b', 'double', 'b')
|
107
|
+
expect(sc.fields[1].name).to eq 'b'
|
108
|
+
end
|
82
109
|
it 'raises ParameterValidationError if name is duplicated' do
|
83
110
|
f = Schema::Field.new('a', 'int')
|
84
111
|
sc = Schema.new([f])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Treasure Data, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|