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
397cef94
Commit
397cef94
authored
Aug 09, 2005
by
jimw@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 'source' command in mysql client to handle delimiter command
in sourced file properly. (Bug #11523)
parent
a17fa233
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
24 additions
and
9 deletions
+24
-9
client/mysql.cc
client/mysql.cc
+8
-8
mysql-test/r/mysql.result
mysql-test/r/mysql.result
+4
-0
mysql-test/t/mysql_delimiter.sql
mysql-test/t/mysql_delimiter.sql
+4
-1
mysql-test/t/mysql_delimiter_source.sql
mysql-test/t/mysql_delimiter_source.sql
+8
-0
No files found.
client/mysql.cc
View file @
397cef94
...
...
@@ -203,7 +203,7 @@ static int com_nopager(String *str, char*), com_pager(String *str, char*),
com_edit
(
String
*
str
,
char
*
),
com_shell
(
String
*
str
,
char
*
);
#endif
static
int
read_
lines
(
bool
execute_commands
);
static
int
read_
and_execute
(
bool
interactive
);
static
int
sql_connect
(
char
*
host
,
char
*
database
,
char
*
user
,
char
*
password
,
uint
silent
);
static
int
put_info
(
const
char
*
str
,
INFO_TYPE
info
,
uint
error
=
0
,
...
...
@@ -468,7 +468,7 @@ int main(int argc,char *argv[])
"Type 'help [[%]function name[%]]' to get help on usage of function.
\n
"
);
#endif
put_info
(
buff
,
INFO_INFO
);
status
.
exit_status
=
read_lines
(
1
);
// read lines and execute them
status
.
exit_status
=
read_and_execute
(
!
status
.
batch
);
if
(
opt_outfile
)
end_tee
();
mysql_end
(
0
);
...
...
@@ -948,7 +948,7 @@ static int get_options(int argc, char **argv)
return
(
0
);
}
static
int
read_
lines
(
bool
execute_commands
)
static
int
read_
and_execute
(
bool
interactive
)
{
#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
char
linebuffer
[
254
];
...
...
@@ -963,7 +963,7 @@ static int read_lines(bool execute_commands)
for
(;;)
{
if
(
status
.
batch
||
!
execute_commands
)
if
(
!
interactive
)
{
line
=
batch_readline
(
status
.
line_buff
);
line_number
++
;
...
...
@@ -1041,7 +1041,7 @@ static int read_lines(bool execute_commands)
Check if line is a mysql command line
(We want to allow help, print and clear anywhere at line start
*/
if
(
execute_commands
&&
(
named_cmds
||
glob_buffer
.
is_empty
())
if
(
(
named_cmds
||
glob_buffer
.
is_empty
())
&&
!
in_string
&&
(
com
=
find_command
(
line
,
0
)))
{
if
((
*
com
->
func
)(
&
glob_buffer
,
line
)
>
0
)
...
...
@@ -1049,7 +1049,7 @@ static int read_lines(bool execute_commands)
if
(
glob_buffer
.
is_empty
())
// If buffer was emptied
in_string
=
0
;
#ifdef HAVE_READLINE
if
(
status
.
add_to_history
&&
not_in_history
(
line
))
if
(
interactive
&&
status
.
add_to_history
&&
not_in_history
(
line
))
add_history
(
line
);
#endif
continue
;
...
...
@@ -1059,7 +1059,7 @@ static int read_lines(bool execute_commands)
}
/* if in batch mode, send last query even if it doesn't end with \g or go */
if
(
(
status
.
batch
||
!
execute_commands
)
&&
!
status
.
exit_status
)
if
(
!
interactive
&&
!
status
.
exit_status
)
{
remove_cntrl
(
glob_buffer
);
if
(
!
glob_buffer
.
is_empty
())
...
...
@@ -2777,7 +2777,7 @@ static int com_source(String *buffer, char *line)
status
.
line_buff
=
line_buff
;
status
.
file_name
=
source_name
;
glob_buffer
.
length
(
0
);
// Empty command buffer
error
=
read_lines
(
0
);
// Read lines from file
error
=
read_and_execute
(
false
);
status
=
old_status
;
// Continue as before
my_fclose
(
sql_file
,
MYF
(
0
));
batch_readline_end
(
line_buff
);
...
...
mysql-test/r/mysql.result
View file @
397cef94
...
...
@@ -31,6 +31,10 @@ a
Test delimiter delimiter
a
1
Tables_in_test
t1
t2
t3
Test delimiter : from command line
a
...
...
mysql-test/t/mysql_delimiter.sql
View file @
397cef94
...
...
@@ -45,4 +45,7 @@ delimiter delimiter
select
*
from
t1
delimiter
delimiter
;
#
Reset
delimiter
#
#
Bug
#
11523
:
\
d
works
differently
than
delimiter
#
source
t
/
mysql_delimiter_source
.
sql
mysql-test/t/mysql_delimiter_source.sql
0 → 100644
View file @
397cef94
delimiter
//
create
table
t2
(
a
int
)
//
delimiter
;
\
d
//
create
table
t3
(
a
int
)
//
\
d
;
show
tables
;
drop
table
t2
,
t3
;
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