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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
a8ce050a
Commit
a8ce050a
authored
Jan 11, 2006
by
msvensson@devsrv-b.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into devsrv-b.mysql.com:/space/magnus/my51-wl2930_fixup
parents
be55de4f
7e97a122
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
42 deletions
+29
-42
client/mysqltest.c
client/mysqltest.c
+26
-20
mysql-test/r/mysqltest.result
mysql-test/r/mysqltest.result
+1
-20
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+2
-2
No files found.
client/mysqltest.c
View file @
a8ce050a
...
@@ -165,7 +165,6 @@ static my_bool sp_protocol= 0, sp_protocol_enabled= 0;
...
@@ -165,7 +165,6 @@ static my_bool sp_protocol= 0, sp_protocol_enabled= 0;
static
my_bool
view_protocol
=
0
,
view_protocol_enabled
=
0
;
static
my_bool
view_protocol
=
0
,
view_protocol_enabled
=
0
;
static
my_bool
cursor_protocol
=
0
,
cursor_protocol_enabled
=
0
;
static
my_bool
cursor_protocol
=
0
,
cursor_protocol_enabled
=
0
;
static
int
parsing_disabled
=
0
;
static
int
parsing_disabled
=
0
;
static
uint
start_lineno
,
*
lineno
;
const
char
*
manager_user
=
"root"
,
*
manager_host
=
0
;
const
char
*
manager_user
=
"root"
,
*
manager_host
=
0
;
char
*
manager_pass
=
0
;
char
*
manager_pass
=
0
;
int
manager_port
=
MYSQL_MANAGER_PORT
;
int
manager_port
=
MYSQL_MANAGER_PORT
;
...
@@ -180,13 +179,14 @@ typedef struct
...
@@ -180,13 +179,14 @@ typedef struct
{
{
FILE
*
file
;
FILE
*
file
;
const
char
*
file_name
;
const
char
*
file_name
;
uint
lineno
;
/* Current line in file */
}
test_file
;
}
test_file
;
static
test_file
file_stack
[
MAX_INCLUDE_DEPTH
];
static
test_file
file_stack
[
MAX_INCLUDE_DEPTH
];
static
test_file
*
cur_file
;
static
test_file
*
cur_file
;
static
test_file
*
file_stack_end
;
static
test_file
*
file_stack_end
;
uint
start_lineno
;
/* Start line of query */
static
uint
lineno_stack
[
MAX_INCLUDE_DEPTH
];
static
char
TMPDIR
[
FN_REFLEN
];
static
char
TMPDIR
[
FN_REFLEN
];
static
char
delimiter
[
MAX_DELIMITER
]
=
DEFAULT_DELIMITER
;
static
char
delimiter
[
MAX_DELIMITER
]
=
DEFAULT_DELIMITER
;
static
uint
delimiter_length
=
1
;
static
uint
delimiter_length
=
1
;
...
@@ -662,7 +662,7 @@ static void verbose_msg(const char *fmt, ...)
...
@@ -662,7 +662,7 @@ static void verbose_msg(const char *fmt, ...)
va_start
(
args
,
fmt
);
va_start
(
args
,
fmt
);
fprintf
(
stderr
,
"mysqltest: "
);
fprintf
(
stderr
,
"mysqltest: "
);
if
(
start_lineno
>
0
)
if
(
start_lineno
!=
0
)
fprintf
(
stderr
,
"At line %u: "
,
start_lineno
);
fprintf
(
stderr
,
"At line %u: "
,
start_lineno
);
vfprintf
(
stderr
,
fmt
,
args
);
vfprintf
(
stderr
,
fmt
,
args
);
fprintf
(
stderr
,
"
\n
"
);
fprintf
(
stderr
,
"
\n
"
);
...
@@ -900,7 +900,7 @@ int open_file(const char *name)
...
@@ -900,7 +900,7 @@ int open_file(const char *name)
die
(
"Could not open file %s"
,
buff
);
die
(
"Could not open file %s"
,
buff
);
}
}
cur_file
->
file_name
=
my_strdup
(
buff
,
MYF
(
MY_FAE
));
cur_file
->
file_name
=
my_strdup
(
buff
,
MYF
(
MY_FAE
));
*++
lineno
=
1
;
cur_file
->
lineno
=
1
;
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
}
}
...
@@ -1205,6 +1205,7 @@ int var_query_set(VAR* var, const char *query, const char** query_end)
...
@@ -1205,6 +1205,7 @@ int var_query_set(VAR* var, const char *query, const char** query_end)
{
{
if
(
row
[
0
])
if
(
row
[
0
])
{
{
#ifdef NOT_YET
/* Add to <var_name>_<col_name> */
/* Add to <var_name>_<col_name> */
uint
j
;
uint
j
;
char
var_col_name
[
MAX_VAR_NAME
];
char
var_col_name
[
MAX_VAR_NAME
];
...
@@ -1218,7 +1219,7 @@ int var_query_set(VAR* var, const char *query, const char** query_end)
...
@@ -1218,7 +1219,7 @@ int var_query_set(VAR* var, const char *query, const char** query_end)
}
}
var_set
(
var_col_name
,
var_col_name
+
length
,
var_set
(
var_col_name
,
var_col_name
+
length
,
row
[
i
],
row
[
i
]
+
lengths
[
i
]);
row
[
i
],
row
[
i
]
+
lengths
[
i
]);
#endif
/* Add column to tab separated string */
/* Add column to tab separated string */
dynstr_append_mem
(
&
result
,
row
[
i
],
lengths
[
i
]);
dynstr_append_mem
(
&
result
,
row
[
i
],
lengths
[
i
]);
}
}
...
@@ -2496,7 +2497,7 @@ int read_line(char *buf, int size)
...
@@ -2496,7 +2497,7 @@ int read_line(char *buf, int size)
DBUG_ENTER
(
"read_line"
);
DBUG_ENTER
(
"read_line"
);
LINT_INIT
(
quote
);
LINT_INIT
(
quote
);
start_lineno
=
*
lineno
;
start_lineno
=
cur_file
->
lineno
;
for
(;
p
<
buf_end
;)
for
(;
p
<
buf_end
;)
{
{
no_save
=
0
;
no_save
=
0
;
...
@@ -2511,28 +2512,25 @@ int read_line(char *buf, int size)
...
@@ -2511,28 +2512,25 @@ int read_line(char *buf, int size)
}
}
my_free
((
gptr
)
cur_file
->
file_name
,
MYF
(
MY_ALLOW_ZERO_PTR
));
my_free
((
gptr
)
cur_file
->
file_name
,
MYF
(
MY_ALLOW_ZERO_PTR
));
cur_file
->
file_name
=
0
;
cur_file
->
file_name
=
0
;
lineno
--
;
start_lineno
=
*
lineno
;
if
(
cur_file
==
file_stack
)
if
(
cur_file
==
file_stack
)
{
{
/* We're back at the first file, check if
/* We're back at the first file, check if
all { have matching }
all { have matching }
*/
*/
if
(
cur_block
!=
block_stack
)
if
(
cur_block
!=
block_stack
)
{
start_lineno
=
*
(
lineno
+
1
);
die
(
"Missing end of block"
);
die
(
"Missing end of block"
);
}
DBUG_PRINT
(
"info"
,
(
"end of file"
));
DBUG_PRINT
(
"info"
,
(
"end of file"
));
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
}
}
cur_file
--
;
cur_file
--
;
start_lineno
=
cur_file
->
lineno
;
continue
;
continue
;
}
}
/* Line counting is independent of state */
/* Line counting is independent of state */
if
(
c
==
'\n'
)
if
(
c
==
'\n'
)
(
*
lineno
)
++
;
cur_file
->
lineno
++
;
switch
(
state
)
{
switch
(
state
)
{
case
R_NORMAL
:
case
R_NORMAL
:
...
@@ -2561,14 +2559,15 @@ int read_line(char *buf, int size)
...
@@ -2561,14 +2559,15 @@ int read_line(char *buf, int size)
break
;
break
;
case
R_LINE_START
:
case
R_LINE_START
:
/* Only accept start of comment if this is the first line in query */
/* Only accept start of comment if this is the first line in query */
if
((
*
lineno
==
start_lineno
)
&&
(
c
==
'#'
||
c
==
'-'
||
parsing_disabled
))
if
((
cur_file
->
lineno
==
start_lineno
)
&&
(
c
==
'#'
||
c
==
'-'
||
parsing_disabled
))
{
{
state
=
R_COMMENT
;
state
=
R_COMMENT
;
}
}
else
if
(
my_isspace
(
charset_info
,
c
))
else
if
(
my_isspace
(
charset_info
,
c
))
{
{
if
(
c
==
'\n'
)
if
(
c
==
'\n'
)
start_lineno
=
*
lineno
;
/* Query hasn't started yet */
start_lineno
=
cur_file
->
lineno
;
/* Query hasn't started yet */
no_save
=
1
;
no_save
=
1
;
}
}
else
if
(
c
==
'}'
)
else
if
(
c
==
'}'
)
...
@@ -2670,7 +2669,6 @@ int read_line(char *buf, int size)
...
@@ -2670,7 +2669,6 @@ int read_line(char *buf, int size)
The advantage with this approach is to be able to execute commands
The advantage with this approach is to be able to execute commands
terminated by new line '\n' regardless how many "delimiter" it contain.
terminated by new line '\n' regardless how many "delimiter" it contain.
If query starts with @<file_name> this will specify a file to ....
*/
*/
static
char
read_query_buf
[
MAX_QUERY
];
static
char
read_query_buf
[
MAX_QUERY
];
...
@@ -2894,6 +2892,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
...
@@ -2894,6 +2892,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
my_fopen
(
buff
,
O_RDONLY
|
FILE_BINARY
,
MYF
(
0
))))
my_fopen
(
buff
,
O_RDONLY
|
FILE_BINARY
,
MYF
(
0
))))
die
(
"Could not open %s: errno = %d"
,
buff
,
errno
);
die
(
"Could not open %s: errno = %d"
,
buff
,
errno
);
cur_file
->
file_name
=
my_strdup
(
buff
,
MYF
(
MY_FAE
));
cur_file
->
file_name
=
my_strdup
(
buff
,
MYF
(
MY_FAE
));
cur_file
->
lineno
=
1
;
break
;
break
;
}
}
case
'm'
:
case
'm'
:
...
@@ -4283,25 +4282,30 @@ int main(int argc, char **argv)
...
@@ -4283,25 +4282,30 @@ int main(int argc, char **argv)
save_file
[
0
]
=
0
;
save_file
[
0
]
=
0
;
TMPDIR
[
0
]
=
0
;
TMPDIR
[
0
]
=
0
;
/* Init cons */
memset
(
cons
,
0
,
sizeof
(
cons
));
memset
(
cons
,
0
,
sizeof
(
cons
));
cons_end
=
cons
+
MAX_CONS
;
cons_end
=
cons
+
MAX_CONS
;
next_con
=
cons
+
1
;
next_con
=
cons
+
1
;
cur_con
=
cons
;
cur_con
=
cons
;
/* Init file stack */
memset
(
file_stack
,
0
,
sizeof
(
file_stack
));
memset
(
file_stack
,
0
,
sizeof
(
file_stack
));
memset
(
&
master_pos
,
0
,
sizeof
(
master_pos
));
file_stack_end
=
file_stack
+
MAX_INCLUDE_DEPTH
-
1
;
file_stack_end
=
file_stack
+
MAX_INCLUDE_DEPTH
-
1
;
cur_file
=
file_stack
;
cur_file
=
file_stack
;
lineno
=
lineno_stack
;
my_init_dynamic_array
(
&
q_lines
,
sizeof
(
struct
st_query
*
),
INIT_Q_LINES
,
INIT_Q_LINES
);
/* Init block stack */
memset
(
block_stack
,
0
,
sizeof
(
block_stack
));
memset
(
block_stack
,
0
,
sizeof
(
block_stack
));
block_stack_end
=
block_stack
+
BLOCK_STACK_DEPTH
-
1
;
block_stack_end
=
block_stack
+
BLOCK_STACK_DEPTH
-
1
;
cur_block
=
block_stack
;
cur_block
=
block_stack
;
cur_block
->
ok
=
TRUE
;
/* Outer block should always be executed */
cur_block
->
ok
=
TRUE
;
/* Outer block should always be executed */
cur_block
->
cmd
=
cmd_none
;
cur_block
->
cmd
=
cmd_none
;
my_init_dynamic_array
(
&
q_lines
,
sizeof
(
struct
st_query
*
),
INIT_Q_LINES
,
INIT_Q_LINES
);
memset
(
&
master_pos
,
0
,
sizeof
(
master_pos
));
init_dynamic_string
(
&
ds_res
,
""
,
0
,
65536
);
init_dynamic_string
(
&
ds_res
,
""
,
0
,
65536
);
parse_args
(
argc
,
argv
);
parse_args
(
argc
,
argv
);
...
@@ -4314,8 +4318,8 @@ int main(int argc, char **argv)
...
@@ -4314,8 +4318,8 @@ int main(int argc, char **argv)
{
{
cur_file
->
file
=
stdin
;
cur_file
->
file
=
stdin
;
cur_file
->
file_name
=
my_strdup
(
"<stdin>"
,
MYF
(
MY_WME
));
cur_file
->
file_name
=
my_strdup
(
"<stdin>"
,
MYF
(
MY_WME
));
cur_file
->
lineno
=
1
;
}
}
*
lineno
=
1
;
#ifndef EMBEDDED_LIBRARY
#ifndef EMBEDDED_LIBRARY
if
(
manager_host
)
if
(
manager_host
)
init_manager
();
init_manager
();
...
@@ -4610,6 +4614,8 @@ int main(int argc, char **argv)
...
@@ -4610,6 +4614,8 @@ int main(int argc, char **argv)
parser
.
current_line
+=
current_line_inc
;
parser
.
current_line
+=
current_line_inc
;
}
}
start_lineno
=
0
;
/*
/*
The whole test has been executed _sucessfully_
The whole test has been executed _sucessfully_
Time to compare result or save it to record file
Time to compare result or save it to record file
...
...
mysql-test/r/mysqltest.result
View file @
a8ce050a
...
@@ -149,7 +149,7 @@ hello
...
@@ -149,7 +149,7 @@ hello
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: Missing delimiter
mysqltest: At line 1: Missing delimiter
mysqltest: End of line junk detected: "sleep 7
mysqltest:
At line 1:
End of line junk detected: "sleep 7
# Another comment
# Another comment
"
"
mysqltest: At line 1: Extra delimiter ";" found
mysqltest: At line 1: Extra delimiter ";" found
...
@@ -222,25 +222,6 @@ mysqltest: At line 1: Missing arguments to let
...
@@ -222,25 +222,6 @@ mysqltest: At line 1: Missing arguments to let
mysqltest: At line 1: Missing variable name in let
mysqltest: At line 1: Missing variable name in let
mysqltest: At line 1: Variable name in =hi does not start with '$'
mysqltest: At line 1: Variable name in =hi does not start with '$'
mysqltest: At line 1: Missing assignment operator in let
mysqltest: At line 1: Missing assignment operator in let
var1
hi 1 hi there
hi
1
hi there
var2
2
var2 again
2
2
var3 two columns with same name
1 2 3
2
2
3
mysqltest: At line 1: Missing file name in source
mysqltest: At line 1: Missing file name in source
mysqltest: At line 1: Could not open file ./non_existingFile
mysqltest: At line 1: Could not open file ./non_existingFile
mysqltest: In included file "./var/tmp/recursive.sql": At line 1: Source directives are nesting too deep
mysqltest: In included file "./var/tmp/recursive.sql": At line 1: Source directives are nesting too deep
...
...
mysql-test/t/mysqltest.test
View file @
a8ce050a
...
@@ -543,7 +543,7 @@ echo $novar1;
...
@@ -543,7 +543,7 @@ echo $novar1;
# Test to assign let from query
# Test to assign let from query
# let $<var_name>=`<query>`;
# let $<var_name>=`<query>`;
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
--
disable_parsing
echo
var1
;
echo
var1
;
let
$var1
=
`select "hi" as "Col", 1 as "Column1", "hi there" as Col3`
;
let
$var1
=
`select "hi" as "Col", 1 as "Column1", "hi there" as Col3`
;
echo
$var1
;
echo
$var1
;
...
@@ -574,7 +574,7 @@ echo $var3_var3;
...
@@ -574,7 +574,7 @@ echo $var3_var3;
#echo failing query in let;
#echo failing query in let;
#--error 1
#--error 1
#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
--
enable_parsing
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Test source command
# Test source command
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
...
...
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