Commit 1218ff33 authored by unknown's avatar unknown

Added "SHOW AUTHORS" code


mysql-test/r/show_check.result:
  Update to results
mysql-test/t/show_check.test:
  Added SHOW AUTHORS test
sql/field.h:
  Fixed portability issue
sql/lex.h:
  Added new keyword "AUTHORS"
sql/mysql_priv.h:
  Added reference to new show command.
sql/sql_cache.h:
  Fixed compile bug (more of these need to be fixed)
sql/sql_lex.h:
  Added to com bit.
sql/sql_parse.cc:
  Parsing for show authors
sql/sql_show.cc:
  Added new show command for "SHOW AUTHORS"
sql/sql_yacc.yy:
  Added new parse code for show authors.
parent ec2c0983
......@@ -564,3 +564,7 @@ DROP TABLE tyt2;
DROP TABLE urkunde;
SHOW TABLES FROM non_existing_database;
ERROR 42000: Unknown database 'non_existing_database'
SHOW AUTHORS;
Name Location Comment
Brian "Krow" Aker Seattle, WA. USA Architecture, archive, federated, buncha of little stuff :)
David Axmark Uppsala, Sweden Small stuff long time ago, Monty ripped it out!
......@@ -424,3 +424,7 @@ DROP TABLE urkunde;
#
--error 1049
SHOW TABLES FROM non_existing_database;
# End of 4.1 tests
#
SHOW AUTHORS;
/***************************************************************************
** Output from "SHOW AUTHORS"
** If you can update it, you get to be in it :)
** Dont be offended if your name is not in here, just add it!
***************************************************************************/
struct show_table_authors_st {
const char *name;
const char *location;
const char *comment;
};
struct show_table_authors_st show_table_authors[]= {
{ "Brian \"Krow\" Aker", "Seattle, WA. USA",
"Architecture, archive, federated, buncha of little stuff :)" },
{ "David Axmark", "Uppsala, Sweden", "Small stuff long time ago, Monty ripped it out!"},
{NULL, NULL, NULL}
};
......@@ -1081,7 +1081,7 @@ class Field_varstring :public Field_longstr {
int cmp_max(const char *, const char *, uint max_length);
int cmp(const char *a,const char*b)
{
return cmp_max(a, b, ~0);
return cmp_max(a, b, ~0L);
}
void sort_string(char *buff,uint length);
void get_key_image(char *buff,uint length, imagetype type);
......@@ -1141,7 +1141,7 @@ class Field_blob :public Field_longstr {
my_decimal *val_decimal(my_decimal *);
int cmp_max(const char *, const char *, uint max_length);
int cmp(const char *a,const char*b)
{ return cmp_max(a, b, ~0); }
{ return cmp_max(a, b, ~0L); }
int cmp(const char *a, uint32 a_length, const char *b, uint32 b_length);
int cmp_binary(const char *a,const char *b, uint32 max_length=~0L);
int key_cmp(const byte *,const byte*);
......
......@@ -74,6 +74,7 @@ static SYMBOL symbols[] = {
{ "ASC", SYM(ASC)},
{ "ASCII", SYM(ASCII_SYM)},
{ "ASENSITIVE", SYM(ASENSITIVE_SYM)},
{ "AUTHORS", SYM(AUTHORS_SYM)},
{ "AUTO_INCREMENT", SYM(AUTO_INC)},
{ "AVG", SYM(AVG_SYM)},
{ "AVG_ROW_LENGTH", SYM(AVG_ROW_LENGTH)},
......
......@@ -857,6 +857,7 @@ int mysqld_show_variables(THD *thd,const char *wild);
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_privileges(THD *thd);
bool mysqld_show_column_types(THD *thd);
bool mysqld_help (THD *thd, const char *text);
......
......@@ -215,6 +215,8 @@ struct Query_cache_memory_bin
struct Query_cache_memory_bin_step
{
public:
Query_cache_memory_bin_step() {}
ulong size;
ulong increment;
uint idx;
......
......@@ -92,6 +92,7 @@ enum enum_sql_command {
SQLCOM_XA_START, SQLCOM_XA_END, SQLCOM_XA_PREPARE,
SQLCOM_XA_COMMIT, SQLCOM_XA_ROLLBACK, SQLCOM_XA_RECOVER,
SQLCOM_INSTALL_PLUGIN, SQLCOM_UNINSTALL_PLUGIN,
SQLCOM_SHOW_AUTHORS,
/* This should be the last !!! */
SQLCOM_END
......
......@@ -3409,6 +3409,9 @@ mysql_execute_command(THD *thd)
case SQLCOM_SHOW_STORAGE_ENGINES:
res= mysqld_show_storage_engines(thd);
break;
case SQLCOM_SHOW_AUTHORS:
res= mysqld_show_authors(thd);
break;
case SQLCOM_SHOW_PRIVILEGES:
res= mysqld_show_privileges(thd);
break;
......
......@@ -23,6 +23,7 @@
#include "sp.h"
#include "sp_head.h"
#include "sql_trigger.h"
#include "authors.h"
#include <my_dir.h>
......@@ -83,6 +84,38 @@ bool mysqld_show_storage_engines(THD *thd)
DBUG_RETURN(FALSE);
}
/***************************************************************************
** List all Authors.
** If you can update it, you get to be in it :)
***************************************************************************/
bool mysqld_show_authors(THD *thd)
{
List<Item> field_list;
Protocol *protocol= thd->protocol;
DBUG_ENTER("mysqld_show_authors");
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_authors_st *authors;
for (authors= show_table_authors; authors->name; authors++)
{
protocol->prepare_for_resend();
protocol->store(authors->name, system_charset_info);
protocol->store(authors->location, system_charset_info);
protocol->store(authors->comment, system_charset_info);
if (protocol->write())
DBUG_RETURN(TRUE);
}
send_eof(thd);
DBUG_RETURN(FALSE);
}
/***************************************************************************
List all privileges supported
......
......@@ -137,6 +137,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token ASCII_SYM
%token ASENSITIVE_SYM
%token ATAN
%token AUTHORS_SYM
%token AUTO_INC
%token AVG_ROW_LENGTH
%token AVG_SYM
......@@ -7174,6 +7175,11 @@ show_param:
LEX *lex=Lex;
lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
}
| AUTHORS_SYM
{
LEX *lex=Lex;
lex->sql_command= SQLCOM_SHOW_AUTHORS;
}
| PRIVILEGES
{
LEX *lex=Lex;
......@@ -8171,6 +8177,7 @@ user:
keyword:
keyword_sp {}
| ASCII_SYM {}
| AUTHORS_SYM {}
| BACKUP_SYM {}
| BEGIN_SYM {}
| BYTE_SYM {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment