123 lines
3.6 KiB
Thrift
123 lines
3.6 KiB
Thrift
// 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.
|
|
|
|
namespace java org.apache.doris.thrift
|
|
namespace cpp doris
|
|
|
|
include "Types.thrift"
|
|
include "Status.thrift"
|
|
|
|
|
|
// Parameters to open().
|
|
struct TScanOpenParams {
|
|
|
|
1: required string cluster
|
|
|
|
2: required string database
|
|
|
|
3: required string table
|
|
|
|
// tablets to scan
|
|
4: required list<i64> tablet_ids
|
|
|
|
// base64 encoded binary plan fragment
|
|
5: required string opaqued_query_plan
|
|
|
|
// A string specified for the table that is passed to the external data source.
|
|
// Always set, may be an empty string.
|
|
6: optional i32 batch_size
|
|
|
|
// reserved params for use
|
|
7: optional map<string,string> properties
|
|
|
|
// The query limit, if specified.
|
|
8: optional i64 limit
|
|
|
|
// The authenticated user name. Always set.
|
|
// maybe usefullless
|
|
9: optional string user
|
|
|
|
10: optional string passwd
|
|
// max keep alive time min
|
|
11: optional i16 keep_alive_min
|
|
|
|
12: optional i32 execution_timeout
|
|
|
|
// memory limit for a single query
|
|
13: optional i64 mem_limit
|
|
}
|
|
|
|
struct TScanColumnDesc {
|
|
// The column name
|
|
1: optional string name
|
|
// The column type. Always set.
|
|
2: optional Types.TPrimitiveType type
|
|
}
|
|
|
|
// Returned by open().
|
|
struct TScanOpenResult {
|
|
1: required Status.TStatus status
|
|
// An opaque context_id used in subsequent getNext()/close() calls. Required.
|
|
2: optional string context_id
|
|
// selected fields
|
|
3: optional list<TScanColumnDesc> selected_columns
|
|
|
|
}
|
|
|
|
// Parameters to getNext()
|
|
struct TScanNextBatchParams {
|
|
// The opaque handle returned by the previous open() call. Always set.
|
|
1: optional string context_id // doris olap engine context id
|
|
2: optional i64 offset // doris should check the offset to prevent duplicate rpc calls
|
|
}
|
|
|
|
// Returned by getNext().
|
|
struct TScanBatchResult {
|
|
1: required Status.TStatus status
|
|
|
|
// If true, reached the end of the result stream; subsequent calls to
|
|
// getNext() won’t return any more results. Required.
|
|
2: optional bool eos
|
|
|
|
// A batch of rows of arrow format to return, if any exist. The number of rows in the batch
|
|
// should be less than or equal to the batch_size specified in TOpenParams.
|
|
3: optional binary rows
|
|
}
|
|
|
|
// Parameters to close()
|
|
struct TScanCloseParams {
|
|
// The opaque handle returned by the previous open() call. Always set.
|
|
1: optional string context_id
|
|
}
|
|
|
|
// Returned by close().
|
|
struct TScanCloseResult {
|
|
1: required Status.TStatus status
|
|
}
|
|
|
|
// scan service expose ability of scanning data ability to other compute system
|
|
service TDorisExternalService {
|
|
// doris will build a scan context for this session, context_id returned if success
|
|
TScanOpenResult open_scanner(1: TScanOpenParams params);
|
|
|
|
// return the batch_size of data
|
|
TScanBatchResult get_next(1: TScanNextBatchParams params);
|
|
|
|
// release the context resource associated with the context_id
|
|
TScanCloseResult close_scanner(1: TScanCloseParams params);
|
|
}
|