Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
ec4910c4
Commit
ec4910c4
authored
Mar 24, 2006
by
igor@rurik.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge rurik.mysql.com:/home/igor/mysql-5.1
into rurik.mysql.com:/home/igor/dev/mysql-5.1-0
parents
676580c2
69eb4e69
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
46 additions
and
4 deletions
+46
-4
mysql-test/r/join_outer.result
mysql-test/r/join_outer.result
+19
-0
mysql-test/t/join_outer.test
mysql-test/t/join_outer.test
+20
-0
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+7
-4
No files found.
mysql-test/r/join_outer.result
View file @
ec4910c4
...
...
@@ -1135,3 +1135,22 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
DROP TABLE t1,t2;
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
INDEX (name)) ENGINE=InnoDB;
CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
EXPLAIN
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
WHERE t1.name LIKE 'A%' OR FALSE;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
DROP TABLE t1,t2;
mysql-test/t/join_outer.test
View file @
ec4910c4
...
...
@@ -759,3 +759,23 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b
DROP
TABLE
t1
,
t2
;
#
# Test for bug #17164: ORed FALSE blocked conversion of outer join into join
#
CREATE
TABLE
t1
(
id
int
(
11
)
NOT
NULL
PRIMARY
KEY
,
name
varchar
(
20
),
INDEX
(
name
))
ENGINE
=
InnoDB
;
CREATE
TABLE
t2
(
id
int
(
11
)
NOT
NULL
PRIMARY
KEY
,
fkey
int
(
11
),
FOREIGN
KEY
(
fkey
)
REFERENCES
t2
(
id
))
ENGINE
=
InnoDB
;
INSERT
INTO
t1
VALUES
(
1
,
'A1'
),(
2
,
'A2'
),(
3
,
'B'
);
INSERT
INTO
t2
VALUES
(
1
,
1
),(
2
,
2
),(
3
,
2
),(
4
,
3
),(
5
,
3
);
EXPLAIN
SELECT
COUNT
(
*
)
FROM
t2
LEFT
JOIN
t1
ON
t2
.
fkey
=
t1
.
id
WHERE
t1
.
name
LIKE
'A%'
;
EXPLAIN
SELECT
COUNT
(
*
)
FROM
t2
LEFT
JOIN
t1
ON
t2
.
fkey
=
t1
.
id
WHERE
t1
.
name
LIKE
'A%'
OR
FALSE
;
DROP
TABLE
t1
,
t2
;
sql/item_cmpfunc.cc
View file @
ec4910c4
...
...
@@ -2563,10 +2563,13 @@ Item_cond::fix_fields(THD *thd, Item **ref)
(
item
=
*
li
.
ref
())
->
check_cols
(
1
))
return
TRUE
;
/* purecov: inspected */
used_tables_cache
|=
item
->
used_tables
();
if
(
!
item
->
const_item
())
{
tmp_table_map
=
item
->
not_null_tables
();
not_null_tables_cache
|=
tmp_table_map
;
and_tables_cache
&=
tmp_table_map
;
const_item_cache
&=
item
->
const_item
();
const_item_cache
=
FALSE
;
}
with_sum_func
=
with_sum_func
||
item
->
with_sum_func
;
if
(
item
->
maybe_null
)
maybe_null
=
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment