diff options
author | unknown <bar@bar.mysql.r18.ru> | 2002-11-06 12:01:38 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2002-11-06 12:01:38 +0400 |
commit | 1e63509dfc5828fbd2180d3bc2bbeae0a32e42ee (patch) | |
tree | ceeb5e4a43f02999d54a9e8effe4fd8754883848 /sql/sql_db.cc | |
parent | 11c6f6c45193a0cc4f67ae49dade54f72908542a (diff) | |
download | mariadb-git-1e63509dfc5828fbd2180d3bc2bbeae0a32e42ee.tar.gz |
Extensions to support this:
SHOW CREATE DATABASE [IF NOT EXISTS] dbname
Version dependant parts are displayed in appropriative comments:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `ucs` /*!40100 DEFAULT CHARACTER SET ucs2*/
client/mysqldump.c:
SHOW CREATE DATABASE IF NOT EXISTS
sql/mysql_priv.h:
SHOW CREATE DATABASE IF NOT EXISTS
sql/sql_db.cc:
SHOW CREATE DATABASE IF NOT EXISTS
sql/sql_parse.cc:
SHOW CREATE DATABASE IF NOT EXISTS
sql/sql_yacc.yy:
SHOW CREATE DATABASE IF NOT EXISTS
Diffstat (limited to 'sql/sql_db.cc')
-rw-r--r-- | sql/sql_db.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 25a69f7e51b..b80e25c9f40 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -597,7 +597,7 @@ bool mysql_change_db(THD *thd, const char *name) } -int mysqld_show_create_db(THD *thd, const char *dbname) +int mysqld_show_create_db(THD *thd, const char *dbname, HA_CREATE_INFO *create_info) { int length; char path[FN_REFLEN], *to; @@ -605,6 +605,8 @@ int mysqld_show_create_db(THD *thd, const char *dbname) bool found_libchar; HA_CREATE_INFO create; CONVERT *convert=thd->variables.convert_set; + uint create_options = create_info ? create_info->options : 0; + DBUG_ENTER("mysql_show_create_db"); if (check_db_name(dbname)) @@ -660,12 +662,17 @@ int mysqld_show_create_db(THD *thd, const char *dbname) String *packet = &thd->packet; packet->length(0); net_store_data(packet, convert, dbname); - to= strxmov(path, "CREATE DATABASE `", dbname, "`", NullS); + to= strxmov(path, "CREATE DATABASE ", NullS); + if (create_options & HA_LEX_CREATE_IF_NOT_EXISTS) + to= strxmov(to,"/*!32312 IF NOT EXISTS*/ ", NullS); + to=strxmov(to,"`",dbname,"`", NullS); + if (create.table_charset) - to= strxmov(to," DEFAULT CHARACTER SET ", create.table_charset->name, - NullS); + to= strxmov(to," /*!40100 DEFAULT CHARACTER SET ", + create.table_charset->name,"*/",NullS); + net_store_data(packet, convert, path, (uint) (to-path)); - + if (my_net_write(&thd->net,(char*) packet->ptr(), packet->length())) DBUG_RETURN(1); |