blob: b6bcaeb624b1097ca4a4b6f4eee8a9a0016e52c0 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package tajo.client;
option java_package = "org.apache.tajo.ipc";
option java_outer_classname = "ClientProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
import "tajo_protos.proto";
import "TajoIdProtos.proto";
import "CatalogProtos.proto";
import "PrimitiveProtos.proto";
import "DataTypes.proto";
message CreateSessionRequest {
required string username = 1;
optional string base_database_name = 2;
}
message CreateSessionResponse {
required ReturnState state = 1;
optional SessionIdProto session_id = 2;
optional KeyValueSetProto session_vars = 3;
}
message UpdateSessionVariableRequest {
optional SessionIdProto session_id = 1;
optional KeyValueSetProto session_vars = 2;
repeated string unset_variables = 3;
}
message SessionUpdateResponse {
required ReturnState state = 1;
optional KeyValueSetProto session_vars = 2;
}
message SessionedStringProto {
optional SessionIdProto session_id = 1;
optional string value = 2;
}
message ExplainQueryResponse {
required ReturnState state = 1;
optional string explain = 2;
}
message QueryRequest {
optional SessionIdProto session_id = 1;
required string query = 2;
repeated KeyValueProto session_vars = 3;
required bool is_json = 4;
}
message UpdateQueryResponse {
required ReturnState state = 1;
optional KeyValueSetProto session_vars = 2;
}
message GetQueryResultRequest {
optional SessionIdProto session_id = 1;
required QueryIdProto query_id = 2;
}
message GetQueryResultResponse {
required ReturnState state = 1;
optional TableDescProto table_desc = 2;
optional string tajo_user_name = 3;
}
message QueryIdRequest {
optional SessionIdProto session_id = 1;
required QueryIdProto query_id = 2;
}
message GetQueryListRequest {
optional SessionIdProto session_id = 1;
}
message BriefQueryInfo {
required QueryIdProto query_id = 1;
required QueryState state = 2;
required int64 start_time = 3;
required int64 finish_time = 4;
required string query = 5;
optional string query_master_host = 6;
optional int32 query_master_port = 7;
required float progress = 8;
}
message GetQueryListResponse {
required ReturnState state = 1;
repeated BriefQueryInfo query_list = 2;
}
message GetQueryStatusRequest {
optional SessionIdProto session_id = 1;
required QueryIdProto query_id = 2;
}
message SerializedResultSet {
required SchemaProto schema = 1;
required int32 rows = 2;
optional int32 decompressed_length = 3;
optional CodecType decompress_codec = 4;
optional bytes serialized_tuples = 5;
}
message SubmitQueryResponse {
required ReturnState state = 1;
enum ResultType {
NO_RESULT = 0; // this query does not have any result.
ENCLOSED = 1; // the response encloses the query result.
FETCH = 2; // the query result should be fetched
}
optional ResultType result_type = 2;
optional QueryIdProto query_id = 3;
optional string user_name = 4;
optional string query_master_host = 6;
optional int32 query_master_port = 7;
optional SerializedResultSet result_set = 8;
optional TableDescProto table_desc = 9;
optional int32 max_row_num = 10;
optional KeyValueSetProto session_vars = 11;
}
message GetQueryStatusResponse {
required ReturnState state = 1;
optional QueryIdProto query_id = 2;
optional QueryState query_state = 3;
optional float progress = 4;
optional int64 submit_time = 5;
optional int64 finish_time = 7;
optional bool has_result = 8;
optional string error_message = 9;
optional string error_trace = 10;
optional string query_master_host = 11;
optional int32 query_master_port = 12;
}
message GetQueryResultDataRequest {
required SessionIdProto session_id = 1;
required QueryIdProto query_id = 2;
required int32 fetch_row_num = 3;
optional CodecType compress_codec = 4;
}
message GetQueryResultDataResponse {
required ReturnState state = 1;
optional SerializedResultSet result_set = 2;
}
message GetClusterInfoRequest {
optional SessionIdProto session_id = 1;
}
message WorkerResourceInfo {
required WorkerConnectionInfoProto connection_info = 1;
required NodeResourceProto total_resource = 2;
required NodeResourceProto available_resource = 3;
required int32 num_running_tasks = 4;
required string worker_status = 5;
required int64 last_heartbeat = 6;
required int32 num_query_master_tasks = 7;
}
message GetClusterInfoResponse {
required ReturnState state = 1;
repeated WorkerResourceInfo worker_list = 2;
}
message CreateTableRequest {
optional SessionIdProto session_id = 1;
required string name = 2;
optional SchemaProto schema = 3;
required TableProto meta = 4;
required string path = 5;
optional PartitionMethodProto partition = 6;
}
message DropTableRequest {
optional SessionIdProto session_id = 1;
required string name = 2;
optional bool purge = 3 [default = false];
}
message QueryInfoProto {
required string query_id = 1;
optional string sql = 2;
optional KeyValueSetProto context_vars = 3;
optional QueryState query_state = 4;
optional float progress = 5;
optional int64 start_time = 6;
optional int64 finish_time = 7;
optional string last_message = 8;
optional string host_name_of_qm = 9;
optional int32 query_master_port = 10;
optional int32 query_master_client_port = 11;
optional int32 query_master_info_port = 12;
optional TableDescProto result_desc = 13;
}
message StageHistoryProto {
required string execution_block_id =1;
required string state = 2;
optional int64 start_time = 3;
optional int64 finish_time = 4;
optional int32 succeeded_object_count = 5;
optional int32 failed_object_count = 6;
optional int32 killed_object_count = 7;
optional int32 total_scheduled_objects_count = 8;
optional int64 total_input_bytes = 9;
optional int64 total_read_bytes = 10;
optional int64 total_read_rows = 11;
optional int64 total_write_bytes = 12;
optional int64 total_write_rows = 13;
optional int32 num_shuffles = 14;
optional float progress =15;
optional string plan = 16;
optional int32 host_local_assigned = 17;
optional int32 rack_local_assigned = 18;
}
message QueryHistoryProto {
required string query_id = 1;
optional string query_master = 2;
optional int32 http_port = 3;
optional string logical_plan = 4;
optional string distributed_plan = 5;
repeated KeyValueProto session_variables = 6;
repeated StageHistoryProto stage_histories = 7;
}
message GetQueryHistoryResponse {
required ReturnState state = 1;
optional QueryHistoryProto query_history = 2;
}
message GetQueryInfoResponse {
required ReturnState state = 1;
optional QueryInfoProto query_info = 2;
}
message CreateIndexResponse {
required ReturnState result = 1;
optional IndexDescProto index_desc = 2;
}
message GetIndexWithColumnsRequest {
required SessionIdProto session_id = 1;
required string table_name = 2;
repeated string column_names = 3;
}