From fad8f442ef2a148ae5c4561fd3889255b49a724a Mon Sep 17 00:00:00 2001 From: fys <40801205+Fengys123@users.noreply.github.com> Date: Thu, 20 Oct 2022 12:41:15 +0800 Subject: [PATCH] feat: modify proto for distribute insert (#327) --- src/api/greptime/v1/common.proto | 4 ++++ src/api/greptime/v1/database.proto | 2 ++ src/api/greptime/v1/greptime.proto | 6 ++++-- src/client/examples/insert.rs | 3 +++ src/datanode/src/tests/grpc_test.rs | 1 + src/frontend/src/instance.rs | 2 ++ src/servers/src/influxdb.rs | 1 + src/servers/src/opentsdb/codec.rs | 3 +++ 8 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/api/greptime/v1/common.proto b/src/api/greptime/v1/common.proto index bda7a54a70..e5c5a55785 100644 --- a/src/api/greptime/v1/common.proto +++ b/src/api/greptime/v1/common.proto @@ -2,6 +2,10 @@ syntax = "proto3"; package greptime.v1; +message RequestHeader { + string tenant = 1; +} + message ExprHeader { uint32 version = 1; } diff --git a/src/api/greptime/v1/database.proto b/src/api/greptime/v1/database.proto index 1d98b4fc82..417a1b205e 100644 --- a/src/api/greptime/v1/database.proto +++ b/src/api/greptime/v1/database.proto @@ -55,6 +55,8 @@ message InsertExpr { // The "sql" field is meant to be removed in the future. string sql = 3; } + + map options = 4; } // TODO(jiachun) diff --git a/src/api/greptime/v1/greptime.proto b/src/api/greptime/v1/greptime.proto index bd7659046d..1f2d83be65 100644 --- a/src/api/greptime/v1/greptime.proto +++ b/src/api/greptime/v1/greptime.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package greptime.v1; import "greptime/v1/admin.proto"; +import "greptime/v1/common.proto"; import "greptime/v1/database.proto"; service Greptime { @@ -10,8 +11,9 @@ service Greptime { } message BatchRequest { - repeated AdminRequest admins = 1; - repeated DatabaseRequest databases = 2; + RequestHeader header = 1; + repeated AdminRequest admins = 2; + repeated DatabaseRequest databases = 3; } message BatchResponse { diff --git a/src/client/examples/insert.rs b/src/client/examples/insert.rs index 2b2e812a22..e3e2544842 100644 --- a/src/client/examples/insert.rs +++ b/src/client/examples/insert.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use api::v1::{codec::InsertBatch, *}; use client::{Client, Database}; @@ -18,6 +20,7 @@ async fn run() { expr: Some(insert_expr::Expr::Values(insert_expr::Values { values: insert_batches(), })), + options: HashMap::default(), }; db.insert(expr).await.unwrap(); } diff --git a/src/datanode/src/tests/grpc_test.rs b/src/datanode/src/tests/grpc_test.rs index 6999f02d11..0ef48218ff 100644 --- a/src/datanode/src/tests/grpc_test.rs +++ b/src/datanode/src/tests/grpc_test.rs @@ -162,6 +162,7 @@ async fn insert_and_assert(db: &Database) { let expr = InsertExpr { table_name: "demo".to_string(), expr: Some(insert_expr::Expr::Values(insert_expr::Values { values })), + options: HashMap::default(), }; let result = db.insert(expr).await; assert!(result.is_ok()); diff --git a/src/frontend/src/instance.rs b/src/frontend/src/instance.rs index f95f3ade14..49c489e068 100644 --- a/src/frontend/src/instance.rs +++ b/src/frontend/src/instance.rs @@ -93,6 +93,7 @@ impl SqlQueryHandler for Instance { let expr = InsertExpr { table_name, expr: Some(insert_expr::Expr::Sql(query.to_string())), + options: HashMap::default(), }; self.db .insert(expr) @@ -444,6 +445,7 @@ mod tests { let insert_expr = InsertExpr { table_name: "demo".to_string(), expr: Some(insert_expr::Expr::Values(insert_expr::Values { values })), + options: HashMap::default(), }; let object_expr = ObjectExpr { header: Some(ExprHeader::default()), diff --git a/src/servers/src/influxdb.rs b/src/servers/src/influxdb.rs index 9b1a46f53f..fb85e79b7b 100644 --- a/src/servers/src/influxdb.rs +++ b/src/servers/src/influxdb.rs @@ -98,6 +98,7 @@ impl TryFrom<&InfluxdbRequest> for Vec { expr: Some(Expr::Values(insert_expr::Values { values: vec![writer.finish().into()], })), + options: HashMap::default(), }) .collect()) } diff --git a/src/servers/src/opentsdb/codec.rs b/src/servers/src/opentsdb/codec.rs index 5f0ff4dc5c..b856471d1a 100644 --- a/src/servers/src/opentsdb/codec.rs +++ b/src/servers/src/opentsdb/codec.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use api::v1::codec::InsertBatch; use api::v1::{column, column::SemanticType, insert_expr, Column, ColumnDataType, InsertExpr}; @@ -159,6 +161,7 @@ impl DataPoint { expr: Some(insert_expr::Expr::Values(insert_expr::Values { values: vec![batch.into()], })), + options: HashMap::default(), } }