diff options
author | bar@bar.mysql.r18.ru <> | 2002-11-05 15:10:13 +0400 |
---|---|---|
committer | bar@bar.mysql.r18.ru <> | 2002-11-05 15:10:13 +0400 |
commit | cebfa22c01f5f51b99f45e6e6a44a1869f001f2d (patch) | |
tree | 558c1dadc54a1c1e6390546662b79e814110b78d /client | |
parent | a90b923bef3406417b18ebd6d2788b9b454941d6 (diff) | |
download | mariadb-git-cebfa22c01f5f51b99f45e6e6a44a1869f001f2d.tar.gz |
CREATE DATABASE now tries to execute SHOW CREATE DATABASE first
Diffstat (limited to 'client')
-rw-r--r-- | client/mysqldump.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/client/mysqldump.c b/client/mysqldump.c index 21358272109..04232474944 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1247,8 +1247,28 @@ static int init_dumping(char *database) { fprintf(md_result_file,"\n--\n-- Current Database: %s\n--\n", database); if (!opt_create_db) - fprintf(md_result_file,"\nCREATE DATABASE /*!32312 IF NOT EXISTS*/ %s;\n", + { + char qbuf[128]; + MYSQL_ROW row; + MYSQL_RES *dbinfo; + + sprintf(qbuf,"SHOW CREATE DATABASE %s",database); + + if (mysql_query(sock, qbuf) || !(dbinfo = mysql_store_result(sock))) + { + /* Old server version, dump generic CREATE DATABASE */ + fprintf(md_result_file,"\nCREATE DATABASE /*!32312 IF NOT EXISTS*/ %s;\n", database); + } + else + { + row = mysql_fetch_row(dbinfo); + if (row[1]) + { + fprintf(md_result_file,"\n%s;\n",row[1]); + } + } + } fprintf(md_result_file,"\nUSE %s;\n", database); } } |