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
ce766f2c
Commit
ce766f2c
authored
May 06, 2006
by
sergefp@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/psergey/mysql-5.0-bug16798-merge
parents
f6c95ee8
8f8fa583
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
113 additions
and
3 deletions
+113
-3
mysql-test/r/innodb_mysql.result
mysql-test/r/innodb_mysql.result
+56
-1
mysql-test/t/innodb_mysql.test
mysql-test/t/innodb_mysql.test
+55
-1
sql/sql_select.cc
sql/sql_select.cc
+2
-1
No files found.
mysql-test/r/innodb_mysql.result
View file @
ce766f2c
drop table if exists t1;
drop table if exists t1,t2;
create table t1 (
c_id int(11) not null default '0',
org_id int(11) default null,
unique key contacts$c_id (c_id),
key contacts$org_id (org_id)
) engine=innodb;
insert into t1 values
(2,null),(120,null),(141,null),(218,7), (128,1),
(151,2),(234,2),(236,2),(243,2),(255,2),(259,2),(232,3),(235,3),(238,3),
(246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4);
create table t2 (
slai_id int(11) not null default '0',
owner_tbl int(11) default null,
owner_id int(11) default null,
sla_id int(11) default null,
inc_web int(11) default null,
inc_email int(11) default null,
inc_chat int(11) default null,
inc_csr int(11) default null,
inc_total int(11) default null,
time_billed int(11) default null,
activedate timestamp null default null,
expiredate timestamp null default null,
state int(11) default null,
sla_set int(11) default null,
unique key t2$slai_id (slai_id),
key t2$owner_id (owner_id),
key t2$sla_id (sla_id)
) engine=innodb;
insert into t2(slai_id, owner_tbl, owner_id, sla_id) values
(1,3,1,1), (3,3,10,2), (4,3,3,6), (5,3,2,5), (6,3,8,3), (7,3,9,7),
(8,3,6,8), (9,3,4,9), (10,3,5,10), (11,3,11,11), (12,3,7,12);
flush tables;
select si.slai_id
from t1 c join t2 si on
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
( si.owner_tbl = 2 and si.owner_id = c.c_id))
where
c.c_id = 218 and expiredate is null;
slai_id
12
select * from t1 where org_id is null;
c_id org_id
2 NULL
120 NULL
141 NULL
select si.slai_id
from t1 c join t2 si on
((si.owner_tbl = 3 and si.owner_id = c.org_id) or
( si.owner_tbl = 2 and si.owner_id = c.c_id))
where
c.c_id = 218 and expiredate is null;
slai_id
12
drop table t1, t2;
mysql-test/t/innodb_mysql.test
View file @
ce766f2c
--
source
include
/
have_innodb
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
drop
table
if
exists
t1
,
t2
;
--
enable_warnings
# BUG#16798: Uninitialized row buffer reads in ref-or-null optimizer
# (repeatable only w/innodb).
create
table
t1
(
c_id
int
(
11
)
not
null
default
'0'
,
org_id
int
(
11
)
default
null
,
unique
key
contacts
$c_id
(
c_id
),
key
contacts
$org_id
(
org_id
)
)
engine
=
innodb
;
insert
into
t1
values
(
2
,
null
),(
120
,
null
),(
141
,
null
),(
218
,
7
),
(
128
,
1
),
(
151
,
2
),(
234
,
2
),(
236
,
2
),(
243
,
2
),(
255
,
2
),(
259
,
2
),(
232
,
3
),(
235
,
3
),(
238
,
3
),
(
246
,
3
),(
253
,
3
),(
269
,
3
),(
285
,
3
),(
291
,
3
),(
293
,
3
),(
131
,
4
),(
230
,
4
),(
231
,
4
);
create
table
t2
(
slai_id
int
(
11
)
not
null
default
'0'
,
owner_tbl
int
(
11
)
default
null
,
owner_id
int
(
11
)
default
null
,
sla_id
int
(
11
)
default
null
,
inc_web
int
(
11
)
default
null
,
inc_email
int
(
11
)
default
null
,
inc_chat
int
(
11
)
default
null
,
inc_csr
int
(
11
)
default
null
,
inc_total
int
(
11
)
default
null
,
time_billed
int
(
11
)
default
null
,
activedate
timestamp
null
default
null
,
expiredate
timestamp
null
default
null
,
state
int
(
11
)
default
null
,
sla_set
int
(
11
)
default
null
,
unique
key
t2
$slai_id
(
slai_id
),
key
t2
$owner_id
(
owner_id
),
key
t2
$sla_id
(
sla_id
)
)
engine
=
innodb
;
insert
into
t2
(
slai_id
,
owner_tbl
,
owner_id
,
sla_id
)
values
(
1
,
3
,
1
,
1
),
(
3
,
3
,
10
,
2
),
(
4
,
3
,
3
,
6
),
(
5
,
3
,
2
,
5
),
(
6
,
3
,
8
,
3
),
(
7
,
3
,
9
,
7
),
(
8
,
3
,
6
,
8
),
(
9
,
3
,
4
,
9
),
(
10
,
3
,
5
,
10
),
(
11
,
3
,
11
,
11
),
(
12
,
3
,
7
,
12
);
flush
tables
;
select
si
.
slai_id
from
t1
c
join
t2
si
on
((
si
.
owner_tbl
=
3
and
si
.
owner_id
=
c
.
org_id
)
or
(
si
.
owner_tbl
=
2
and
si
.
owner_id
=
c
.
c_id
))
where
c
.
c_id
=
218
and
expiredate
is
null
;
select
*
from
t1
where
org_id
is
null
;
select
si
.
slai_id
from
t1
c
join
t2
si
on
((
si
.
owner_tbl
=
3
and
si
.
owner_id
=
c
.
org_id
)
or
(
si
.
owner_tbl
=
2
and
si
.
owner_id
=
c
.
c_id
))
where
c
.
c_id
=
218
and
expiredate
is
null
;
drop
table
t1
,
t2
;
sql/sql_select.cc
View file @
ce766f2c
...
...
@@ -2407,7 +2407,8 @@ merge_key_fields(KEY_FIELD *start,KEY_FIELD *new_fields,KEY_FIELD *end,
new_fields
->
null_rejecting
);
}
else
if
(
old
->
eq_func
&&
new_fields
->
eq_func
&&
(
old
->
val
->
is_null
()
||
new_fields
->
val
->
is_null
()))
((
!
old
->
val
->
used_tables
()
&&
old
->
val
->
is_null
())
||
new_fields
->
val
->
is_null
()))
{
/* field = expression OR field IS NULL */
old
->
level
=
and_level
;
...
...
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