polardbxengine/plugin/polarx_rpc/protocol/polarx.proto

156 lines
3.8 KiB
Protocol Buffer

/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2.0,
* as published by the Free Software Foundation.
*
* This program is also distributed with certain software (including
* but not limited to OpenSSL) that is licensed under separate terms,
* as designated in a particular file or component or in included license
* documentation. The authors of MySQL hereby grant you an additional
* permission to link the program and your derivative works with the
* separately licensed software that they have included with MySQL.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License, version 2.0, for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
// tell protobuf 3.0 to use protobuf 2.x rules
syntax = "proto2";
// ifdef PROTOBUF_LITE: option optimize_for = LITE_RUNTIME;
package Polarx;
option java_package = "com.mysql.cj.x.protobuf";
// style-guide:
//
// see https://developers.google.com/protocol-buffers/docs/style
//
// message CamelCaseMsg {
// enum CamelCaseEnum {
// FIRST_VALUE = 1;
// }
// required CamelCaseEnum some_enum = 1;
// }
//
// IDs of messages that can be sent from client to the server
//
// .. note::
// this message is never sent on the wire. It is only used to let ``protoc``
//
// * generate constants
// * check for uniqueness
message ClientMessages {
enum Type {
CON_CAPABILITIES_GET = 1;
CON_CAPABILITIES_SET = 2;
CON_CLOSE = 3;
SESS_AUTHENTICATE_START = 4;
SESS_AUTHENTICATE_CONTINUE = 5;
SESS_RESET = 6;
SESS_CLOSE = 7;
SQL_STMT_EXECUTE = 12;
CRUD_FIND = 17;
CRUD_INSERT = 18;
CRUD_UPDATE = 19;
CRUD_DELETE = 20;
EXPECT_OPEN = 24;
EXPECT_CLOSE = 25;
EXEC_PLAN_READ = 100;
EXEC_SQL = 101;
SESS_NEW = 110;
SESS_KILL = 111;
TOKEN_OFFER = 112;
GET_TSO = 113;
MSG_MAX = 127;
}
}
// IDs of messages that can be sent from server to client
//
// .. note::
// this message is never sent on the wire. It is only used to let ``protoc``
//
// * generate constants
// * check for uniqueness
message ServerMessages {
enum Type {
OK = 0;
ERROR = 1;
CONN_CAPABILITIES = 2;
SESS_AUTHENTICATE_CONTINUE = 3;
SESS_AUTHENTICATE_OK = 4;
// NOTICE has to stay at 11 forever
NOTICE = 11;
RESULTSET_COLUMN_META_DATA = 12;
RESULTSET_ROW = 13;
RESULTSET_FETCH_DONE = 14;
RESULTSET_FETCH_SUSPENDED = 15;
RESULTSET_FETCH_DONE_MORE_RESULTSETS = 16;
SQL_STMT_EXECUTE_OK = 17;
RESULTSET_FETCH_DONE_MORE_OUT_PARAMS = 18;
RESULTSET_TOKEN_DONE = 19;
RESULTSET_TSO = 20;
RESULTSET_CHUNK = 21;
}
}
// generic Ok message
message Ok {
optional string msg = 1;
}
// generic Error message
//
// A ``severity`` of ``ERROR`` indicates the current message sequence is
// aborted for the given error and the session is ready for more.
//
// In case of a ``FATAL`` error message the client should not expect
// the server to continue handling any further messages and should
// close the connection.
//
// :param severity: severity of the error message
// :param code: error-code
// :param sql_state: SQL state
// :param msg: human readable error message
message Error {
optional Severity severity = 1 [ default = ERROR ];
required uint32 code = 2;
required string sql_state = 4;
required string msg = 3;
enum Severity {
ERROR = 0;
FATAL = 1;
}
}