172 lines
4.4 KiB
Protocol Buffer
172 lines
4.4 KiB
Protocol Buffer
/*
|
|
* Copyright (c) 2015, 2019, 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 Mysqlx;
|
|
option java_package = "com.mysql.cj.x.protobuf";
|
|
|
|
import "google/protobuf/descriptor.proto"; // comment_out_if PROTOBUF_LITE
|
|
|
|
// 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;
|
|
|
|
CRUD_CREATE_VIEW = 30;
|
|
CRUD_MODIFY_VIEW = 31;
|
|
CRUD_DROP_VIEW = 32;
|
|
|
|
PREPARE_PREPARE = 40;
|
|
PREPARE_EXECUTE = 41;
|
|
PREPARE_DEALLOCATE = 42;
|
|
|
|
CURSOR_OPEN = 43;
|
|
CURSOR_CLOSE = 44;
|
|
CURSOR_FETCH = 45;
|
|
|
|
// Special Galaxy define message from here.
|
|
GALAXY_STMT_EXECUTE = 101;
|
|
|
|
SESS_NEW = 110;
|
|
SESS_KILL = 111;
|
|
TOKEN_OFFER = 112;
|
|
GET_TSO = 113;
|
|
}
|
|
}
|
|
|
|
// 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 = 100;
|
|
RESULT_TSO = 101;
|
|
}
|
|
}
|
|
// ifndef PROTOBUF_LITE
|
|
extend google.protobuf.MessageOptions {
|
|
optional ClientMessages.Type client_message_id = 100001;
|
|
optional ServerMessages.Type server_message_id = 100002;
|
|
}
|
|
// endif
|
|
|
|
// generic Ok message
|
|
message Ok {
|
|
optional string msg = 1;
|
|
|
|
option (server_message_id) = OK; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
|
|
// 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;
|
|
}
|
|
|
|
option (server_message_id) = ERROR; // comment_out_if PROTOBUF_LITE
|
|
}
|