diff options
-rw-r--r-- | mysql-test/r/contributors.result | 5 | ||||
-rw-r--r-- | mysql-test/t/contributors.test | 1 | ||||
-rw-r--r-- | sql/contributors.h | 40 | ||||
-rw-r--r-- | sql/lex.h | 1 | ||||
-rw-r--r-- | sql/mysql_priv.h | 1 | ||||
-rw-r--r-- | sql/sp_head.cc | 1 | ||||
-rw-r--r-- | sql/sql_lex.h | 1 | ||||
-rw-r--r-- | sql/sql_parse.cc | 3 | ||||
-rw-r--r-- | sql/sql_show.cc | 36 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 6 |
10 files changed, 95 insertions, 0 deletions
diff --git a/mysql-test/r/contributors.result b/mysql-test/r/contributors.result new file mode 100644 index 00000000000..5739c2244c3 --- /dev/null +++ b/mysql-test/r/contributors.result @@ -0,0 +1,5 @@ +SHOW CONTRIBUTORS; +Name Location Comment +Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction +Sheeri Kritzer Boston, Mass. USA EFF contribution for UC2006 Auction +Mark Shuttleworth London, UK. EFF contribution for UC2006 Auction diff --git a/mysql-test/t/contributors.test b/mysql-test/t/contributors.test new file mode 100644 index 00000000000..e463c4a888b --- /dev/null +++ b/mysql-test/t/contributors.test @@ -0,0 +1 @@ +SHOW CONTRIBUTORS; diff --git a/sql/contributors.h b/sql/contributors.h new file mode 100644 index 00000000000..dca232b9b69 --- /dev/null +++ b/sql/contributors.h @@ -0,0 +1,40 @@ +/* Copyright (C) 2005 MySQL AB & MySQL Finland AB & TCX DataKonsult AB + + 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; either version 2 of the License, or + (at your option) any later version. + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Structure of the name list */ + +struct show_table_contributors_st { + const char *name; + const char *location; + const char *comment; +}; + +/* + Output from "SHOW CONTRIBUTORS" + + Get permission before editing. + + IMPORTANT: Names should be left in historical order. + + Names should be encoded using UTF-8. +*/ + +struct show_table_contributors_st show_table_contributors[]= { + {"Ronald Bradford", "Brisbane, Australia", "EFF contribution for UC2006 Auction"}, + {"Sheeri Kritzer", "Boston, Mass. USA", "EFF contribution for UC2006 Auction"}, + {"Mark Shuttleworth", "London, UK.", "EFF contribution for UC2006 Auction"}, + {NULL, NULL, NULL} +}; diff --git a/sql/lex.h b/sql/lex.h index 555a68dc388..5c7c66484c4 100644 --- a/sql/lex.h +++ b/sql/lex.h @@ -133,6 +133,7 @@ static SYMBOL symbols[] = { { "CONSTRAINT", SYM(CONSTRAINT)}, { "CONTAINS", SYM(CONTAINS_SYM)}, { "CONTINUE", SYM(CONTINUE_SYM)}, + { "CONTRIBUTORS", SYM(CONTRIBUTORS_SYM)}, { "CONVERT", SYM(CONVERT_SYM)}, { "CREATE", SYM(CREATE)}, { "CROSS", SYM(CROSS)}, diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 93db68d1b50..f6fcbeb16d5 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -1005,6 +1005,7 @@ int mysql_find_files(THD *thd,List<char> *files, const char *db, const char *path, const char *wild, bool dir); bool mysqld_show_storage_engines(THD *thd); bool mysqld_show_authors(THD *thd); +bool mysqld_show_contributors(THD *thd); bool mysqld_show_privileges(THD *thd); bool mysqld_show_column_types(THD *thd); bool mysqld_help (THD *thd, const char *text); diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 8a64799e5f9..83a5b2906e1 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -202,6 +202,7 @@ sp_get_flags_for_command(LEX *lex) case SQLCOM_SHOW_PROC_CODE: case SQLCOM_SHOW_FUNC_CODE: case SQLCOM_SHOW_AUTHORS: + case SQLCOM_SHOW_CONTRIBUTORS: case SQLCOM_REPAIR: case SQLCOM_BACKUP_TABLE: case SQLCOM_RESTORE_TABLE: diff --git a/sql/sql_lex.h b/sql/sql_lex.h index f0bd85367d0..1fbdec6d73c 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -110,6 +110,7 @@ enum enum_sql_command { SQLCOM_INSTALL_PLUGIN, SQLCOM_UNINSTALL_PLUGIN, SQLCOM_SHOW_AUTHORS, SQLCOM_BINLOG_BASE64_EVENT, SQLCOM_SHOW_PLUGINS, + SQLCOM_SHOW_CONTRIBUTORS, SQLCOM_CREATE_EVENT, SQLCOM_ALTER_EVENT, SQLCOM_DROP_EVENT, SQLCOM_SHOW_CREATE_EVENT, SQLCOM_SHOW_EVENTS, diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 8ee78578631..d7338c81bd0 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3527,6 +3527,9 @@ end_with_restore_list: case SQLCOM_SHOW_AUTHORS: res= mysqld_show_authors(thd); break; + case SQLCOM_SHOW_CONTRIBUTORS: + res= mysqld_show_contributors(thd); + break; case SQLCOM_SHOW_PRIVILEGES: res= mysqld_show_privileges(thd); break; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index d15b3cd01bc..2348a625c21 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -25,6 +25,7 @@ #include "sp_head.h" #include "sql_trigger.h" #include "authors.h" +#include "contributors.h" #include "event.h" #include <my_dir.h> @@ -229,6 +230,41 @@ bool mysqld_show_authors(THD *thd) DBUG_RETURN(FALSE); } + +/*************************************************************************** +** List all Contributors. +** Please get permission before updating +***************************************************************************/ + +bool mysqld_show_contributors(THD *thd) +{ + List<Item> field_list; + Protocol *protocol= thd->protocol; + DBUG_ENTER("mysqld_show_contributors"); + + field_list.push_back(new Item_empty_string("Name",40)); + field_list.push_back(new Item_empty_string("Location",40)); + field_list.push_back(new Item_empty_string("Comment",80)); + + if (protocol->send_fields(&field_list, + Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF)) + DBUG_RETURN(TRUE); + + show_table_contributors_st *contributors; + for (contributors= show_table_contributors; contributors->name; contributors++) + { + protocol->prepare_for_resend(); + protocol->store(contributors->name, system_charset_info); + protocol->store(contributors->location, system_charset_info); + protocol->store(contributors->comment, system_charset_info); + if (protocol->write()) + DBUG_RETURN(TRUE); + } + send_eof(thd); + DBUG_RETURN(FALSE); +} + + /*************************************************************************** List all privileges supported ***************************************************************************/ diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 31ef2d8907e..106140f95e1 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -204,6 +204,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token CONSTRAINT %token CONTAINS_SYM %token CONTINUE_SYM +%token CONTRIBUTORS_SYM %token CONVERT_SYM %token CONVERT_TZ_SYM %token COUNT_SYM @@ -8170,6 +8171,11 @@ show_param: LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_AUTHORS; } + | CONTRIBUTORS_SYM + { + LEX *lex=Lex; + lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; + } | PRIVILEGES { LEX *lex=Lex; |