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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1319b82466ec1059629cb62dbe33cdacc0488d60
4
- data.tar.gz: fd2b1bc6ee9211e3b225537d753bbef3a5fe6f19
3
+ metadata.gz: 8a45d6b813ecd784711b722f4092e5bae4092f7f
4
+ data.tar.gz: 1b0371ff2fbdc251693656e9e63b91f9763417eb
5
5
  SHA512:
6
- metadata.gz: fa93f95456b45d53a8621f2e22a87537fc8955c59954ef52155b71b7938b67d1794e5cba4b89b9f398f7089fe49638d4e15e216b2e73c76a8505b3eab770db45
7
- data.tar.gz: dd3ef388960816cadae765c39f705778987c2490895e36c74704a076135349b7dbacfbc8cfa123314abfa718fcef68d725a2e9009c437df00fc6d60d057fb113
6
+ metadata.gz: 7da7f3bd0bef93c74d9adb84f5b9190a1781b50aced54ad8366d04cdf6f27ac745e7a37d7e17b20c62ced7a6d176d1fb3adc68ed9434834c973322f3b4a1b5ea
7
+ data.tar.gz: a27712fd626d72ac2811b00590d887c786ad113ea40cf67ab5b1d89a3e48ec724c97809d6bed1be8bba908eddfe54346c0b96871db7189800ee1f9f7176bdcac
@@ -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, OpenSSL::SSL::SSLError, SocketError, IncompleteError, HTTPClient::TimeoutError => e
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
@@ -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, HTTPServerException => e
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
@@ -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 Timeout::Error, SystemCallError, EOFError, SocketError, HTTPClient::ConnectTimeoutError
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
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
  class Client
3
- VERSION = '1.0.1'
3
+ VERSION = '1.0.2'
4
4
  end
5
5
  end
@@ -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.1
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-05-22 00:00:00.000000000 Z
11
+ date: 2017-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack