td-client 1.0.1 → 1.0.2

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 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