/* * Copyright (c) 2015, 2016 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 as * published by the Free Software Foundation; version 2 of the * License. * * 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 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; // Notices // // A notice // // * is sent from the server to the client // * may be global or relate to the current message sequence package Polarx.Notice; option java_package = "com.mysql.cj.polarx.protobuf"; import "polarx_datatypes.proto"; // Common Frame for all Notices // // ===================================================== ===== // .type value // ===================================================== ===== // :protobuf:msg:`Polarx.Notice::Warning` 1 // :protobuf:msg:`Polarx.Notice::SessionVariableChanged` 2 // :protobuf:msg:`Polarx.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; } // 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:`Polarx.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 accessable through: // // .. code-block:: sql // // SHOW SESSION VARIABLES // // ========================================== ========= // :protobuf:msg:`Polarx.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 Polarx.Datatypes.Scalar value = 2; } // Notify clients about changes to the internal session state // // ========================================== ========= // :protobuf:msg:`Polarx.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; // .. more to be added } required Parameter param = 1; optional Polarx.Datatypes.Scalar value = 2; }