// Copyright 2023 Greptime Team // // Licensed 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. syntax = "proto3"; package greptime.v1.region; option java_package = "io.greptime.v1.region"; option java_outer_classname = "Server"; option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1/region"; import "greptime/v1/common.proto"; import "greptime/v1/row.proto"; service Region { rpc Handle(RegionRequest) returns (RegionResponse); } message RegionRequestHeader { // TraceID of request uint64 trace_id = 1; // SpanID of request uint64 span_id = 2; } message RegionRequest { RegionRequestHeader header = 1; // query request is handled in flight services. oneof body { InsertRequests inserts = 3; DeleteRequests deletes = 4; CreateRequest create = 5; DropRequest drop = 6; OpenRequest open = 7; CloseRequest close = 8; AlterRequest alter = 9; FlushRequest flush = 10; CompactRequest compact = 11; } } message RegionResponse { ResponseHeader header = 1; uint64 affected_rows = 2; } message InsertRequests { repeated InsertRequest requests = 1; } message DeleteRequests { repeated DeleteRequest requests = 1; } message InsertRequest { uint64 region_id = 1; Rows rows = 2; } message DeleteRequest { uint64 region_id = 1; Rows rows = 2; } message QueryRequest { uint64 region_id = 1; // substrait plan to query bytes plan = 2; } message CreateRequest { uint64 region_id = 1; // Region engine name string engine = 2; // Columns in this region. repeated ColumnDef column_defs = 3; // Id of columns in the primary key. repeated uint32 primary_key = 4; // Create region if not exists. bool create_if_not_exists = 5; // Directory for region's data home. Usually is composed by catalog and table // id string region_dir = 6; // Options of the created region. map options = 7; // TODO: add partition def } message DropRequest { uint64 region_id = 1; } message OpenRequest { uint64 region_id = 1; // Region engine name string engine = 2; // Data directory of the region. string region_dir = 3; // Options of the opened region. map options = 4; } message CloseRequest { uint64 region_id = 1; } // TODO: implement alter request message AlterRequest { uint64 region_id = 1; } message FlushRequest { uint64 region_id = 1; } message CompactRequest { uint64 region_id = 1; } message ColumnDef { string name = 1; uint32 column_id = 2; ColumnDataType datatype = 3; bool is_nullable = 4; bytes default_constraint = 5; SemanticType semantic_type = 6; }