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
109d58af
Commit
109d58af
authored
Aug 27, 2006
by
evgen@moonbone.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
parents
679d1e27
13f50fdb
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
100 additions
and
6 deletions
+100
-6
mysql-test/r/innodb_mysql.result
mysql-test/r/innodb_mysql.result
+21
-0
mysql-test/r/subselect.result
mysql-test/r/subselect.result
+22
-0
mysql-test/t/innodb_mysql.test
mysql-test/t/innodb_mysql.test
+27
-0
mysql-test/t/subselect.test
mysql-test/t/subselect.test
+24
-0
sql/item_subselect.cc
sql/item_subselect.cc
+5
-5
sql/opt_range.h
sql/opt_range.h
+1
-1
No files found.
mysql-test/r/innodb_mysql.result
View file @
109d58af
...
...
@@ -83,3 +83,24 @@ b a
3 3
3 3
DROP TABLE t1, t2, t3;
CREATE TABLE `t1` (`id1` INT) ;
INSERT INTO `t1` (`id1`) VALUES (1),(5),(2);
CREATE TABLE `t2` (
`id1` INT,
`id2` INT NOT NULL,
`id3` INT,
`id4` INT NOT NULL,
UNIQUE (`id2`,`id4`),
KEY (`id1`)
) ENGINE=InnoDB;
INSERT INTO `t2`(`id1`,`id2`,`id3`,`id4`) VALUES
(1,1,1,0),
(1,1,2,1),
(5,1,2,2),
(6,1,2,3),
(1,2,2,2),
(1,2,1,1);
SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` = 1 AND `id3` = 2);
id1
2
DROP TABLE t1, t2;
mysql-test/r/subselect.result
View file @
109d58af
...
...
@@ -2895,3 +2895,25 @@ select * from t1 where NOT(s1 = ALL (select s1/s1 from t1));
s1
2
drop table t1;
create table t1 (
retailerID varchar(8) NOT NULL,
statusID int(10) unsigned NOT NULL,
changed datetime NOT NULL,
UNIQUE KEY retailerID (retailerID, statusID, changed)
);
INSERT INTO t1 VALUES("0026", "1", "2005-12-06 12:18:56");
INSERT INTO t1 VALUES("0026", "2", "2006-01-06 12:25:53");
INSERT INTO t1 VALUES("0037", "1", "2005-12-06 12:18:56");
INSERT INTO t1 VALUES("0037", "2", "2006-01-06 12:25:53");
INSERT INTO t1 VALUES("0048", "1", "2006-01-06 12:37:50");
INSERT INTO t1 VALUES("0059", "1", "2006-01-06 12:37:50");
select * from t1 r1
where (r1.retailerID,(r1.changed)) in
(SELECT r2.retailerId,(max(changed)) from t1 r2
group by r2.retailerId);
retailerID statusID changed
0026 2 2006-01-06 12:25:53
0037 2 2006-01-06 12:25:53
0048 1 2006-01-06 12:37:50
0059 1 2006-01-06 12:37:50
drop table t1;
mysql-test/t/innodb_mysql.test
View file @
109d58af
...
...
@@ -90,3 +90,30 @@ SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE
t3
.
a
=
t2
.
a
AND
t2
.
b
=
t1
.
a
AND
t3
.
b
=
1
AND
t3
.
c
IN
(
1
,
2
)
ORDER
BY
t1
.
b
LIMIT
5
;
DROP
TABLE
t1
,
t2
,
t3
;
# BUG#21077 (The testcase is not deterministic so correct execution doesn't
# prove anything) For proof one should track if sequence of ha_innodb::* func
# calls is correct.
CREATE
TABLE
`t1`
(
`id1`
INT
)
;
INSERT
INTO
`t1`
(
`id1`
)
VALUES
(
1
),(
5
),(
2
);
CREATE
TABLE
`t2`
(
`id1`
INT
,
`id2`
INT
NOT
NULL
,
`id3`
INT
,
`id4`
INT
NOT
NULL
,
UNIQUE
(
`id2`
,
`id4`
),
KEY
(
`id1`
)
)
ENGINE
=
InnoDB
;
INSERT
INTO
`t2`
(
`id1`
,
`id2`
,
`id3`
,
`id4`
)
VALUES
(
1
,
1
,
1
,
0
),
(
1
,
1
,
2
,
1
),
(
5
,
1
,
2
,
2
),
(
6
,
1
,
2
,
3
),
(
1
,
2
,
2
,
2
),
(
1
,
2
,
1
,
1
);
SELECT
`id1`
FROM
`t1`
WHERE
`id1`
NOT
IN
(
SELECT
`id1`
FROM
`t2`
WHERE
`id2`
=
1
AND
`id3`
=
2
);
DROP
TABLE
t1
,
t2
;
mysql-test/t/subselect.test
View file @
109d58af
...
...
@@ -1861,4 +1861,28 @@ select * from t1 where NOT(s1+1 = ANY (select s1 from t1));
select
*
from
t1
where
(
s1
=
ALL
(
select
s1
/
s1
from
t1
));
select
*
from
t1
where
NOT
(
s1
=
ALL
(
select
s1
/
s1
from
t1
));
drop
table
t1
;
#
# Bug #16255: Subquery in where
#
create
table
t1
(
retailerID
varchar
(
8
)
NOT
NULL
,
statusID
int
(
10
)
unsigned
NOT
NULL
,
changed
datetime
NOT
NULL
,
UNIQUE
KEY
retailerID
(
retailerID
,
statusID
,
changed
)
);
INSERT
INTO
t1
VALUES
(
"0026"
,
"1"
,
"2005-12-06 12:18:56"
);
INSERT
INTO
t1
VALUES
(
"0026"
,
"2"
,
"2006-01-06 12:25:53"
);
INSERT
INTO
t1
VALUES
(
"0037"
,
"1"
,
"2005-12-06 12:18:56"
);
INSERT
INTO
t1
VALUES
(
"0037"
,
"2"
,
"2006-01-06 12:25:53"
);
INSERT
INTO
t1
VALUES
(
"0048"
,
"1"
,
"2006-01-06 12:37:50"
);
INSERT
INTO
t1
VALUES
(
"0059"
,
"1"
,
"2006-01-06 12:37:50"
);
select
*
from
t1
r1
where
(
r1
.
retailerID
,(
r1
.
changed
))
in
(
SELECT
r2
.
retailerId
,(
max
(
changed
))
from
t1
r2
group
by
r2
.
retailerId
);
drop
table
t1
;
# End of 4.1 tests
sql/item_subselect.cc
View file @
109d58af
...
...
@@ -976,18 +976,18 @@ Item_in_subselect::row_value_transformer(JOIN *join)
DBUG_RETURN
(
RES_ERROR
);
Item
*
item_eq
=
new
Item_func_eq
(
new
Item_
direct_
ref
((
*
optimizer
->
get_cache
())
->
Item_ref
((
*
optimizer
->
get_cache
())
->
addr
(
i
),
(
char
*
)
"<no matter>"
,
(
char
*
)
in_left_expr_name
),
new
Item_
direct_
ref
(
select_lex
->
ref_pointer_array
+
i
,
Item_ref
(
select_lex
->
ref_pointer_array
+
i
,
(
char
*
)
"<no matter>"
,
(
char
*
)
"<list ref>"
)
);
Item
*
item_isnull
=
new
Item_func_isnull
(
new
Item_
direct_
ref
(
select_lex
->
Item_ref
(
select_lex
->
ref_pointer_array
+
i
,
(
char
*
)
"<no matter>"
,
(
char
*
)
"<list ref>"
)
...
...
@@ -1000,7 +1000,7 @@ Item_in_subselect::row_value_transformer(JOIN *join)
new
Item_is_not_null_test
(
this
,
new
Item_
direct_
ref
(
select_lex
->
Item_ref
(
select_lex
->
ref_pointer_array
+
i
,
(
char
*
)
"<no matter>"
,
(
char
*
)
"<list ref>"
)
...
...
@@ -1057,7 +1057,7 @@ Item_in_subselect::row_value_transformer(JOIN *join)
new
Item_is_not_null_test
(
this
,
new
Item_
direct_
ref
(
select_lex
->
Item_ref
(
select_lex
->
ref_pointer_array
+
i
,
(
char
*
)
"<no matter>"
,
(
char
*
)
"<list ref>"
)
...
...
sql/opt_range.h
View file @
109d58af
...
...
@@ -86,7 +86,7 @@ public:
QUICK_SELECT
(
THD
*
thd
,
TABLE
*
table
,
uint
index_arg
,
bool
no_alloc
=
0
);
virtual
~
QUICK_SELECT
();
void
reset
(
void
)
{
next
=
0
;
it
.
rewind
();
}
void
reset
(
void
)
{
next
=
0
;
it
.
rewind
();
range
=
NULL
;
}
int
init
()
{
key_part_info
=
head
->
key_info
[
index
].
key_part
;
...
...
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