presto-client 0.4.13 → 0.4.14

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: 0bee1b8fb22804f12e8a2fe9ee8f9fca6262cf4f
4
- data.tar.gz: 2bd49e06c846141c5d909c507716970454565270
3
+ metadata.gz: 1f05ad7fb71f97a4804e24451a201d8043d3518a
4
+ data.tar.gz: 369f6523a275ead5350cf42a95f0c22d56b52c22
5
5
  SHA512:
6
- metadata.gz: 0128a6bdf303a34f156916fb460c4e133277d41de5ff9b839fb19c969e569e71bdef2174a40be8e5bb5b43868ab41d192afb7a9320dbb750ca83990929fd734d
7
- data.tar.gz: 30486a370eb854050e71dd0cdec598e17fe0aa3bec43feb6f1b20f7292c8b8d8362e29ce35d06a5757726d547c3f507af2751726092fbbf8580325d17cc66823
6
+ metadata.gz: 938b3b5ae20a354a659713f3ad29952619403d45f01dbf41a1ca8907659250a7b5597787fdcfc3b028e049cc27e819c39b6721b38a0ab5695d86dcbc6b55e911
7
+ data.tar.gz: 81353b8f0f53784533c282e2471f1c79d4f28de2cdd8506ceb7e291fb8d7fb3c7d979342d952dc7e47f09b1c4b3a7833abcefed85b425bf9a7ed25c59ee88ea5
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ 2016-08-02 version 0.4.14:
2
+
3
+ * Added support for resuming fetching query results by using new `Query.resume(next_uri, options)` method (@tetrakai++)
4
+
5
+
1
6
  2016-08-02 version 0.4.13:
2
7
 
3
8
  * Added support for :http_proxy option to use a HTTP proxy server
@@ -36,6 +36,10 @@ module Presto::Client
36
36
  end
37
37
  end
38
38
 
39
+ def resume_query(next_uri)
40
+ return Query.resume(next_uri, @options)
41
+ end
42
+
39
43
  def run(query)
40
44
  q = Query.start(query, @options)
41
45
  begin
@@ -22,6 +22,14 @@ module Presto::Client
22
22
 
23
23
  class Query
24
24
  def self.start(query, options)
25
+ new StatementClient.new(faraday_client(options), query, options)
26
+ end
27
+
28
+ def self.resume(next_uri, options)
29
+ new StatementClient.new(faraday_client(options), nil, options, next_uri)
30
+ end
31
+
32
+ def self.faraday_client(options)
25
33
  server = options[:server]
26
34
  unless server
27
35
  raise ArgumentError, ":server option is required"
@@ -34,9 +42,11 @@ module Presto::Client
34
42
  faraday.adapter Faraday.default_adapter
35
43
  end
36
44
 
37
- new StatementClient.new(faraday, query, options)
45
+ return faraday
38
46
  end
39
47
 
48
+ private_class_method :faraday_client
49
+
40
50
  def initialize(api)
41
51
  @api = api
42
52
  end
@@ -104,6 +114,10 @@ module Presto::Client
104
114
  @api.query_info
105
115
  end
106
116
 
117
+ def next_uri
118
+ @api.current_results.next_uri
119
+ end
120
+
107
121
  def cancel
108
122
  @api.cancel_leaf_stage
109
123
  end
@@ -39,7 +39,7 @@ module Presto::Client
39
39
  "User-Agent" => "presto-ruby/#{VERSION}",
40
40
  }
41
41
 
42
- def initialize(faraday, query, options)
42
+ def initialize(faraday, query, options, next_uri=nil)
43
43
  @faraday = faraday
44
44
  @faraday.headers.merge!(HEADERS)
45
45
 
@@ -49,7 +49,13 @@ module Presto::Client
49
49
  @exception = nil
50
50
 
51
51
  @faraday.headers.merge!(optional_headers)
52
- post_query_request!
52
+
53
+ if next_uri
54
+ body = faraday_get_with_retry(next_uri)
55
+ @results = Models::QueryResults.decode(MultiJson.load(body))
56
+ else
57
+ post_query_request!
58
+ end
53
59
  end
54
60
 
55
61
  def optional_headers
@@ -15,6 +15,6 @@
15
15
  #
16
16
  module Presto
17
17
  module Client
18
- VERSION = "0.4.13"
18
+ VERSION = "0.4.14"
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: presto-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.13
4
+ version: 0.4.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi