~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to mysql-test/t/group_by.test

  • Committer: msvensson at pilot
  • Date: 2007-04-24 09:11:45 UTC
  • mfrom: (2469.1.106)
  • Revision ID: sp1r-msvensson@pilot.blaudden-20070424091145-10463
Merge pilot.blaudden:/home/msvensson/mysql/my51-m-mysql_upgrade
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint

Show diffs side-by-side

added added

removed removed

Lines of Context:
755
755
 
756
756
#
757
757
# Bug #21174: Index degrades sort performance and 
758
 
#             optimizer does not honor IGNORE INDEX
 
758
#             optimizer does not honor IGNORE INDEX.
 
759
#             a.k.a WL3527.
759
760
#
760
 
CREATE TABLE t1 (a INT, b INT, KEY(a));
761
 
INSERT INTO t1 VALUES (1, 1), (2, 2), (3,3), (4,4);
762
 
 
763
 
EXPLAIN SELECT a, SUM(b) FROM t1 GROUP BY a LIMIT 2; 
764
 
EXPLAIN SELECT a, SUM(b) FROM t1 IGNORE INDEX (a) GROUP BY a LIMIT 2;
765
 
 
766
 
DROP TABLE t1;
 
761
CREATE TABLE t1 (a INT, b INT,
 
762
                 PRIMARY KEY (a),
 
763
                 KEY i2(a,b));
 
764
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8);
 
765
INSERT INTO t1 SELECT a + 8,b FROM t1;
 
766
INSERT INTO t1 SELECT a + 16,b FROM t1;
 
767
INSERT INTO t1 SELECT a + 32,b FROM t1;
 
768
INSERT INTO t1 SELECT a + 64,b FROM t1;
 
769
INSERT INTO t1 SELECT a + 128,b FROM t1;
 
770
ANALYZE TABLE t1;
 
771
EXPLAIN SELECT a FROM t1 WHERE a < 2;
 
772
EXPLAIN SELECT a FROM t1 WHERE a < 2 ORDER BY a;
 
773
EXPLAIN SELECT a FROM t1 WHERE a < 2 GROUP BY a;
 
774
EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY,i2);
 
775
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2);
 
776
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
 
777
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
 
778
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY)
 
779
  IGNORE INDEX FOR GROUP BY (i2) GROUP BY a;
 
780
EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY) IGNORE INDEX FOR ORDER BY (i2);
 
781
EXPLAIN SELECT a FROM t1 FORCE INDEX (i2);
 
782
EXPLAIN SELECT a FROM t1 USE INDEX ();
 
783
EXPLAIN SELECT a FROM t1 USE INDEX () USE INDEX (i2);
 
784
--error ER_WRONG_USAGE
 
785
EXPLAIN SELECT a FROM t1 
 
786
  FORCE INDEX (PRIMARY) 
 
787
  IGNORE INDEX FOR GROUP BY (i2)
 
788
  IGNORE INDEX FOR ORDER BY (i2)
 
789
  USE INDEX (i2);
 
790
EXPLAIN SELECT a FROM t1 USE INDEX (i2) USE INDEX ();
 
791
--error ER_PARSE_ERROR
 
792
EXPLAIN SELECT a FROM t1 FORCE INDEX ();
 
793
--error ER_PARSE_ERROR
 
794
EXPLAIN SELECT a FROM t1 IGNORE INDEX ();
 
795
EXPLAIN SELECT a FROM t1 USE INDEX FOR JOIN (i2) 
 
796
  USE INDEX FOR GROUP BY (i2) GROUP BY a;
 
797
EXPLAIN SELECT a FROM t1 FORCE INDEX FOR JOIN (i2) 
 
798
  FORCE INDEX FOR GROUP BY (i2) GROUP BY a;
 
799
EXPLAIN SELECT a FROM t1 USE INDEX () IGNORE INDEX (i2);
 
800
EXPLAIN SELECT a FROM t1 IGNORE INDEX (i2) USE INDEX ();
 
801
 
 
802
EXPLAIN SELECT a FROM t1 
 
803
  USE INDEX FOR GROUP BY (i2) 
 
804
  USE INDEX FOR ORDER BY (i2)
 
805
  USE INDEX FOR JOIN (i2);
 
806
 
 
807
EXPLAIN SELECT a FROM t1 
 
808
  USE INDEX FOR JOIN (i2) 
 
809
  USE INDEX FOR JOIN (i2) 
 
810
  USE INDEX FOR JOIN (i2,i2);
 
811
 
 
812
EXPLAIN SELECT 1 FROM t1 WHERE a IN
 
813
  (SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
 
814
 
 
815
CREATE TABLE t2 (a INT, b INT, KEY(a));
 
816
INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4);
 
817
EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2; 
 
818
EXPLAIN SELECT a, SUM(b) FROM t2 IGNORE INDEX (a) GROUP BY a LIMIT 2;
 
819
 
 
820
EXPLAIN SELECT 1 FROM t2 WHERE a IN
 
821
  (SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
 
822
 
 
823
SHOW VARIABLES LIKE 'old';  
 
824
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 
825
SET @@old = off;  
 
826
 
 
827
DROP TABLE t1, t2;