From cebfa22c01f5f51b99f45e6e6a44a1869f001f2d Mon Sep 17 00:00:00 2001 From: "bar@bar.mysql.r18.ru" <> Date: Tue, 5 Nov 2002 15:10:13 +0400 Subject: [PATCH] CREATE DATABASE now tries to execute SHOW CREATE DATABASE first --- client/mysqldump.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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); } }