List:Commits« Previous MessageNext Message »
From:msvensson Date:August 6 2007 9:20am
Subject:bk commit into 5.0 tree (msvensson:1.2503)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-08-06 11:20:36+02:00, msvensson@shellback.(none) +3 -0
  Remove NOT_YET code
  Update comments
  Add more tests for "let from query"

  client/mysqltest.c@stripped, 2007-08-06 11:20:33+02:00, msvensson@shellback.(none) +6 -24
    Remove NOT_YET code
    Update comments

  mysql-test/r/mysqltest.result@stripped, 2007-08-06 11:20:33+02:00, msvensson@shellback.(none) +12 -0
    Add more tests for "let from query" 

  mysql-test/t/mysqltest.test@stripped, 2007-08-06 11:20:33+02:00, msvensson@shellback.(none) +19 -17
    Add more tests for "let from query" 

diff -Nrup a/client/mysqltest.c b/client/mysqltest.c
--- a/client/mysqltest.c	2007-08-06 10:39:43 +02:00
+++ b/client/mysqltest.c	2007-08-06 11:20:33 +02:00
@@ -1777,40 +1777,22 @@ void var_query_set(VAR *var, const char 
     die("Query '%s' didn't return a result set", ds_query.str);
   dynstr_free(&ds_query);
 
-  if ((row = mysql_fetch_row(res)) && row[0])
+  if ((row= mysql_fetch_row(res)) && row[0])
   {
     /*
-      Concatenate all row results with tab in between to allow us to work
-      with results from many columns (for example from SHOW VARIABLES)
+      Concatenate all fields in the first row with tab in between
+      and assign that string to the $variable
     */
     DYNAMIC_STRING result;
     uint i;
     ulong *lengths;
-#ifdef NOT_YET
-    MYSQL_FIELD *fields= mysql_fetch_fields(res);
-#endif
 
-    init_dynamic_string(&result, "", 2048, 2048);
+    init_dynamic_string(&result, "", 512, 512);
     lengths= mysql_fetch_lengths(res);
-    for (i=0; i < mysql_num_fields(res); i++)
+    for (i= 0; i < mysql_num_fields(res); i++)
     {
-      if (row[0])
+      if (row[i])
       {
-#ifdef NOT_YET
-	/* Add to <var_name>_<col_name> */
-	uint j;
-	char var_col_name[MAX_VAR_NAME_LENGTH];
-	uint length= snprintf(var_col_name, MAX_VAR_NAME_LENGTH,
-			      "$%s_%s", var->name, fields[i].name);
-	/* Convert characters not allowed in variable names to '_' */
-	for (j= 1; j < length; j++)
-	{
-	  if (!my_isvar(charset_info,var_col_name[j]))
-            var_col_name[j]= '_';
-        }
-	var_set(var_col_name,  var_col_name + length,
-		row[i], row[i] + lengths[i]);
-#endif
         /* Add column to tab separated string */
 	dynstr_append_mem(&result, row[i], lengths[i]);
       }
diff -Nrup a/mysql-test/r/mysqltest.result b/mysql-test/r/mysqltest.result
--- a/mysql-test/r/mysqltest.result	2007-08-03 13:12:49 +02:00
+++ b/mysql-test/r/mysqltest.result	2007-08-06 11:20:33 +02:00
@@ -280,6 +280,18 @@ let $B = changed value of B;
 var2: content of variable 1
 var3: content of variable 1 content of variable 1
 length of var3 is longer than 0
+var1
+hi	1	hi there
+var2
+2
+var2 again
+2
+var3 two columns with same name
+1	2	3
+var4 from query that returns NULL
+var5 from query that returns no row
+failing query in let
+mysqltest: At line 1: Error running query 'failing query': 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing query' at line 1
 mysqltest: At line 1: Missing required argument 'filename' to command 'source'
 mysqltest: At line 1: Could not open file ./non_existingFile
 mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
diff -Nrup a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test
--- a/mysql-test/t/mysqltest.test	2007-08-03 13:12:49 +02:00
+++ b/mysql-test/t/mysqltest.test	2007-08-06 11:20:33 +02:00
@@ -736,38 +736,40 @@ if (`select length("$var3") > 0`)
 # Test to assign let from query
 # let $<var_name>=`<query>`;
 # ----------------------------------------------------------------------------
---disable_parsing
 echo var1;
 let $var1= `select "hi" as "Col", 1 as "Column1", "hi there" as Col3`;
 echo $var1;
-echo $var1_Col;
-echo $var1_Column1;
-echo $var1_Col3;
 
 echo var2;
 let $var2= `select 2 as "Column num 2"`;
 echo $var2;
-echo $var2_Column num 2;
-echo $var2_Column;
 
 echo var2 again;
 let $var2= `select 2 as "Column num 2"`;
 echo $var2;
-echo $var2_Column num 2;
-echo $var2_Column_num_2;
-echo $var2_Column;
 
 echo var3 two columns with same name;
 let $var3= `select 1 as "Col", 2 as "Col", 3 as "var3"`;
 echo $var3;
-echo $var3_Col;
-echo $var3_Col;
-echo $var3_var3;
-
-#echo failing query in let;
-#--error 1
-#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
---enable_parsing
+
+echo var4 from query that returns NULL;
+let $var4= `select NULL`;
+
+echo var5 from query that returns no row;
+let $var5= `SHOW VARIABLES LIKE "nonexisting_variable"`;
+
+echo failing query in let;
+--write_file $MYSQLTEST_VARDIR/tmp/let.sql
+let $var2= `failing query`;
+echo $var2;
+EOF
+
+--error 1
+--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/let.sql 2>&1
+
+remove_file $MYSQLTEST_VARDIR/tmp/let.sql;
+
+
 # ----------------------------------------------------------------------------
 # Test source command
 # ----------------------------------------------------------------------------
Thread
bk commit into 5.0 tree (msvensson:1.2503)msvensson6 Aug