impala 0.1.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.
- data/.gitignore +17 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +22 -0
- data/README.md +28 -0
- data/Rakefile +15 -0
- data/impala.gemspec +25 -0
- data/lib/impala.rb +33 -0
- data/lib/impala/connection.rb +93 -0
- data/lib/impala/cursor.rb +86 -0
- data/lib/impala/protocol.rb +6 -0
- data/lib/impala/protocol/beeswax_constants.rb +14 -0
- data/lib/impala/protocol/beeswax_service.rb +747 -0
- data/lib/impala/protocol/beeswax_types.rb +192 -0
- data/lib/impala/protocol/data_constants.rb +12 -0
- data/lib/impala/protocol/data_sinks_constants.rb +12 -0
- data/lib/impala/protocol/data_sinks_types.rb +107 -0
- data/lib/impala/protocol/data_types.rb +77 -0
- data/lib/impala/protocol/descriptors_constants.rb +12 -0
- data/lib/impala/protocol/descriptors_types.rb +266 -0
- data/lib/impala/protocol/exprs_constants.rb +12 -0
- data/lib/impala/protocol/exprs_types.rb +345 -0
- data/lib/impala/protocol/facebook_service.rb +706 -0
- data/lib/impala/protocol/fb303_constants.rb +14 -0
- data/lib/impala/protocol/fb303_types.rb +24 -0
- data/lib/impala/protocol/frontend_constants.rb +12 -0
- data/lib/impala/protocol/frontend_types.rb +347 -0
- data/lib/impala/protocol/hive_metastore_constants.rb +52 -0
- data/lib/impala/protocol/hive_metastore_types.rb +697 -0
- data/lib/impala/protocol/impala_internal_service.rb +244 -0
- data/lib/impala/protocol/impala_internal_service_constants.rb +12 -0
- data/lib/impala/protocol/impala_internal_service_types.rb +362 -0
- data/lib/impala/protocol/impala_plan_service.rb +310 -0
- data/lib/impala/protocol/impala_plan_service_constants.rb +12 -0
- data/lib/impala/protocol/impala_plan_service_types.rb +36 -0
- data/lib/impala/protocol/impala_service.rb +260 -0
- data/lib/impala/protocol/impala_service_constants.rb +12 -0
- data/lib/impala/protocol/impala_service_types.rb +46 -0
- data/lib/impala/protocol/java_constants_constants.rb +42 -0
- data/lib/impala/protocol/java_constants_types.rb +14 -0
- data/lib/impala/protocol/opcodes_constants.rb +12 -0
- data/lib/impala/protocol/opcodes_types.rb +309 -0
- data/lib/impala/protocol/partitions_constants.rb +12 -0
- data/lib/impala/protocol/partitions_types.rb +44 -0
- data/lib/impala/protocol/plan_nodes_constants.rb +12 -0
- data/lib/impala/protocol/plan_nodes_types.rb +345 -0
- data/lib/impala/protocol/planner_constants.rb +12 -0
- data/lib/impala/protocol/planner_types.rb +78 -0
- data/lib/impala/protocol/runtime_profile_constants.rb +12 -0
- data/lib/impala/protocol/runtime_profile_types.rb +97 -0
- data/lib/impala/protocol/state_store_service.rb +244 -0
- data/lib/impala/protocol/state_store_service_constants.rb +12 -0
- data/lib/impala/protocol/state_store_service_types.rb +185 -0
- data/lib/impala/protocol/state_store_subscriber_service.rb +82 -0
- data/lib/impala/protocol/state_store_subscriber_service_constants.rb +12 -0
- data/lib/impala/protocol/state_store_subscriber_service_types.rb +67 -0
- data/lib/impala/protocol/statestore_types_constants.rb +12 -0
- data/lib/impala/protocol/statestore_types_types.rb +77 -0
- data/lib/impala/protocol/status_constants.rb +12 -0
- data/lib/impala/protocol/status_types.rb +44 -0
- data/lib/impala/protocol/thrift_hive_metastore.rb +4707 -0
- data/lib/impala/protocol/types_constants.rb +12 -0
- data/lib/impala/protocol/types_types.rb +86 -0
- data/lib/impala/version.rb +3 -0
- data/thrift/Data.thrift +52 -0
- data/thrift/DataSinks.thrift +61 -0
- data/thrift/Descriptors.thrift +115 -0
- data/thrift/Exprs.thrift +134 -0
- data/thrift/Frontend.thrift +193 -0
- data/thrift/ImpalaInternalService.thrift +265 -0
- data/thrift/ImpalaPlanService.thrift +44 -0
- data/thrift/ImpalaService.thrift +105 -0
- data/thrift/JavaConstants.thrift +60 -0
- data/thrift/Opcodes.thrift +317 -0
- data/thrift/Partitions.thrift +41 -0
- data/thrift/PlanNodes.thrift +184 -0
- data/thrift/Planner.thrift +72 -0
- data/thrift/RuntimeProfile.thrift +58 -0
- data/thrift/StateStoreService.thrift +121 -0
- data/thrift/StateStoreSubscriberService.thrift +64 -0
- data/thrift/StatestoreTypes.thrift +50 -0
- data/thrift/Status.thrift +31 -0
- data/thrift/Types.thrift +71 -0
- data/thrift/beeswax.thrift +175 -0
- data/thrift/fb303.thrift +112 -0
- data/thrift/hive_metastore.thrift +528 -0
- metadata +206 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2013 Colin Marc
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# impala-ruby
|
|
2
|
+
|
|
3
|
+
This is an ruby client for [Cloudera's Impala][1]. You use it like this:
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
require 'impala'
|
|
7
|
+
|
|
8
|
+
Impala.connect('host', 21000) do |conn|
|
|
9
|
+
conn.query('SELECT zip, income FROM zipcode_incomes LIMIT 5')
|
|
10
|
+
end
|
|
11
|
+
# => [{:zip=>'02446', :income=>89597}, ...]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
You can also use cursors to avoid loading the entire result set into memory:
|
|
15
|
+
|
|
16
|
+
```ruby
|
|
17
|
+
conn = Impala.connect('host', 21000)
|
|
18
|
+
cursor = conn.execute('SELECT zip, income FROM zipcode_incomes ORDER BY income DESC')
|
|
19
|
+
|
|
20
|
+
one_row = cursor.fetch_row
|
|
21
|
+
cursor.each do |row|
|
|
22
|
+
# etc
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
conn.close
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
[1]: https://ccp.cloudera.com/display/IMPALA10BETADOC/Introducing+Cloudera+Impala
|
data/Rakefile
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
|
|
3
|
+
THRIFT_FILES = FileList['./thrift/*.thrift']
|
|
4
|
+
GENNED_FILES = FileList['./lib/impala/protocol/*']
|
|
5
|
+
|
|
6
|
+
task :gen do
|
|
7
|
+
THRIFT_FILES.each do |f|
|
|
8
|
+
sh "thrift -out lib/impala/protocol --gen rb #{f}"
|
|
9
|
+
end
|
|
10
|
+
sh "eden rewrite lib/impala/protocol/*.rb"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
task :clean do
|
|
14
|
+
GENNED_FILES.each { |f| rm f }
|
|
15
|
+
end
|
data/impala.gemspec
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'impala/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |gem|
|
|
7
|
+
gem.name = "impala"
|
|
8
|
+
gem.version = Impala::VERSION
|
|
9
|
+
gem.authors = ["Colin Marc"]
|
|
10
|
+
gem.email = ["colinmarc@gmail.com"]
|
|
11
|
+
gem.description = %q{A ruby client for Cloudera's Impala}
|
|
12
|
+
gem.summary = %q{A ruby client for Cloudera's Impala}
|
|
13
|
+
gem.homepage = "https://github.com/colinmarc/impala-ruby"
|
|
14
|
+
|
|
15
|
+
gem.add_dependency('thrift', '~> 0.9')
|
|
16
|
+
|
|
17
|
+
gem.add_development_dependency('rake')
|
|
18
|
+
gem.add_development_dependency('eden')
|
|
19
|
+
gem.add_development_dependency('pry')
|
|
20
|
+
|
|
21
|
+
gem.files = `git ls-files`.split($/)
|
|
22
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
|
23
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
24
|
+
gem.require_paths = ["lib"]
|
|
25
|
+
end
|
data/lib/impala.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
# the generated ruby files use a relative require, so we need to add the
|
|
3
|
+
# generated directory to $LOAD_PATH
|
|
4
|
+
this_dir = File.expand_path(File.dirname(__FILE__))
|
|
5
|
+
gen_dir = File.join(this_dir, 'impala/protocol')
|
|
6
|
+
$LOAD_PATH.push(gen_dir) unless $LOAD_PATH.include?(gen_dir)
|
|
7
|
+
|
|
8
|
+
require 'impala/version'
|
|
9
|
+
|
|
10
|
+
require 'thrift'
|
|
11
|
+
require 'impala/protocol'
|
|
12
|
+
require 'impala/cursor'
|
|
13
|
+
require 'impala/connection'
|
|
14
|
+
|
|
15
|
+
module Impala
|
|
16
|
+
KNOWN_COMMANDS = ['select', 'show', 'describe', 'use']
|
|
17
|
+
class InvalidQueryError < StandardError; end
|
|
18
|
+
class ConnectionError < StandardError; end
|
|
19
|
+
class CursorError < StandardError; end
|
|
20
|
+
|
|
21
|
+
def self.connect(host='localhost', port=21000)
|
|
22
|
+
connection = Connection.new(host, port)
|
|
23
|
+
|
|
24
|
+
if block_given?
|
|
25
|
+
ret = yield connection
|
|
26
|
+
connection.close
|
|
27
|
+
else
|
|
28
|
+
ret = connection
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
ret
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
module Impala
|
|
2
|
+
class Connection
|
|
3
|
+
SLEEP_INTERVAL = 0.1
|
|
4
|
+
|
|
5
|
+
def initialize(host='localhost', port=21000)
|
|
6
|
+
@host = host
|
|
7
|
+
@port = port
|
|
8
|
+
@connected = false
|
|
9
|
+
open
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def open
|
|
13
|
+
return if @connected
|
|
14
|
+
|
|
15
|
+
socket = Thrift::Socket.new(@host, @port)
|
|
16
|
+
|
|
17
|
+
@transport = Thrift::BufferedTransport.new(socket)
|
|
18
|
+
@transport.open
|
|
19
|
+
|
|
20
|
+
proto = Thrift::BinaryProtocol.new(@transport)
|
|
21
|
+
@service = Protocol::ImpalaService::Client.new(proto)
|
|
22
|
+
@connected = true
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def close
|
|
26
|
+
@transport.close
|
|
27
|
+
@connected = false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def open?
|
|
31
|
+
@connected
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def query(raw_query)
|
|
35
|
+
execute(raw_query).fetch_all
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def execute(raw_query)
|
|
39
|
+
raise ConnectionError.new("Connection closed") unless open?
|
|
40
|
+
|
|
41
|
+
words = raw_query.split
|
|
42
|
+
if words.empty?
|
|
43
|
+
raise InvalidQueryError.new("Empty query")
|
|
44
|
+
elsif !KNOWN_COMMANDS.include?(words.first.downcase)
|
|
45
|
+
raise InvalidQueryError.new("Unrecognized command: '#{words.first}'")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
query = sanitize_query(raw_query)
|
|
49
|
+
handle = send_query(query)
|
|
50
|
+
|
|
51
|
+
wait_for_result(handle)
|
|
52
|
+
Cursor.new(handle, @service)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
def sanitize_query(raw)
|
|
58
|
+
#TODO?
|
|
59
|
+
raw.downcase
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def send_query(sanitized_query)
|
|
63
|
+
query = Protocol::Beeswax::Query.new
|
|
64
|
+
query.query = sanitized_query
|
|
65
|
+
|
|
66
|
+
@service.query(query)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def wait_for_result(handle)
|
|
70
|
+
begin
|
|
71
|
+
#TODO select here, or something
|
|
72
|
+
while true
|
|
73
|
+
state = @service.get_state(handle)
|
|
74
|
+
if state == Protocol::Beeswax::QueryState::FINISHED
|
|
75
|
+
break
|
|
76
|
+
elsif state == Protocol::Beeswax::QueryState::EXCEPTION
|
|
77
|
+
close_handle(handle)
|
|
78
|
+
raise ConnectionError.new("The query was aborted")
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
sleep(SLEEP_INTERVAL)
|
|
82
|
+
end
|
|
83
|
+
rescue Interrupt
|
|
84
|
+
close_handle(handle)
|
|
85
|
+
raise
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def close_handle(handle)
|
|
90
|
+
@service.close(handle)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Impala
|
|
2
|
+
class Cursor
|
|
3
|
+
include Enumerable
|
|
4
|
+
|
|
5
|
+
def initialize(handle, service, buffer_length=1024)
|
|
6
|
+
@handle = handle
|
|
7
|
+
@service = service
|
|
8
|
+
@metadata = @service.get_results_metadata(@handle)
|
|
9
|
+
|
|
10
|
+
@buffer_length = buffer_length
|
|
11
|
+
@row_buffer = []
|
|
12
|
+
|
|
13
|
+
@done = false
|
|
14
|
+
@closed = false
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def each
|
|
18
|
+
while row = fetch_row
|
|
19
|
+
yield row
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def fetch_row
|
|
24
|
+
raise CursorError.new("Cursor has expired or been closed") if @closed
|
|
25
|
+
|
|
26
|
+
if @row_buffer.empty?
|
|
27
|
+
if @done
|
|
28
|
+
return nil
|
|
29
|
+
else
|
|
30
|
+
fetch_more
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
@row_buffer.shift
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def fetch_all
|
|
38
|
+
self.to_a
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def close
|
|
42
|
+
@closed = true
|
|
43
|
+
@service.close(@handle)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
def fetch_more
|
|
49
|
+
return if @done
|
|
50
|
+
|
|
51
|
+
begin
|
|
52
|
+
res = @service.fetch(@handle, false, @buffer_length)
|
|
53
|
+
rescue Protocol::Beeswax::BeeswaxException => e
|
|
54
|
+
@closed = true
|
|
55
|
+
raise CursorError.new("Cursor has expired or been closed")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
rows = res.data.map { |raw| parse_row(raw) }
|
|
59
|
+
@row_buffer.concat(rows)
|
|
60
|
+
@done = true unless res.has_more
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def parse_row(raw)
|
|
64
|
+
row = {}
|
|
65
|
+
fields = raw.split(@metadata.delim)
|
|
66
|
+
|
|
67
|
+
fields.zip(@metadata.schema.fieldSchemas).each do |raw_value, schema|
|
|
68
|
+
value = convert_raw_value(raw_value, schema)
|
|
69
|
+
row[schema.name.to_sym] = value
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
row
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def convert_raw_value(value, schema)
|
|
76
|
+
case schema.type
|
|
77
|
+
when 'string'
|
|
78
|
+
value
|
|
79
|
+
when 'tinyint', 'int', 'bigint'
|
|
80
|
+
value.to_i
|
|
81
|
+
else
|
|
82
|
+
raise "Unknown type: #{schema.type}" #TODO
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,747 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Autogenerated by Thrift Compiler (0.8.0)
|
|
3
|
+
#
|
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
require 'thrift'
|
|
8
|
+
require 'beeswax_types'
|
|
9
|
+
|
|
10
|
+
module Impala
|
|
11
|
+
module Protocol
|
|
12
|
+
module Beeswax
|
|
13
|
+
module BeeswaxService
|
|
14
|
+
class Client
|
|
15
|
+
include ::Thrift::Client
|
|
16
|
+
|
|
17
|
+
def query(query)
|
|
18
|
+
send_query(query)
|
|
19
|
+
return recv_query()
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def send_query(query)
|
|
23
|
+
send_message('query', Query_args, :query => query)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def recv_query()
|
|
27
|
+
result = receive_message(Query_result)
|
|
28
|
+
return result.success unless result.success.nil?
|
|
29
|
+
raise result.error unless result.error.nil?
|
|
30
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'query failed: unknown result')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def executeAndWait(query, clientCtx)
|
|
34
|
+
send_executeAndWait(query, clientCtx)
|
|
35
|
+
return recv_executeAndWait()
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def send_executeAndWait(query, clientCtx)
|
|
39
|
+
send_message('executeAndWait', ExecuteAndWait_args, :query => query, :clientCtx => clientCtx)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def recv_executeAndWait()
|
|
43
|
+
result = receive_message(ExecuteAndWait_result)
|
|
44
|
+
return result.success unless result.success.nil?
|
|
45
|
+
raise result.error unless result.error.nil?
|
|
46
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'executeAndWait failed: unknown result')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def explain(query)
|
|
50
|
+
send_explain(query)
|
|
51
|
+
return recv_explain()
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def send_explain(query)
|
|
55
|
+
send_message('explain', Explain_args, :query => query)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def recv_explain()
|
|
59
|
+
result = receive_message(Explain_result)
|
|
60
|
+
return result.success unless result.success.nil?
|
|
61
|
+
raise result.error unless result.error.nil?
|
|
62
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'explain failed: unknown result')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def fetch(query_id, start_over, fetch_size)
|
|
66
|
+
send_fetch(query_id, start_over, fetch_size)
|
|
67
|
+
return recv_fetch()
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def send_fetch(query_id, start_over, fetch_size)
|
|
71
|
+
send_message('fetch', Fetch_args, :query_id => query_id, :start_over => start_over, :fetch_size => fetch_size)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def recv_fetch()
|
|
75
|
+
result = receive_message(Fetch_result)
|
|
76
|
+
return result.success unless result.success.nil?
|
|
77
|
+
raise result.error unless result.error.nil?
|
|
78
|
+
raise result.error2 unless result.error2.nil?
|
|
79
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'fetch failed: unknown result')
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def get_state(handle)
|
|
83
|
+
send_get_state(handle)
|
|
84
|
+
return recv_get_state()
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def send_get_state(handle)
|
|
88
|
+
send_message('get_state', Get_state_args, :handle => handle)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def recv_get_state()
|
|
92
|
+
result = receive_message(Get_state_result)
|
|
93
|
+
return result.success unless result.success.nil?
|
|
94
|
+
raise result.error unless result.error.nil?
|
|
95
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_state failed: unknown result')
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def get_results_metadata(handle)
|
|
99
|
+
send_get_results_metadata(handle)
|
|
100
|
+
return recv_get_results_metadata()
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def send_get_results_metadata(handle)
|
|
104
|
+
send_message('get_results_metadata', Get_results_metadata_args, :handle => handle)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def recv_get_results_metadata()
|
|
108
|
+
result = receive_message(Get_results_metadata_result)
|
|
109
|
+
return result.success unless result.success.nil?
|
|
110
|
+
raise result.error unless result.error.nil?
|
|
111
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_results_metadata failed: unknown result')
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def echo(s)
|
|
115
|
+
send_echo(s)
|
|
116
|
+
return recv_echo()
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def send_echo(s)
|
|
120
|
+
send_message('echo', Echo_args, :s => s)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def recv_echo()
|
|
124
|
+
result = receive_message(Echo_result)
|
|
125
|
+
return result.success unless result.success.nil?
|
|
126
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'echo failed: unknown result')
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def dump_config()
|
|
130
|
+
send_dump_config()
|
|
131
|
+
return recv_dump_config()
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def send_dump_config()
|
|
135
|
+
send_message('dump_config', Dump_config_args)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def recv_dump_config()
|
|
139
|
+
result = receive_message(Dump_config_result)
|
|
140
|
+
return result.success unless result.success.nil?
|
|
141
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'dump_config failed: unknown result')
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def get_log(context)
|
|
145
|
+
send_get_log(context)
|
|
146
|
+
return recv_get_log()
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def send_get_log(context)
|
|
150
|
+
send_message('get_log', Get_log_args, :context => context)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def recv_get_log()
|
|
154
|
+
result = receive_message(Get_log_result)
|
|
155
|
+
return result.success unless result.success.nil?
|
|
156
|
+
raise result.error unless result.error.nil?
|
|
157
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_log failed: unknown result')
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def get_default_configuration(include_hadoop)
|
|
161
|
+
send_get_default_configuration(include_hadoop)
|
|
162
|
+
return recv_get_default_configuration()
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def send_get_default_configuration(include_hadoop)
|
|
166
|
+
send_message('get_default_configuration', Get_default_configuration_args, :include_hadoop => include_hadoop)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def recv_get_default_configuration()
|
|
170
|
+
result = receive_message(Get_default_configuration_result)
|
|
171
|
+
return result.success unless result.success.nil?
|
|
172
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_default_configuration failed: unknown result')
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def close(handle)
|
|
176
|
+
send_close(handle)
|
|
177
|
+
recv_close()
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def send_close(handle)
|
|
181
|
+
send_message('close', Close_args, :handle => handle)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def recv_close()
|
|
185
|
+
result = receive_message(Close_result)
|
|
186
|
+
raise result.error unless result.error.nil?
|
|
187
|
+
raise result.error2 unless result.error2.nil?
|
|
188
|
+
return
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def clean(log_context)
|
|
192
|
+
send_clean(log_context)
|
|
193
|
+
recv_clean()
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def send_clean(log_context)
|
|
197
|
+
send_message('clean', Clean_args, :log_context => log_context)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def recv_clean()
|
|
201
|
+
result = receive_message(Clean_result)
|
|
202
|
+
return
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
class Processor
|
|
208
|
+
include ::Thrift::Processor
|
|
209
|
+
|
|
210
|
+
def process_query(seqid, iprot, oprot)
|
|
211
|
+
args = read_args(iprot, Query_args)
|
|
212
|
+
result = Query_result.new()
|
|
213
|
+
begin
|
|
214
|
+
result.success = @handler.query(args.query)
|
|
215
|
+
rescue Impala::Protocol::Beeswax::BeeswaxException => error
|
|
216
|
+
result.error = error
|
|
217
|
+
end
|
|
218
|
+
write_result(result, oprot, 'query', seqid)
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def process_executeAndWait(seqid, iprot, oprot)
|
|
222
|
+
args = read_args(iprot, ExecuteAndWait_args)
|
|
223
|
+
result = ExecuteAndWait_result.new()
|
|
224
|
+
begin
|
|
225
|
+
result.success = @handler.executeAndWait(args.query, args.clientCtx)
|
|
226
|
+
rescue Impala::Protocol::Beeswax::BeeswaxException => error
|
|
227
|
+
result.error = error
|
|
228
|
+
end
|
|
229
|
+
write_result(result, oprot, 'executeAndWait', seqid)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
def process_explain(seqid, iprot, oprot)
|
|
233
|
+
args = read_args(iprot, Explain_args)
|
|
234
|
+
result = Explain_result.new()
|
|
235
|
+
begin
|
|
236
|
+
result.success = @handler.explain(args.query)
|
|
237
|
+
rescue Impala::Protocol::Beeswax::BeeswaxException => error
|
|
238
|
+
result.error = error
|
|
239
|
+
end
|
|
240
|
+
write_result(result, oprot, 'explain', seqid)
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
def process_fetch(seqid, iprot, oprot)
|
|
244
|
+
args = read_args(iprot, Fetch_args)
|
|
245
|
+
result = Fetch_result.new()
|
|
246
|
+
begin
|
|
247
|
+
result.success = @handler.fetch(args.query_id, args.start_over, args.fetch_size)
|
|
248
|
+
rescue Impala::Protocol::Beeswax::QueryNotFoundException => error
|
|
249
|
+
result.error = error
|
|
250
|
+
rescue Impala::Protocol::Beeswax::BeeswaxException => error2
|
|
251
|
+
result.error2 = error2
|
|
252
|
+
end
|
|
253
|
+
write_result(result, oprot, 'fetch', seqid)
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
def process_get_state(seqid, iprot, oprot)
|
|
257
|
+
args = read_args(iprot, Get_state_args)
|
|
258
|
+
result = Get_state_result.new()
|
|
259
|
+
begin
|
|
260
|
+
result.success = @handler.get_state(args.handle)
|
|
261
|
+
rescue Impala::Protocol::Beeswax::QueryNotFoundException => error
|
|
262
|
+
result.error = error
|
|
263
|
+
end
|
|
264
|
+
write_result(result, oprot, 'get_state', seqid)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
def process_get_results_metadata(seqid, iprot, oprot)
|
|
268
|
+
args = read_args(iprot, Get_results_metadata_args)
|
|
269
|
+
result = Get_results_metadata_result.new()
|
|
270
|
+
begin
|
|
271
|
+
result.success = @handler.get_results_metadata(args.handle)
|
|
272
|
+
rescue Impala::Protocol::Beeswax::QueryNotFoundException => error
|
|
273
|
+
result.error = error
|
|
274
|
+
end
|
|
275
|
+
write_result(result, oprot, 'get_results_metadata', seqid)
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
def process_echo(seqid, iprot, oprot)
|
|
279
|
+
args = read_args(iprot, Echo_args)
|
|
280
|
+
result = Echo_result.new()
|
|
281
|
+
result.success = @handler.echo(args.s)
|
|
282
|
+
write_result(result, oprot, 'echo', seqid)
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
def process_dump_config(seqid, iprot, oprot)
|
|
286
|
+
args = read_args(iprot, Dump_config_args)
|
|
287
|
+
result = Dump_config_result.new()
|
|
288
|
+
result.success = @handler.dump_config()
|
|
289
|
+
write_result(result, oprot, 'dump_config', seqid)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
def process_get_log(seqid, iprot, oprot)
|
|
293
|
+
args = read_args(iprot, Get_log_args)
|
|
294
|
+
result = Get_log_result.new()
|
|
295
|
+
begin
|
|
296
|
+
result.success = @handler.get_log(args.context)
|
|
297
|
+
rescue Impala::Protocol::Beeswax::QueryNotFoundException => error
|
|
298
|
+
result.error = error
|
|
299
|
+
end
|
|
300
|
+
write_result(result, oprot, 'get_log', seqid)
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
def process_get_default_configuration(seqid, iprot, oprot)
|
|
304
|
+
args = read_args(iprot, Get_default_configuration_args)
|
|
305
|
+
result = Get_default_configuration_result.new()
|
|
306
|
+
result.success = @handler.get_default_configuration(args.include_hadoop)
|
|
307
|
+
write_result(result, oprot, 'get_default_configuration', seqid)
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
def process_close(seqid, iprot, oprot)
|
|
311
|
+
args = read_args(iprot, Close_args)
|
|
312
|
+
result = Close_result.new()
|
|
313
|
+
begin
|
|
314
|
+
@handler.close(args.handle)
|
|
315
|
+
rescue Impala::Protocol::Beeswax::QueryNotFoundException => error
|
|
316
|
+
result.error = error
|
|
317
|
+
rescue Impala::Protocol::Beeswax::BeeswaxException => error2
|
|
318
|
+
result.error2 = error2
|
|
319
|
+
end
|
|
320
|
+
write_result(result, oprot, 'close', seqid)
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
def process_clean(seqid, iprot, oprot)
|
|
324
|
+
args = read_args(iprot, Clean_args)
|
|
325
|
+
result = Clean_result.new()
|
|
326
|
+
@handler.clean(args.log_context)
|
|
327
|
+
write_result(result, oprot, 'clean', seqid)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
# HELPER FUNCTIONS AND STRUCTURES
|
|
333
|
+
|
|
334
|
+
class Query_args
|
|
335
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
336
|
+
QUERY = 1
|
|
337
|
+
|
|
338
|
+
FIELDS = {
|
|
339
|
+
QUERY => { :type => ::Thrift::Types::STRUCT, :name => 'query', :class => Impala::Protocol::Beeswax::Query }
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
def struct_fields; FIELDS; end
|
|
343
|
+
|
|
344
|
+
def validate
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
::Thrift::Struct.generate_accessors self
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
class Query_result
|
|
351
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
352
|
+
SUCCESS = 0
|
|
353
|
+
ERROR = 1
|
|
354
|
+
|
|
355
|
+
FIELDS = {
|
|
356
|
+
SUCCESS => { :type => ::Thrift::Types::STRUCT, :name => 'success', :class => Impala::Protocol::Beeswax::QueryHandle },
|
|
357
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::BeeswaxException }
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
def struct_fields; FIELDS; end
|
|
361
|
+
|
|
362
|
+
def validate
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
::Thrift::Struct.generate_accessors self
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
class ExecuteAndWait_args
|
|
369
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
370
|
+
QUERY = 1
|
|
371
|
+
CLIENTCTX = 2
|
|
372
|
+
|
|
373
|
+
FIELDS = {
|
|
374
|
+
QUERY => { :type => ::Thrift::Types::STRUCT, :name => 'query', :class => Impala::Protocol::Beeswax::Query },
|
|
375
|
+
CLIENTCTX => { :type => ::Thrift::Types::STRING, :name => 'clientCtx' }
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
def struct_fields; FIELDS; end
|
|
379
|
+
|
|
380
|
+
def validate
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
::Thrift::Struct.generate_accessors self
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
class ExecuteAndWait_result
|
|
387
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
388
|
+
SUCCESS = 0
|
|
389
|
+
ERROR = 1
|
|
390
|
+
|
|
391
|
+
FIELDS = {
|
|
392
|
+
SUCCESS => { :type => ::Thrift::Types::STRUCT, :name => 'success', :class => Impala::Protocol::Beeswax::QueryHandle },
|
|
393
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::BeeswaxException }
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
def struct_fields; FIELDS; end
|
|
397
|
+
|
|
398
|
+
def validate
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
::Thrift::Struct.generate_accessors self
|
|
402
|
+
end
|
|
403
|
+
|
|
404
|
+
class Explain_args
|
|
405
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
406
|
+
QUERY = 1
|
|
407
|
+
|
|
408
|
+
FIELDS = {
|
|
409
|
+
QUERY => { :type => ::Thrift::Types::STRUCT, :name => 'query', :class => Impala::Protocol::Beeswax::Query }
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
def struct_fields; FIELDS; end
|
|
413
|
+
|
|
414
|
+
def validate
|
|
415
|
+
end
|
|
416
|
+
|
|
417
|
+
::Thrift::Struct.generate_accessors self
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
class Explain_result
|
|
421
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
422
|
+
SUCCESS = 0
|
|
423
|
+
ERROR = 1
|
|
424
|
+
|
|
425
|
+
FIELDS = {
|
|
426
|
+
SUCCESS => { :type => ::Thrift::Types::STRUCT, :name => 'success', :class => Impala::Protocol::Beeswax::QueryExplanation },
|
|
427
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::BeeswaxException }
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
def struct_fields; FIELDS; end
|
|
431
|
+
|
|
432
|
+
def validate
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
::Thrift::Struct.generate_accessors self
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
class Fetch_args
|
|
439
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
440
|
+
QUERY_ID = 1
|
|
441
|
+
START_OVER = 2
|
|
442
|
+
FETCH_SIZE = 3
|
|
443
|
+
|
|
444
|
+
FIELDS = {
|
|
445
|
+
QUERY_ID => { :type => ::Thrift::Types::STRUCT, :name => 'query_id', :class => Impala::Protocol::Beeswax::QueryHandle },
|
|
446
|
+
START_OVER => { :type => ::Thrift::Types::BOOL, :name => 'start_over' },
|
|
447
|
+
FETCH_SIZE => { :type => ::Thrift::Types::I32, :name => 'fetch_size', :default => -1 }
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
def struct_fields; FIELDS; end
|
|
451
|
+
|
|
452
|
+
def validate
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
::Thrift::Struct.generate_accessors self
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
class Fetch_result
|
|
459
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
460
|
+
SUCCESS = 0
|
|
461
|
+
ERROR = 1
|
|
462
|
+
ERROR2 = 2
|
|
463
|
+
|
|
464
|
+
FIELDS = {
|
|
465
|
+
SUCCESS => { :type => ::Thrift::Types::STRUCT, :name => 'success', :class => Impala::Protocol::Beeswax::Results },
|
|
466
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::QueryNotFoundException },
|
|
467
|
+
ERROR2 => { :type => ::Thrift::Types::STRUCT, :name => 'error2', :class => Impala::Protocol::Beeswax::BeeswaxException }
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
def struct_fields; FIELDS; end
|
|
471
|
+
|
|
472
|
+
def validate
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
::Thrift::Struct.generate_accessors self
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
class Get_state_args
|
|
479
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
480
|
+
HANDLE = 1
|
|
481
|
+
|
|
482
|
+
FIELDS = {
|
|
483
|
+
HANDLE => { :type => ::Thrift::Types::STRUCT, :name => 'handle', :class => Impala::Protocol::Beeswax::QueryHandle }
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
def struct_fields; FIELDS; end
|
|
487
|
+
|
|
488
|
+
def validate
|
|
489
|
+
end
|
|
490
|
+
|
|
491
|
+
::Thrift::Struct.generate_accessors self
|
|
492
|
+
end
|
|
493
|
+
|
|
494
|
+
class Get_state_result
|
|
495
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
496
|
+
SUCCESS = 0
|
|
497
|
+
ERROR = 1
|
|
498
|
+
|
|
499
|
+
FIELDS = {
|
|
500
|
+
SUCCESS => { :type => ::Thrift::Types::I32, :name => 'success', :enum_class => Impala::Protocol::Beeswax::QueryState },
|
|
501
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::QueryNotFoundException }
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
def struct_fields; FIELDS; end
|
|
505
|
+
|
|
506
|
+
def validate
|
|
507
|
+
unless @success.nil? || Impala::Protocol::Beeswax::QueryState::VALID_VALUES.include?(@success)
|
|
508
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field success!')
|
|
509
|
+
end
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
::Thrift::Struct.generate_accessors self
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
class Get_results_metadata_args
|
|
516
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
517
|
+
HANDLE = 1
|
|
518
|
+
|
|
519
|
+
FIELDS = {
|
|
520
|
+
HANDLE => { :type => ::Thrift::Types::STRUCT, :name => 'handle', :class => Impala::Protocol::Beeswax::QueryHandle }
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
def struct_fields; FIELDS; end
|
|
524
|
+
|
|
525
|
+
def validate
|
|
526
|
+
end
|
|
527
|
+
|
|
528
|
+
::Thrift::Struct.generate_accessors self
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
class Get_results_metadata_result
|
|
532
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
533
|
+
SUCCESS = 0
|
|
534
|
+
ERROR = 1
|
|
535
|
+
|
|
536
|
+
FIELDS = {
|
|
537
|
+
SUCCESS => { :type => ::Thrift::Types::STRUCT, :name => 'success', :class => Impala::Protocol::Beeswax::ResultsMetadata },
|
|
538
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::QueryNotFoundException }
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
def struct_fields; FIELDS; end
|
|
542
|
+
|
|
543
|
+
def validate
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
::Thrift::Struct.generate_accessors self
|
|
547
|
+
end
|
|
548
|
+
|
|
549
|
+
class Echo_args
|
|
550
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
551
|
+
S = 1
|
|
552
|
+
|
|
553
|
+
FIELDS = {
|
|
554
|
+
S => { :type => ::Thrift::Types::STRING, :name => 's' }
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
def struct_fields; FIELDS; end
|
|
558
|
+
|
|
559
|
+
def validate
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
::Thrift::Struct.generate_accessors self
|
|
563
|
+
end
|
|
564
|
+
|
|
565
|
+
class Echo_result
|
|
566
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
567
|
+
SUCCESS = 0
|
|
568
|
+
|
|
569
|
+
FIELDS = {
|
|
570
|
+
SUCCESS => { :type => ::Thrift::Types::STRING, :name => 'success' }
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
def struct_fields; FIELDS; end
|
|
574
|
+
|
|
575
|
+
def validate
|
|
576
|
+
end
|
|
577
|
+
|
|
578
|
+
::Thrift::Struct.generate_accessors self
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
class Dump_config_args
|
|
582
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
583
|
+
|
|
584
|
+
FIELDS = {
|
|
585
|
+
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
def struct_fields; FIELDS; end
|
|
589
|
+
|
|
590
|
+
def validate
|
|
591
|
+
end
|
|
592
|
+
|
|
593
|
+
::Thrift::Struct.generate_accessors self
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
class Dump_config_result
|
|
597
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
598
|
+
SUCCESS = 0
|
|
599
|
+
|
|
600
|
+
FIELDS = {
|
|
601
|
+
SUCCESS => { :type => ::Thrift::Types::STRING, :name => 'success' }
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
def struct_fields; FIELDS; end
|
|
605
|
+
|
|
606
|
+
def validate
|
|
607
|
+
end
|
|
608
|
+
|
|
609
|
+
::Thrift::Struct.generate_accessors self
|
|
610
|
+
end
|
|
611
|
+
|
|
612
|
+
class Get_log_args
|
|
613
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
614
|
+
CONTEXT = 1
|
|
615
|
+
|
|
616
|
+
FIELDS = {
|
|
617
|
+
CONTEXT => { :type => ::Thrift::Types::STRING, :name => 'context' }
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
def struct_fields; FIELDS; end
|
|
621
|
+
|
|
622
|
+
def validate
|
|
623
|
+
end
|
|
624
|
+
|
|
625
|
+
::Thrift::Struct.generate_accessors self
|
|
626
|
+
end
|
|
627
|
+
|
|
628
|
+
class Get_log_result
|
|
629
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
630
|
+
SUCCESS = 0
|
|
631
|
+
ERROR = 1
|
|
632
|
+
|
|
633
|
+
FIELDS = {
|
|
634
|
+
SUCCESS => { :type => ::Thrift::Types::STRING, :name => 'success' },
|
|
635
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::QueryNotFoundException }
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
def struct_fields; FIELDS; end
|
|
639
|
+
|
|
640
|
+
def validate
|
|
641
|
+
end
|
|
642
|
+
|
|
643
|
+
::Thrift::Struct.generate_accessors self
|
|
644
|
+
end
|
|
645
|
+
|
|
646
|
+
class Get_default_configuration_args
|
|
647
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
648
|
+
INCLUDE_HADOOP = 1
|
|
649
|
+
|
|
650
|
+
FIELDS = {
|
|
651
|
+
INCLUDE_HADOOP => { :type => ::Thrift::Types::BOOL, :name => 'include_hadoop' }
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
def struct_fields; FIELDS; end
|
|
655
|
+
|
|
656
|
+
def validate
|
|
657
|
+
end
|
|
658
|
+
|
|
659
|
+
::Thrift::Struct.generate_accessors self
|
|
660
|
+
end
|
|
661
|
+
|
|
662
|
+
class Get_default_configuration_result
|
|
663
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
664
|
+
SUCCESS = 0
|
|
665
|
+
|
|
666
|
+
FIELDS = {
|
|
667
|
+
SUCCESS => { :type => ::Thrift::Types::LIST, :name => 'success', :element => { :type => ::Thrift::Types::STRUCT, :class => Impala::Protocol::Beeswax::ConfigVariable } }
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
def struct_fields; FIELDS; end
|
|
671
|
+
|
|
672
|
+
def validate
|
|
673
|
+
end
|
|
674
|
+
|
|
675
|
+
::Thrift::Struct.generate_accessors self
|
|
676
|
+
end
|
|
677
|
+
|
|
678
|
+
class Close_args
|
|
679
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
680
|
+
HANDLE = 1
|
|
681
|
+
|
|
682
|
+
FIELDS = {
|
|
683
|
+
HANDLE => { :type => ::Thrift::Types::STRUCT, :name => 'handle', :class => Impala::Protocol::Beeswax::QueryHandle }
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
def struct_fields; FIELDS; end
|
|
687
|
+
|
|
688
|
+
def validate
|
|
689
|
+
end
|
|
690
|
+
|
|
691
|
+
::Thrift::Struct.generate_accessors self
|
|
692
|
+
end
|
|
693
|
+
|
|
694
|
+
class Close_result
|
|
695
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
696
|
+
ERROR = 1
|
|
697
|
+
ERROR2 = 2
|
|
698
|
+
|
|
699
|
+
FIELDS = {
|
|
700
|
+
ERROR => { :type => ::Thrift::Types::STRUCT, :name => 'error', :class => Impala::Protocol::Beeswax::QueryNotFoundException },
|
|
701
|
+
ERROR2 => { :type => ::Thrift::Types::STRUCT, :name => 'error2', :class => Impala::Protocol::Beeswax::BeeswaxException }
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
def struct_fields; FIELDS; end
|
|
705
|
+
|
|
706
|
+
def validate
|
|
707
|
+
end
|
|
708
|
+
|
|
709
|
+
::Thrift::Struct.generate_accessors self
|
|
710
|
+
end
|
|
711
|
+
|
|
712
|
+
class Clean_args
|
|
713
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
714
|
+
LOG_CONTEXT = 1
|
|
715
|
+
|
|
716
|
+
FIELDS = {
|
|
717
|
+
LOG_CONTEXT => { :type => ::Thrift::Types::STRING, :name => 'log_context' }
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
def struct_fields; FIELDS; end
|
|
721
|
+
|
|
722
|
+
def validate
|
|
723
|
+
end
|
|
724
|
+
|
|
725
|
+
::Thrift::Struct.generate_accessors self
|
|
726
|
+
end
|
|
727
|
+
|
|
728
|
+
class Clean_result
|
|
729
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
|
730
|
+
|
|
731
|
+
FIELDS = {
|
|
732
|
+
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
def struct_fields; FIELDS; end
|
|
736
|
+
|
|
737
|
+
def validate
|
|
738
|
+
end
|
|
739
|
+
|
|
740
|
+
::Thrift::Struct.generate_accessors self
|
|
741
|
+
end
|
|
742
|
+
|
|
743
|
+
end
|
|
744
|
+
|
|
745
|
+
end
|
|
746
|
+
end
|
|
747
|
+
end
|