Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
61c77677
Commit
61c77677
authored
Oct 21, 2004
by
ram@gw.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
A fix (bug #4802 prompt in mysql client shows wrong database after dropping default db).
parent
eda3eb37
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
18 deletions
+23
-18
client/mysql.cc
client/mysql.cc
+20
-18
include/mysql_com.h
include/mysql_com.h
+1
-0
sql/sql_db.cc
sql/sql_db.cc
+2
-0
No files found.
client/mysql.cc
View file @
61c77677
...
...
@@ -1574,6 +1574,22 @@ static int reconnect(void)
return
0
;
}
static
void
get_current_db
()
{
MYSQL_RES
*
res
;
my_free
(
current_db
,
MYF
(
MY_ALLOW_ZERO_PTR
));
current_db
=
NULL
;
/* In case of error below current_db will be NULL */
if
(
!
mysql_query
(
&
mysql
,
"SELECT DATABASE()"
)
&&
(
res
=
mysql_use_result
(
&
mysql
)))
{
MYSQL_ROW
row
=
mysql_fetch_row
(
res
);
if
(
row
[
0
])
current_db
=
my_strdup
(
row
[
0
],
MYF
(
MY_WME
));
mysql_free_result
(
res
);
}
}
/***************************************************************************
The different commands
...
...
@@ -1899,6 +1915,9 @@ com_go(String *buffer,char *line __attribute__((unused)))
if
(
err
>=
1
)
error
=
put_error
(
&
mysql
);
if
(
!
status
.
batch
&&
(
mysql
.
server_status
&
SERVER_STATUS_DB_DROPPED
))
get_current_db
();
return
error
;
/* New command follows */
}
...
...
@@ -2614,24 +2633,7 @@ com_use(String *buffer __attribute__((unused)), char *line)
under our feet, for example if DROP DATABASE or RENAME DATABASE
(latter one not yet available by the time the comment was written)
*/
/* Let's reset current_db, assume it's gone */
my_free
(
current_db
,
MYF
(
MY_ALLOW_ZERO_PTR
));
current_db
=
0
;
/*
We don't care about in case of an error below because current_db
was just set to 0.
*/
if
(
!
mysql_query
(
&
mysql
,
"SELECT DATABASE()"
)
&&
(
res
=
mysql_use_result
(
&
mysql
)))
{
row
=
mysql_fetch_row
(
res
);
if
(
row
[
0
])
{
current_db
=
my_strdup
(
row
[
0
],
MYF
(
MY_WME
));
}
(
void
)
mysql_fetch_row
(
res
);
// Read eof
mysql_free_result
(
res
);
}
get_current_db
();
if
(
!
current_db
||
cmp_database
(
charset_info
,
current_db
,
tmp
))
{
...
...
include/mysql_com.h
View file @
61c77677
...
...
@@ -127,6 +127,7 @@ enum enum_server_command
#define SERVER_MORE_RESULTS_EXISTS 8
/* Multi query - next query exists */
#define SERVER_QUERY_NO_GOOD_INDEX_USED 16
#define SERVER_QUERY_NO_INDEX_USED 32
#define SERVER_STATUS_DB_DROPPED 256
/* A database was dropped */
#define MYSQL_ERRMSG_SIZE 512
#define NET_READ_TIMEOUT 30
/* Timeout on read */
...
...
sql/sql_db.cc
View file @
61c77677
...
...
@@ -634,7 +634,9 @@ int mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
thd
->
clear_error
();
mysql_bin_log
.
write
(
&
qinfo
);
}
thd
->
server_status
|=
SERVER_STATUS_DB_DROPPED
;
send_ok
(
thd
,
(
ulong
)
deleted
);
thd
->
server_status
&=
!
SERVER_STATUS_DB_DROPPED
;
}
exit:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment