summaryrefslogtreecommitdiff
path: root/sql/sql_db.cc
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2002-11-06 12:01:38 +0400
committerunknown <bar@bar.mysql.r18.ru>2002-11-06 12:01:38 +0400
commit1e63509dfc5828fbd2180d3bc2bbeae0a32e42ee (patch)
treeceeb5e4a43f02999d54a9e8effe4fd8754883848 /sql/sql_db.cc
parent11c6f6c45193a0cc4f67ae49dade54f72908542a (diff)
downloadmariadb-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.cc17
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);