~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/create_select_tmp.test

  • Committer: Prafulla Tekawade
  • Date: 2010-07-13 16:07:35 UTC
  • mto: (1662.1.4 rollup)
  • mto: This revision was merged to the branch mainline in revision 1664.
  • Revision ID: prafulla_t@users.sourceforge.net-20100713160735-2fsdtrm3azayuyu1
This bug is simillar to mysql bug 36133
http://bugs.mysql.com/bug.php?id=36133

Taking changes from that fix.

  - The problem was that the range optimizer evaluated constant expressions, 
    and among them it would try to evaluate IN-subquery predicates slated for
    handling with materialization strategy. However, these predicates require
    that parent_join->setup_subquery_materialization() is invoked before one
    attempts to evaluate them.
  
  - Fixed by making the range optimizer not to evaluate expressions that have
    item->is_expensive() == TRUE (these are materialization subqueries and 
    stored function calls). This should also resolve the problem that EXPLAIN 
    may be too long. 
    This change cuts off some opportunities for range optimizer, but this is 
    the price we're willing to pay for separation of query optimization and
    execution. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
INSERT INTO t1 VALUES (1),(2),(1);
14
14
--error ER_DUP_ENTRY
15
15
CREATE TABLE t2 ( PRIMARY KEY (a) ) ENGINE=INNODB SELECT a FROM t1;
16
 
--error ER_TABLE_UNKNOWN
 
16
--error 1146
17
17
select * from t2;
18
18
--error ER_DUP_ENTRY
19
19
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=INNODB SELECT a FROM t1;
20
 
--error ER_TABLE_UNKNOWN
21
 
select * from t2;
22
 
--error ER_DUP_ENTRY
23
 
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
24
 
--error ER_TABLE_UNKNOWN
25
 
select * from t2;
26
 
--error ER_DUP_ENTRY
27
 
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
28
 
--error ER_TABLE_UNKNOWN
 
20
--error 1146
 
21
select * from t2;
 
22
--error ER_DUP_ENTRY
 
23
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
 
24
--error 1146
 
25
select * from t2;
 
26
--error ER_DUP_ENTRY
 
27
CREATE TEMPORARY TABLE t2 ( PRIMARY KEY (a) ) ENGINE=MYISAM SELECT a FROM t1;
 
28
--error 1146
29
29
select * from t2;
30
30
drop table t1;
31
31