ecaefd1da7
* Add bulk wal entry * add sequence * move arrow ipc to common
205 lines
5.1 KiB
Protocol Buffer
205 lines
5.1 KiB
Protocol Buffer
// 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;
|
|
|
|
option java_package = "io.greptime.v1";
|
|
option java_outer_classname = "Common";
|
|
option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1";
|
|
|
|
message QueryContext {
|
|
string current_catalog = 1;
|
|
string current_schema = 2;
|
|
string timezone = 4;
|
|
map<string, string> extensions = 5;
|
|
uint32 channel = 6;
|
|
SnapshotSequences snapshot_seqs = 7;
|
|
// Explain options for the query.
|
|
ExplainOptions explain = 8;
|
|
}
|
|
|
|
message SnapshotSequences {
|
|
// Mappings of the RegionId to the minimal sequence of SST file to scan.
|
|
map<uint64, uint64> sst_min_sequences = 1;
|
|
// mapping of RegionId to SequenceNumber, for snapshot read, meaning that the
|
|
// read should only container data that was committed before (and include) the
|
|
// given sequence number
|
|
map<uint64, uint64> snapshot_seqs = 7;
|
|
}
|
|
|
|
message ExplainOptions {
|
|
// Whether to enable verbose explain output.
|
|
bool verbose = 1;
|
|
}
|
|
|
|
message RequestHeader {
|
|
// The `catalog` that is selected to be used in this request.
|
|
string catalog = 1;
|
|
// The `schema` that is selected to be used in this request.
|
|
string schema = 2;
|
|
// The `authorization` header, much like http's authorization header.
|
|
AuthHeader authorization = 3;
|
|
// The `dbname` for the request
|
|
string dbname = 4;
|
|
// Encoded trace_id & span_id, follow the w3c Trace Context
|
|
// https://www.w3.org/TR/trace-context/#header-name
|
|
map<string, string> tracing_context = 5;
|
|
// The `timezone` for the request
|
|
string timezone = 6;
|
|
}
|
|
|
|
message ResponseHeader { Status status = 1; }
|
|
|
|
message Status {
|
|
// Corresponding to the `StatusCode` definition of GreptimeDB
|
|
uint32 status_code = 1;
|
|
string err_msg = 2;
|
|
}
|
|
|
|
message AuthHeader {
|
|
oneof auth_scheme {
|
|
Basic basic = 1;
|
|
Token token = 2;
|
|
}
|
|
}
|
|
|
|
message Basic {
|
|
string username = 1;
|
|
string password = 2;
|
|
}
|
|
|
|
message Token { string token = 1; }
|
|
|
|
message TableName {
|
|
string catalog_name = 1;
|
|
string schema_name = 2;
|
|
string table_name = 3;
|
|
}
|
|
|
|
message AffectedRows { uint32 value = 1; }
|
|
|
|
message Metrics { bytes metrics = 1; }
|
|
|
|
message ExpireAfter { int64 value = 1; }
|
|
|
|
message FlightMetadata {
|
|
AffectedRows affected_rows = 1;
|
|
Metrics metrics = 2;
|
|
}
|
|
|
|
enum SemanticType {
|
|
TAG = 0;
|
|
FIELD = 1;
|
|
TIMESTAMP = 2;
|
|
}
|
|
|
|
enum ColumnDataType {
|
|
BOOLEAN = 0;
|
|
INT8 = 1;
|
|
INT16 = 2;
|
|
INT32 = 3;
|
|
INT64 = 4;
|
|
UINT8 = 5;
|
|
UINT16 = 6;
|
|
UINT32 = 7;
|
|
UINT64 = 8;
|
|
FLOAT32 = 9;
|
|
FLOAT64 = 10;
|
|
BINARY = 11;
|
|
STRING = 12;
|
|
DATE = 13;
|
|
DATETIME = 14;
|
|
TIMESTAMP_SECOND = 15;
|
|
TIMESTAMP_MILLISECOND = 16;
|
|
TIMESTAMP_MICROSECOND = 17;
|
|
TIMESTAMP_NANOSECOND = 18;
|
|
TIME_SECOND = 19;
|
|
TIME_MILLISECOND = 20;
|
|
TIME_MICROSECOND = 21;
|
|
TIME_NANOSECOND = 22;
|
|
INTERVAL_YEAR_MONTH = 23;
|
|
INTERVAL_DAY_TIME = 24;
|
|
INTERVAL_MONTH_DAY_NANO = 25;
|
|
DECIMAL128 = 30;
|
|
JSON = 31;
|
|
VECTOR = 32;
|
|
}
|
|
|
|
message IntervalMonthDayNano {
|
|
int32 months = 1;
|
|
int32 days = 2;
|
|
int64 nanoseconds = 3;
|
|
}
|
|
|
|
// (hi: high 64 bits, lo: low 64 bits) are used to keep the decimal128 value.
|
|
message Decimal128 {
|
|
int64 hi = 1;
|
|
int64 lo = 2;
|
|
}
|
|
|
|
// Type extension for some complex types
|
|
message ColumnDataTypeExtension {
|
|
oneof type_ext {
|
|
DecimalTypeExtension decimal_type = 1;
|
|
// Marks the binary column in proto is actually a JSON column.
|
|
JsonTypeExtension json_type = 2;
|
|
VectorTypeExtension vector_type = 3;
|
|
}
|
|
}
|
|
|
|
message DecimalTypeExtension {
|
|
int32 precision = 1;
|
|
int32 scale = 2;
|
|
}
|
|
|
|
enum JsonTypeExtension {
|
|
JSON_BINARY = 0;
|
|
}
|
|
|
|
message VectorTypeExtension {
|
|
uint32 dim = 1;
|
|
}
|
|
|
|
// Additional options for the column.
|
|
message ColumnOptions {
|
|
// Supported keys:
|
|
// "fulltext":
|
|
// A JSON encoded string containing full-text search options for the column.
|
|
//
|
|
// The fulltext options JSON structure:
|
|
// {
|
|
// "enable": bool, // Indicates whether full-text search is
|
|
// // enabled for the column.
|
|
//
|
|
// "analyzer": string, // The language-specific text analyzer to
|
|
// // use for indexing and searching text.
|
|
// // Supported values: ["English" (Default), "Chinese"].
|
|
//
|
|
// "case-sensitive": bool // Indicates whether the text should be treated
|
|
// // as case-sensitive during full-text search.
|
|
// }
|
|
//
|
|
// Example:
|
|
// "fulltext": "{\"enable\": true, \"analyzer\": \"English\", \"case-sensitive\": false}"
|
|
map<string, string> options = 1;
|
|
}
|
|
|
|
message ArrowIpc {
|
|
bytes schema = 1;
|
|
bytes data_header = 2;
|
|
bytes payload = 3;
|
|
}
|