List:Commits« Previous MessageNext Message »
From:Bjorn Munch Date:November 23 2010 11:56am
Subject:bzr commit into mysql-5.5-mtr branch (bjorn.munch:3118) Bug#58412
View as plain text  
#At file:///home/bm136801/my/quote-55/ based on revid:bjorn.munch@stripped

 3118 Bjorn Munch	2010-11-23
      Bug #58412 mysqltest: allow quoting of strings in let and in if comparison
      Stripping quotes in let was a bad idea, will not fix
      Added code to strip quotes from rhs in comparisons

    modified:
      client/mysqltest.cc
      mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
      mysql-test/r/mysqltest.result
      mysql-test/t/mysqltest.test
=== modified file 'client/mysqltest.cc'
--- a/client/mysqltest.cc	2010-11-18 15:41:35 +0000
+++ b/client/mysqltest.cc	2010-11-23 11:55:32 +0000
@@ -5678,6 +5678,17 @@ void do_block(enum block_cmd cmd, struct
     while (my_isspace(charset_info, *curr_ptr))
       curr_ptr++;
 
+    /* Strip off trailing white space */
+    while (my_isspace(charset_info, expr_end[-1]))
+      expr_end--;
+    /* strip off ' or " around the string */
+    if (*curr_ptr == '\'' || *curr_ptr == '"')
+    {
+      if (expr_end[-1] != *curr_ptr)
+        die("Unterminated string value");
+      curr_ptr++;
+      expr_end--;
+    }
     VAR v2;
     var_init(&v2,0,0,0,0);
     eval_expr(&v2, curr_ptr, &expr_end);

=== modified file 'mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test'
--- a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test	2010-11-17 10:16:13 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test	2010-11-23 11:55:32 +0000
@@ -36,8 +36,8 @@ let $ddl_cases= 41;
 while ($ddl_cases >= 1)
 {
   --echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b-
-  let $in_temporary= "no";
-  let $ok= "yes";
+  let $in_temporary= no;
+  let $ok= yes;
   #
   # In SBR and MIXED modes, the commit event is usually the third event in the
   # binary log:
@@ -91,7 +91,7 @@ while ($ddl_cases >= 1)
     {
       # This seems to be related to epochs.
       # We need to check this against an updated version or avoid it.
-      let $ok= "no";
+      let $ok= no;
       let $commit_event_row_number= 6;
     }
   }
@@ -356,7 +356,7 @@ while ($ddl_cases >= 1)
   if ($ddl_cases == 11)
   {
     let $cmd= CREATE TEMPORARY TABLE tt_xx (a int);
-    let $in_temporary= "yes";
+    let $in_temporary= yes;
     # In SBR and MIXED modes, the DDL statement is written to the binary log but
     # does not commit the current transaction.
     #
@@ -478,7 +478,7 @@ while ($ddl_cases >= 1)
   if ($ddl_cases == 8)
   {
     let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx;
-    let $in_temporary= "yes";
+    let $in_temporary= yes;
     #
     # In SBR and MIXED modes, the DDL statement is written to the binary log
     # but does not commit the current transaction:
@@ -618,14 +618,14 @@ while ($ddl_cases >= 1)
   # commit. The flag in_temporary is used to avoid aborting the test in such
   # cases. Thus we force the commit.
   #
-  if ($in_temporary == "yes")
+  if ($in_temporary == yes)
   {
     --eval COMMIT
   }
   let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number);
   if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`)
   {
-    if ($ok == "yes")
+    if ($ok == yes)
     {
       --echo it *does not* commit the current transaction.
       --echo $cmd

=== modified file 'mysql-test/r/mysqltest.result'
--- a/mysql-test/r/mysqltest.result	2010-11-18 15:41:35 +0000
+++ b/mysql-test/r/mysqltest.result	2010-11-23 11:55:32 +0000
@@ -423,7 +423,10 @@ while with string, only once
 hello == hello
 hello   ==   hello
 hello != goodbye
+'quoted' == ''quoted''
 two words
+'two words'
+"two words"
 two words are two words
 right answer
 anything goes

=== modified file 'mysql-test/t/mysqltest.test'
--- a/mysql-test/t/mysqltest.test	2010-11-18 15:41:35 +0000
+++ b/mysql-test/t/mysqltest.test	2010-11-23 11:55:32 +0000
@@ -1276,12 +1276,24 @@ if ($ifvar != goodbye)
 {
   echo hello != goodbye;
 }
-
+let $ifvar= 'quoted';
+if ($ifvar == ''quoted'')
+{
+  echo 'quoted' == ''quoted'';
+}
 let $ifvar= two words;
 if ($ifvar == two words)
 {
   echo two words;
 }
+if ($ifvar == 'two words')
+{
+  echo 'two words';
+}
+if ($ifvar == "two words")
+{
+  echo "two words";
+}
 if ($ifvar == `SELECT 'two words'`)
 {
   echo two words are two words;


Attachment: [text/bzr-bundle] bzr/bjorn.munch@oracle.com-20101123115532-qlq8opou7aif4qdc.bundle
Thread
bzr commit into mysql-5.5-mtr branch (bjorn.munch:3118) Bug#58412Bjorn Munch23 Nov