~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/join.test

  • Committer: Brian Aker
  • Date: 2011-02-17 10:09:00 UTC
  • mfrom: (2173.2.1 clean-include-usuage)
  • Revision ID: brian@tangent.org-20110217100900-4tpuxxzdl1sj00sh
Merge Monty for headers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
CREATE TABLE t2 (S1 INT);
13
13
INSERT INTO t1 VALUES (1);
14
14
INSERT INTO t2 VALUES (2);
 
15
--error ER_CARTESIAN_JOIN_ATTEMPTED
15
16
SELECT * FROM t1 JOIN t2;
 
17
--error ER_CARTESIAN_JOIN_ATTEMPTED
16
18
SELECT * FROM t1 INNER JOIN t2;
17
19
SELECT * from t1 JOIN t2 USING (S1);
18
20
SELECT * FROM t1 INNER JOIN t2 USING (S1);
67
69
  count int DEFAULT '0' NOT NULL,
68
70
  qty int,
69
71
  phone char(1) DEFAULT '' NOT NULL,
70
 
  timestamp datetime,
 
72
  timestamp_arg datetime,
71
73
  PRIMARY KEY (id),
72
74
  KEY token (token(15)),
73
 
  KEY timestamp (timestamp),
 
75
  KEY timestamp_arg (timestamp_arg),
74
76
  UNIQUE token_2 (token(75),count,phone)
75
77
);
76
78
 
299
301
CREATE TABLE t1 (a int);
300
302
CREATE TABLE t2 (b int);
301
303
CREATE TABLE t3 (c int);
 
304
--error ER_CARTESIAN_JOIN_ATTEMPTED
302
305
SELECT * FROM t1 NATURAL JOIN t2 NATURAL JOIN t3;
303
306
DROP TABLE t1, t2, t3;
304
307
 
489
492
# Negative tests (tests for errors)
490
493
#--------------------------------------------------------------------
491
494
# works in Oracle - bug
 
495
--error ER_NON_UNIQ_ERROR
492
496
select * from t1 natural join (t3 cross join t4);
493
497
# works in Oracle - bug
 
498
--error ER_NON_UNIQ_ERROR
494
499
select * from (t3 cross join t4) natural join t1;
 
500
--error ER_NON_UNIQ_ERROR
495
501
select * from t1 join (t2, t3) using (b);
496
 
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
497
 
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
 
502
--error ER_NON_UNIQ_ERROR
 
503
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
 
504
--error ER_NON_UNIQ_ERROR
 
505
select * from ((t1 natural join t2), (t3 natural join t4)) natural join t6;
 
506
--error ER_NON_UNIQ_ERROR
498
507
select * from t6 natural join ((t1 natural join t2),  (t3 natural join t4));
 
508
--error ER_NON_UNIQ_ERROR
499
509
select * from (t1 join t2 on t1.b=t2.b) natural join (t3 natural join t4);
 
510
--error ER_NON_UNIQ_ERROR
500
511
select * from  (t3 natural join t4) natural join (t1 join t2 on t1.b=t2.b);
501
512
# this one is OK, the next equivalent one is incorrect (bug in Oracle)
 
513
--error ER_NON_UNIQ_ERROR
502
514
select * from (t3 join (t4 natural join t5) on (b < z))
503
515
              natural join
504
516
              (t1 natural join t2);
 
517
--error ER_NON_UNIQ_ERROR
505
518
select * from (t1 natural join t2) natural join (t3 join (t4 natural join t5) on (b < z));
506
519
 
507
520
drop table t1;
598
601
create table t3 (a int, b int, filler char(100), key(a), key(b));
599
602
 
600
603
insert into t2 
601
 
  select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C;
 
604
  select @a:= A.a + 10*(B.a + 10*C.a), @a, 'filler' from t1 A, t1 B, t1 C where B.a >= 0;
602
605
insert into t3 select * from t2 where a < 800;
603
606
 
604
607
# The order of tables must be t2,t3:
612
615
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
613
616
 
614
617
create table t2 (a int, b int, primary key(a));
615
 
insert into t2 select @v:=A.a+10*B.a, @v  from t1 A, t1 B;
 
618
insert into t2 select @v:=A.a+10*B.a, @v  from t1 A, t1 B where B.a >= 0;
616
619
 
617
620
explain select * from t1;
618
621
--replace_column 2 #