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
49df84ad
Commit
49df84ad
authored
Mar 27, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
parents
427a471a
e4f9d235
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
50 additions
and
6 deletions
+50
-6
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
netware/BUILD/compile-netware-START
netware/BUILD/compile-netware-START
+1
-1
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+7
-4
sql/sql_table.cc
sql/sql_table.cc
+3
-1
No files found.
mysql-test/r/join_outer.result
View file @
49df84ad
...
@@ -1135,3 +1135,22 @@ id select_type table type possible_keys key key_len ref rows Extra
...
@@ -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 t2 ALL PRIMARY NULL NULL NULL 4 Using where
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
DROP TABLE t1,t2;
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 @
49df84ad
...
@@ -759,3 +759,23 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b
...
@@ -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
;
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
;
netware/BUILD/compile-netware-START
View file @
49df84ad
...
@@ -24,5 +24,5 @@ base_configs=" \
...
@@ -24,5 +24,5 @@ base_configs=" \
--prefix=N:/mysql
\
--prefix=N:/mysql
\
--without-mysqlmanager
\
--without-mysqlmanager
\
--without-man
\
--without-man
\
--without-csv-storage-engine
\
"
"
sql/item_cmpfunc.cc
View file @
49df84ad
...
@@ -2563,10 +2563,13 @@ Item_cond::fix_fields(THD *thd, Item **ref)
...
@@ -2563,10 +2563,13 @@ Item_cond::fix_fields(THD *thd, Item **ref)
(
item
=
*
li
.
ref
())
->
check_cols
(
1
))
(
item
=
*
li
.
ref
())
->
check_cols
(
1
))
return
TRUE
;
/* purecov: inspected */
return
TRUE
;
/* purecov: inspected */
used_tables_cache
|=
item
->
used_tables
();
used_tables_cache
|=
item
->
used_tables
();
tmp_table_map
=
item
->
not_null_tables
();
if
(
!
item
->
const_item
())
not_null_tables_cache
|=
tmp_table_map
;
{
and_tables_cache
&=
tmp_table_map
;
tmp_table_map
=
item
->
not_null_tables
();
const_item_cache
&=
item
->
const_item
();
not_null_tables_cache
|=
tmp_table_map
;
and_tables_cache
&=
tmp_table_map
;
const_item_cache
=
FALSE
;
}
with_sum_func
=
with_sum_func
||
item
->
with_sum_func
;
with_sum_func
=
with_sum_func
||
item
->
with_sum_func
;
if
(
item
->
maybe_null
)
if
(
item
->
maybe_null
)
maybe_null
=
1
;
maybe_null
=
1
;
...
...
sql/sql_table.cc
View file @
49df84ad
...
@@ -3182,6 +3182,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -3182,6 +3182,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
uint
db_create_options
,
used_fields
;
uint
db_create_options
,
used_fields
;
enum
db_type
old_db_type
,
new_db_type
;
enum
db_type
old_db_type
,
new_db_type
;
bool
need_copy_table
;
bool
need_copy_table
;
bool
no_table_reopen
=
FALSE
;
DBUG_ENTER
(
"mysql_alter_table"
);
DBUG_ENTER
(
"mysql_alter_table"
);
thd
->
proc_info
=
"init"
;
thd
->
proc_info
=
"init"
;
...
@@ -3833,6 +3834,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -3833,6 +3834,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
*/
*/
close_cached_table
(
thd
,
table
);
close_cached_table
(
thd
,
table
);
table
=
0
;
// Marker that table is closed
table
=
0
;
// Marker that table is closed
no_table_reopen
=
TRUE
;
}
}
#if (!defined( __WIN__) && !defined( __EMX__) && !defined( OS2))
#if (!defined( __WIN__) && !defined( __EMX__) && !defined( OS2))
else
else
...
@@ -3871,7 +3873,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
...
@@ -3871,7 +3873,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
goto
err
;
goto
err
;
}
}
if
(
thd
->
lock
||
new_name
!=
table_name
)
// True if WIN32
if
(
thd
->
lock
||
new_name
!=
table_name
||
no_table_reopen
)
// True if WIN32
{
{
/*
/*
Not table locking or alter table with rename
Not table locking or alter table with rename
...
...
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