pinot-client 1.5.0 → 1.7.0

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
  SHA256:
3
- metadata.gz: bb872f6cbcc1f34f16a68006eac8acea39229bdc9bd90f9f44a3369ed9c9fb59
4
- data.tar.gz: b86cde24abaa6343f9984b3106830e9f00e25656050a4f577629942c3e0067c2
3
+ metadata.gz: ce082ab7ebdfd2003c324e13981a48c4735196a424a98f40ca812cf755846cb5
4
+ data.tar.gz: 8bb6cc60572a748c9acb0817ccc58fdb4a4bc369b016503392b7326d79d01ecf
5
5
  SHA512:
6
- metadata.gz: afc088a4df6eaa77e6141fa051d7f2e1f3afa1aa8d75555ed2291dfc84fe159a9538ad86621d452bc510066576a331d6e23135aa93529f672bf912ba46ed5b0c
7
- data.tar.gz: b34bcb378ab7a6bca383545b79e090273ed0b67d4e5356699461b02bbbaaafd7e7580073e492bbb7f43cf988c77ba500e361e1954c53a990aab5be6d785cae4b
6
+ metadata.gz: df40aa52c3ac2101d8cdaf308b741eb056eb17163beabff92c57b5800047ae570d63e10369fb5778040a2986b1c5b9f959df71ec425f3ffeb9eb49f9366a6c31
7
+ data.tar.gz: bdfe5f80fdee0c0b9b8b4ce1b216a16f098bc27df369a9a62983aa7a0672866260215cfa5ebacb678bb068d389824812491ae2b537f9abe1ea1d9fdf899fda15
data/lib/pinot/config.rb CHANGED
@@ -46,6 +46,7 @@ module Pinot
46
46
  @tls_config = tls_config
47
47
  @grpc_config = grpc_config
48
48
  @zookeeper_config = zookeeper_config
49
+ @query_timeout_ms = query_timeout_ms
49
50
  end
50
51
 
51
52
  def validate!
@@ -2,12 +2,15 @@ require "bigdecimal"
2
2
 
3
3
  module Pinot
4
4
  class Connection
5
- def initialize(transport:, broker_selector:, use_multistage_engine: false, logger: nil)
5
+ attr_accessor :query_timeout_ms
6
+
7
+ def initialize(transport:, broker_selector:, use_multistage_engine: false, logger: nil, query_timeout_ms: nil)
6
8
  @transport = transport
7
9
  @broker_selector = broker_selector
8
10
  @use_multistage_engine = use_multistage_engine
9
11
  @trace = false
10
12
  @logger = logger
13
+ @query_timeout_ms = query_timeout_ms
11
14
  end
12
15
 
13
16
  def use_multistage_engine=(val)
@@ -32,6 +35,14 @@ module Pinot
32
35
  raise "unable to execute SQL on table #{table}: #{e.message}"
33
36
  end
34
37
 
38
+ def execute_sql_with_timeout(table, query, timeout_ms)
39
+ logger.debug "Executing SQL with timeout=#{timeout_ms}ms on table=#{table}: #{query}"
40
+ broker = @broker_selector.select_broker(table)
41
+ @transport.execute(broker, build_request(query, timeout_ms: timeout_ms))
42
+ rescue => e
43
+ raise "unable to execute SQL on table #{table}: #{e.message}"
44
+ end
45
+
35
46
  def execute_sql_with_params(table, query_pattern, params)
36
47
  query = format_query(query_pattern, params)
37
48
  execute_sql(table, query)
@@ -95,8 +106,8 @@ module Pinot
95
106
  @logger || Pinot::Logging.logger
96
107
  end
97
108
 
98
- def build_request(query)
99
- Request.new("sql", query, @trace, @use_multistage_engine)
109
+ def build_request(query, timeout_ms: @query_timeout_ms)
110
+ Request.new("sql", query, @trace, @use_multistage_engine, timeout_ms)
100
111
  end
101
112
  end
102
113
  end
@@ -63,7 +63,8 @@ module Pinot
63
63
  transport: transport,
64
64
  broker_selector: selector,
65
65
  use_multistage_engine: config.use_multistage_engine || false,
66
- logger: config.logger
66
+ logger: config.logger,
67
+ query_timeout_ms: config.query_timeout_ms
67
68
  )
68
69
 
69
70
  selector.init
data/lib/pinot/request.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pinot
2
- Request = Struct.new(:query_format, :query, :trace, :use_multistage_engine)
2
+ Request = Struct.new(:query_format, :query, :trace, :use_multistage_engine, :query_timeout_ms)
3
3
  end
@@ -170,6 +170,7 @@ module Pinot
170
170
  if @timeout_ms && @timeout_ms > 0
171
171
  parts << "timeoutMs=#{@timeout_ms}"
172
172
  end
173
+ parts << "timeoutMs=#{request.query_timeout_ms}" if request.query_timeout_ms
173
174
  end
174
175
  parts.join(";")
175
176
  end
data/lib/pinot/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pinot
2
- VERSION = "1.5.0"
2
+ VERSION = "1.7.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinot-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xiang Fu