List:Commits« Previous MessageNext Message »
From:vasil.dimov Date:February 18 2011 1:03pm
Subject:bzr push into mysql-5.1 branch (vasil.dimov:3598 to 3599)
View as plain text  
 3599 Vasil Dimov	2011-02-18 [merge]
      Merge mysql-5.1-innodb -> mysql-5.1

    modified:
      mysql-test/suite/innodb/t/innodb_bug60049.test
      mysql-test/suite/innodb_plugin/t/innodb_bug60049.test
      mysql-test/suite/innodb_plugin/t/innodb_information_schema.test
 3598 Martin Hansson	2011-02-18
      Bug#11766675 - 59839: Aggregation followed by subquery yields wrong result
      
      The loop that was looping over subqueries' references to outer field used a
      local boolean variable to tell whether the field was grouped or not. But the
      implementor failed to reset the variable after each iteration. Thus a field
      that was not directly aggregated appeared to be.
      
      Fixed by resetting the variable upon each new iteration.

    modified:
      mysql-test/r/group_by.result
      mysql-test/t/group_by.test
      sql/sql_select.cc
=== modified file 'mysql-test/suite/innodb/t/innodb_bug60049.test'
--- a/mysql-test/suite/innodb/t/innodb_bug60049.test	revid:martin.hansson@stripped
+++ b/mysql-test/suite/innodb/t/innodb_bug60049.test	revid:vasil.dimov@stripped
@@ -13,7 +13,7 @@ let $MYSQLD_DATADIR=`select @@datadir`;
 
 # Shut down the server
 -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--- shutdown_server 10
+-- shutdown_server 30
 -- source include/wait_until_disconnected.inc
 
 # Check the tail of ID_IND (SYS_TABLES.ID)

=== modified file 'mysql-test/suite/innodb_plugin/t/innodb_bug60049.test'
--- a/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test	revid:martin.hansson@stripped
+++ b/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test	revid:vasil.dimov@stripped
@@ -13,7 +13,7 @@ let $MYSQLD_DATADIR=`select @@datadir`;
 
 # Shut down the server
 -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--- shutdown_server 10
+-- shutdown_server 30
 -- source include/wait_until_disconnected.inc
 
 # Check the tail of ID_IND (SYS_TABLES.ID)

=== modified file 'mysql-test/suite/innodb_plugin/t/innodb_information_schema.test'
--- a/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test	revid:martin.hansson@stripped
+++ b/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test	revid:vasil.dimov@stripped
@@ -116,11 +116,29 @@ SELECT * FROM ```t'\"_str` WHERE c1 = '4
 # executes before some of them, resulting in less than expected number
 # of rows being selected from innodb_locks. If there is a bug and there
 # are no 14 rows in innodb_locks then this test will fail with timeout.
-let $count = 14;
-let $table = INFORMATION_SCHEMA.INNODB_LOCKS;
--- source include/wait_until_rows_count.inc
-# the above enables the query log, re-disable it
--- disable_query_log
+# Notice that if we query INNODB_LOCKS more often than once per 0.1 sec
+# then its contents will never change because the cache from which it is
+# filled is updated only if it has not been read for 0.1 seconds. See
+# CACHE_MIN_IDLE_TIME_US in trx/trx0i_s.c.
+let $cnt=10;
+while ($cnt)
+{
+    let $success=`SELECT COUNT(*) = 14 FROM INFORMATION_SCHEMA.INNODB_LOCKS`;
+    if ($success)
+    {
+        let $cnt=0;
+    }
+    if (!$success)
+    {
+        real_sleep 0.2;
+        dec $cnt;
+    }
+}
+if (!$success)
+{
+    -- echo Timeout waiting for rows in INNODB_LOCKS to appear
+}
+
 SELECT lock_mode, lock_type, lock_table, lock_index, lock_rec, lock_data
 FROM INFORMATION_SCHEMA.INNODB_LOCKS ORDER BY lock_data;
 

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1 branch (vasil.dimov:3598 to 3599) vasil.dimov18 Feb