diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 30eab135b24..3c02f8803af 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -1528,8 +1528,8 @@ sub mysql_fix_arguments () {
mtr_init_args(\$args);
mtr_add_arg($args, "--defaults-file=%s", $path_config_file);
- mtr_add_arg($args, "--basedir=", $basedir);
- mtr_add_arg($args, "--bindir=", $path_client_bindir);
+ mtr_add_arg($args, "--basedir=%s", $basedir);
+ mtr_add_arg($args, "--bindir=%s", $path_client_bindir);
mtr_add_arg($args, "--verbose");
return mtr_args2str($exe, @$args);
}
diff --git a/mysql-test/r/xml.result b/mysql-test/r/xml.result
index 41c0d6bee21..404b0dc3789 100644
--- a/mysql-test/r/xml.result
+++ b/mysql-test/r/xml.result
@@ -1053,4 +1053,15 @@ ExtractValue('CharData', '/xml')
NULL
Warnings:
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 17: STRING unexpected ('>' wanted)'
+set @x=10;
+select extractvalue('','$@x/a');
+ERROR HY000: XPATH syntax error: '/a'
+select extractvalue('','round(123.4)/a');
+ERROR HY000: XPATH syntax error: '/a'
+select extractvalue('','1/a');
+ERROR HY000: XPATH syntax error: '/a'
+select extractvalue('','"b"/a');
+ERROR HY000: XPATH syntax error: '/a'
+select extractvalue('','(1)/a');
+ERROR HY000: XPATH syntax error: '/a'
End of 5.1 tests
diff --git a/mysql-test/t/xml.test b/mysql-test/t/xml.test
index d840e14ba5f..74bce8dc962 100644
--- a/mysql-test/t/xml.test
+++ b/mysql-test/t/xml.test
@@ -575,5 +575,19 @@ SELECT ExtractValue(@xml, 'html/body');
SELECT ExtractValue('CharData', '/xml');
SELECT ExtractValue('CharData', '/xml');
+#
+# Bug#42495 updatexml: Assertion failed: xpath->context, file .\item_xmlfunc.cc, line 2507
+#
+set @x=10;
+--error ER_UNKNOWN_ERROR
+select extractvalue('','$@x/a');
+--error ER_UNKNOWN_ERROR
+select extractvalue('','round(123.4)/a');
+--error ER_UNKNOWN_ERROR
+select extractvalue('','1/a');
+--error ER_UNKNOWN_ERROR
+select extractvalue('','"b"/a');
+--error ER_UNKNOWN_ERROR
+select extractvalue('','(1)/a');
--echo End of 5.1 tests
diff --git a/sql-bench/bench-init.pl.sh b/sql-bench/bench-init.pl.sh
index a728086760a..588e518a648 100644
--- a/sql-bench/bench-init.pl.sh
+++ b/sql-bench/bench-init.pl.sh
@@ -47,7 +47,7 @@ $opt_machine=""; $opt_suffix="";
$opt_create_options=undef;
$opt_optimization="None";
$opt_hw="";
-$opt_threads=5;
+$opt_threads=-1;
if (!defined($opt_time_limit))
{
@@ -68,6 +68,11 @@ $limits=merge_limits($server,$opt_cmp);
$date=date();
@estimated=(0.0,0.0,0.0); # For estimated time support
+if ($opt_threads != -1)
+{
+ print "WARNING: Option --threads is deprecated and has no effect\n"
+}
+
if ($opt_hires)
{
eval "use Time::HiRes;";
@@ -560,8 +565,8 @@ All benchmarks takes the following options:
Inform test suite that we are generate random inital values for sequence of
test executions. It should be used for imitation of real conditions.
---threads=# (Default 5)
- Number of threads for multi-user benchmarks.
+--threads=# **DEPRECATED**
+ This option has no effect, and will be removed in a future version.
--tcpip
Inform test suite that we are using TCP/IP to connect to the server. In
diff --git a/sql/item_xmlfunc.cc b/sql/item_xmlfunc.cc
index 68d85418324..5601a2b18c6 100644
--- a/sql/item_xmlfunc.cc
+++ b/sql/item_xmlfunc.cc
@@ -1969,6 +1969,13 @@ my_xpath_parse_FilterExpr_opt_slashes_RelativeLocationPath(MY_XPATH *xpath)
if (!my_xpath_parse_term(xpath, MY_XPATH_LEX_SLASH))
return 1;
+ if (xpath->item->type() != Item::XPATH_NODESET)
+ {
+ xpath->lasttok= xpath->prevtok;
+ xpath->error= 1;
+ return 0;
+ }
+
my_xpath_parse_term(xpath, MY_XPATH_LEX_SLASH);
return my_xpath_parse_RelativeLocationPath(xpath);
}
@@ -1976,7 +1983,6 @@ static int my_xpath_parse_PathExpr(MY_XPATH *xpath)
{
return my_xpath_parse_LocationPath(xpath) ||
my_xpath_parse_FilterExpr_opt_slashes_RelativeLocationPath(xpath);
-
}