blob: 483df1967098e0928b8f19a20e544db0500f28f3 [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.
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 query_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);
}