summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorbar@bar.mysql.r18.ru <>2002-11-05 15:10:13 +0400
committerbar@bar.mysql.r18.ru <>2002-11-05 15:10:13 +0400
commitcebfa22c01f5f51b99f45e6e6a44a1869f001f2d (patch)
tree558c1dadc54a1c1e6390546662b79e814110b78d /client
parenta90b923bef3406417b18ebd6d2788b9b454941d6 (diff)
downloadmariadb-git-cebfa22c01f5f51b99f45e6e6a44a1869f001f2d.tar.gz
CREATE DATABASE now tries to execute SHOW CREATE DATABASE first
Diffstat (limited to 'client')
-rw-r--r--client/mysqldump.c22
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);
}
}