Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
5.5(EOL), 10.0(EOL), 10.1(EOL), 10.2(EOL)
-
None
Description
mysqltest only executes the source command on the first iteration of a loop, after that the sourced file is already in the q_lines cache, so there is no need to read it again. Alas, when ignoring source command, we cannot know what file caused the error.
a.test |
let $a=0;
|
while($a) {
|
source $MYSQL_TMP_DIR/b.inc;
|
inc $a;
|
}
|
b.inc |
if ($a) {
|
sleep 1 2;
|
}
|
Attachments
Issue Links
- relates to
-
MDEV-12138 mysqltest: source inside a loop
-
- Open
-
-
MDEV-12130 Improve mysqltest language
-
- Open
-
Hi Sergei,
You have removed the if statement in your patch and performing else part every time, I think the checking for existence of file won't be issue.
/*If this file has already been sourced, don't source it again.
- It's already available in the q_lines cache.
- */
- if (parser.current_line < (parser.read_lines - 1))
- ; /* Do nothing */
- else
- {
- DBUG_PRINT("info", ("sourcing file: %s", ds_filename.str));
- open_file(ds_filename.str);
Also regarding the MDEV-12138, I found this :- A sourced file can use source to read other files,but the maximum nesting level is 16.
Sorry for late response, I had mid term exams last week!!