vitess.io/vitess@v0.16.2/proto/queryservice.proto (about) 1 /* 2 Copyright 2019 The Vitess Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 // This file contains the service VtTablet exposes for queries. 18 19 syntax = "proto3"; 20 21 package queryservice; 22 option go_package = "vitess.io/vitess/go/vt/proto/queryservice"; 23 24 import "query.proto"; 25 import "binlogdata.proto"; 26 27 // Query defines the tablet query service, implemented by vttablet. 28 service Query { 29 // Execute executes the specified SQL query (might be in a 30 // transaction context, if Query.transaction_id is set). 31 rpc Execute(query.ExecuteRequest) returns (query.ExecuteResponse) {}; 32 33 // StreamExecute executes a streaming query. Use this method if the 34 // query returns a large number of rows. The first QueryResult will 35 // contain the Fields, subsequent QueryResult messages will contain 36 // the rows. 37 rpc StreamExecute(query.StreamExecuteRequest) returns (stream query.StreamExecuteResponse) {}; 38 39 // Begin a transaction. 40 rpc Begin(query.BeginRequest) returns (query.BeginResponse) {}; 41 42 // Commit a transaction. 43 rpc Commit(query.CommitRequest) returns (query.CommitResponse) {}; 44 45 // Rollback a transaction. 46 rpc Rollback(query.RollbackRequest) returns (query.RollbackResponse) {}; 47 48 // Prepare preares a transaction. 49 rpc Prepare(query.PrepareRequest) returns (query.PrepareResponse) {}; 50 51 // CommitPrepared commits a prepared transaction. 52 rpc CommitPrepared(query.CommitPreparedRequest) returns (query.CommitPreparedResponse) {}; 53 54 // RollbackPrepared rolls back a prepared transaction. 55 rpc RollbackPrepared(query.RollbackPreparedRequest) returns (query.RollbackPreparedResponse) {}; 56 57 // CreateTransaction creates the metadata for a 2pc transaction. 58 rpc CreateTransaction(query.CreateTransactionRequest) returns (query.CreateTransactionResponse) {}; 59 60 // StartCommit initiates a commit for a 2pc transaction. 61 rpc StartCommit(query.StartCommitRequest) returns (query.StartCommitResponse) {}; 62 63 // SetRollback marks the 2pc transaction for rollback. 64 rpc SetRollback(query.SetRollbackRequest) returns (query.SetRollbackResponse) {}; 65 66 // ConcludeTransaction marks the 2pc transaction as resolved. 67 rpc ConcludeTransaction(query.ConcludeTransactionRequest) returns (query.ConcludeTransactionResponse) {}; 68 69 // ReadTransaction returns the 2pc transaction info. 70 rpc ReadTransaction(query.ReadTransactionRequest) returns (query.ReadTransactionResponse) {}; 71 72 // BeginExecute executes a begin and the specified SQL query. 73 rpc BeginExecute(query.BeginExecuteRequest) returns (query.BeginExecuteResponse) {}; 74 75 // BeginStreamExecute executes a begin and the specified SQL query. 76 rpc BeginStreamExecute(query.BeginStreamExecuteRequest) returns (stream query.BeginStreamExecuteResponse) {}; 77 78 // MessageStream streams messages from a message table. 79 rpc MessageStream(query.MessageStreamRequest) returns (stream query.MessageStreamResponse) {}; 80 81 // MessageAck acks messages for a table. 82 rpc MessageAck(query.MessageAckRequest) returns (query.MessageAckResponse) {}; 83 84 // ReserveExecute executes a query on a reserved connection 85 rpc ReserveExecute(query.ReserveExecuteRequest) returns (query.ReserveExecuteResponse) {}; 86 87 // ReserveBeginExecute starts a transaction and executes a query in the transaction on a reserved connection 88 rpc ReserveBeginExecute(query.ReserveBeginExecuteRequest) returns (query.ReserveBeginExecuteResponse) {}; 89 90 // ReserveStreamExecute executes a streaming query on a reserved connection 91 rpc ReserveStreamExecute(query.ReserveStreamExecuteRequest) returns (stream query.ReserveStreamExecuteResponse) {}; 92 93 // ReserveBeginStreamExecute starts a transaction and executes a streaming query in the transaction on a reserved connection 94 rpc ReserveBeginStreamExecute(query.ReserveBeginStreamExecuteRequest) returns (stream query.ReserveBeginStreamExecuteResponse) {}; 95 96 // Release releases the connection 97 rpc Release(query.ReleaseRequest) returns (query.ReleaseResponse) {}; 98 99 // StreamHealth runs a streaming RPC to the tablet, that returns the 100 // current health of the tablet on a regular basis. 101 rpc StreamHealth(query.StreamHealthRequest) returns (stream query.StreamHealthResponse) {}; 102 103 // VStream streams vreplication events. 104 rpc VStream(binlogdata.VStreamRequest) returns (stream binlogdata.VStreamResponse) {}; 105 106 // VStreamRows streams rows from the specified starting point. 107 rpc VStreamRows(binlogdata.VStreamRowsRequest) returns (stream binlogdata.VStreamRowsResponse) {}; 108 109 // VStreamResults streams results along with the gtid of the snapshot. 110 rpc VStreamResults(binlogdata.VStreamResultsRequest) returns (stream binlogdata.VStreamResultsResponse) {}; 111 112 // GetSchema returns the schema information. 113 rpc GetSchema(query.GetSchemaRequest) returns (stream query.GetSchemaResponse) {}; 114 }