// 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 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 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 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); }