202 lines
6.3 KiB
Protocol Buffer
202 lines
6.3 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";
|
|
|
|
import "mysqlx.proto"; // comment_out_if PROTOBUF_LITE
|
|
|
|
// ifdef PROTOBUF_LITE: option optimize_for = LITE_RUNTIME;
|
|
|
|
// Notices
|
|
//
|
|
// A notice
|
|
//
|
|
// * is sent from the server to the client
|
|
// * may be global or relate to the current message sequence
|
|
package Mysqlx.Notice;
|
|
option java_package = "com.mysql.cj.x.protobuf";
|
|
|
|
import "mysqlx_datatypes.proto";
|
|
|
|
// Common Frame for all Notices
|
|
//
|
|
// ===================================================== =====
|
|
// .type value
|
|
// ===================================================== =====
|
|
// :protobuf:msg:`Mysqlx.Notice::Warning` 1
|
|
// :protobuf:msg:`Mysqlx.Notice::SessionVariableChanged` 2
|
|
// :protobuf:msg:`Mysqlx.Notice::SessionStateChanged` 3
|
|
// ===================================================== =====
|
|
//
|
|
// :param type: the type of the payload
|
|
// :param payload: the payload of the notification
|
|
// :param scope: global or local notification
|
|
//
|
|
message Frame {
|
|
enum Scope {
|
|
GLOBAL = 1;
|
|
LOCAL = 2;
|
|
};
|
|
enum Type {
|
|
WARNING = 1;
|
|
SESSION_VARIABLE_CHANGED = 2;
|
|
SESSION_STATE_CHANGED = 3;
|
|
GROUP_REPLICATION_STATE_CHANGED = 4;
|
|
SERVER_HELLO = 5;
|
|
};
|
|
required uint32 type = 1;
|
|
optional Scope scope = 2 [ default = GLOBAL ];
|
|
optional bytes payload = 3;
|
|
|
|
option (server_message_id) = NOTICE; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
// Server-side warnings and notes
|
|
//
|
|
// ``.scope`` == ``local``
|
|
// ``.level``, ``.code`` and ``.msg`` map the content of
|
|
//
|
|
// .. code-block:: sql
|
|
//
|
|
// SHOW WARNINGS
|
|
//
|
|
// ``.scope`` == ``global``
|
|
// (undefined) will be used for global, unstructured messages like:
|
|
//
|
|
// * server is shutting down
|
|
// * a node disconnected from group
|
|
// * schema or table dropped
|
|
//
|
|
// ========================================== =======================
|
|
// :protobuf:msg:`Mysqlx.Notice::Frame` field value
|
|
// ========================================== =======================
|
|
// ``.type`` 1
|
|
// ``.scope`` ``local`` or ``global``
|
|
// ========================================== =======================
|
|
//
|
|
// :param level: warning level: Note or Warning
|
|
// :param code: warning code
|
|
// :param msg: warning message
|
|
message Warning {
|
|
enum Level {
|
|
NOTE = 1;
|
|
WARNING = 2;
|
|
ERROR = 3;
|
|
};
|
|
optional Level level = 1 [ default = WARNING ];
|
|
required uint32 code = 2;
|
|
required string msg = 3;
|
|
}
|
|
|
|
// Notify clients about changes to the current session variables
|
|
//
|
|
// Every change to a variable that is accessible through:
|
|
//
|
|
// .. code-block:: sql
|
|
//
|
|
// SHOW SESSION VARIABLES
|
|
//
|
|
// ========================================== =========
|
|
// :protobuf:msg:`Mysqlx.Notice::Frame` field value
|
|
// ========================================== =========
|
|
// ``.type`` 2
|
|
// ``.scope`` ``local``
|
|
// ========================================== =========
|
|
//
|
|
// :param namespace: namespace that param belongs to
|
|
// :param param: name of the variable
|
|
// :param value: the changed value of param
|
|
message SessionVariableChanged {
|
|
required string param = 1;
|
|
optional Mysqlx.Datatypes.Scalar value = 2;
|
|
}
|
|
|
|
|
|
// Notify clients about changes to the internal session state
|
|
//
|
|
// ========================================== =========
|
|
// :protobuf:msg:`Mysqlx.Notice::Frame` field value
|
|
// ========================================== =========
|
|
// ``.type`` 3
|
|
// ``.scope`` ``local``
|
|
// ========================================== =========
|
|
//
|
|
// :param param: parameter key
|
|
// :param value: updated value
|
|
message SessionStateChanged {
|
|
enum Parameter {
|
|
CURRENT_SCHEMA = 1;
|
|
ACCOUNT_EXPIRED = 2;
|
|
GENERATED_INSERT_ID = 3;
|
|
ROWS_AFFECTED = 4;
|
|
ROWS_FOUND = 5;
|
|
ROWS_MATCHED = 6;
|
|
TRX_COMMITTED = 7;
|
|
TRX_ROLLEDBACK = 9;
|
|
PRODUCED_MESSAGE = 10;
|
|
CLIENT_ID_ASSIGNED = 11;
|
|
GENERATED_DOCUMENT_IDS = 12;
|
|
// .. more to be added
|
|
}
|
|
required Parameter param = 1;
|
|
repeated Mysqlx.Datatypes.Scalar value = 2;
|
|
}
|
|
|
|
// Notify clients about group replication state changes
|
|
//
|
|
// ========================================== ==========
|
|
// :protobuf:msg:`Mysqlx.Notice::Frame` field value
|
|
// ========================================== ==========
|
|
// ``.type`` 4
|
|
// ``.scope`` ``global``
|
|
// ========================================== ==========
|
|
//
|
|
// :param type: type of group replication event
|
|
// :param view_id: view identifier
|
|
message GroupReplicationStateChanged {
|
|
enum Type {
|
|
MEMBERSHIP_QUORUM_LOSS = 1;
|
|
MEMBERSHIP_VIEW_CHANGE = 2;
|
|
MEMBER_ROLE_CHANGE = 3;
|
|
MEMBER_STATE_CHANGE = 4;
|
|
}
|
|
required uint32 type = 1;
|
|
|
|
optional string view_id = 2;
|
|
}
|
|
|
|
// Notify clients about connection to X Protocol server
|
|
//
|
|
// ========================================== ==========
|
|
// :protobuf:msg:`Mysqlx.Notice::Frame` field value
|
|
// ========================================== ==========
|
|
// ``.type`` 5
|
|
// ``.scope`` ``global``
|
|
// ========================================== ==========
|
|
//
|
|
message ServerHello {
|
|
}
|
|
|