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
4f42a474
Commit
4f42a474
authored
Nov 28, 2003
by
monty@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed range optimzier bug (Bug #1828)
parent
feb7857d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
2 deletions
+23
-2
mysql-test/r/range.result
mysql-test/r/range.result
+10
-0
mysql-test/t/range.test
mysql-test/t/range.test
+12
-1
sql/opt_range.cc
sql/opt_range.cc
+1
-1
No files found.
mysql-test/r/range.result
View file @
4f42a474
...
@@ -290,3 +290,13 @@ t1 range a,b a 5 NULL 2 Using where
...
@@ -290,3 +290,13 @@ t1 range a,b a 5 NULL 2 Using where
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
a b
a b
DROP TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (a int, b int, c int, INDEX (c,a,b));
INSERT INTO t1 VALUES (1,0,0),(1,0,0),(1,0,0);
INSERT INTO t1 VALUES (0,1,0),(0,1,0),(0,1,0);
SELECT COUNT(*) FROM t1 WHERE (c=0 and a=1) or (c=0 and b=1);
COUNT(*)
6
SELECT COUNT(*) FROM t1 WHERE (c=0 and b=1) or (c=0 and a=1);
COUNT(*)
6
DROP TABLE t1;
mysql-test/t/range.test
View file @
4f42a474
...
@@ -231,9 +231,20 @@ INSERT INTO t1 VALUES
...
@@ -231,9 +231,20 @@ INSERT INTO t1 VALUES
(
21
,
4
),(
22
,
5
),(
23
,
5
),(
24
,
5
),(
25
,
5
),(
26
,
5
),(
30
,
5
),(
31
,
5
),(
32
,
5
),(
33
,
5
),
(
21
,
4
),(
22
,
5
),(
23
,
5
),(
24
,
5
),(
25
,
5
),(
26
,
5
),(
30
,
5
),(
31
,
5
),(
32
,
5
),(
33
,
5
),
(
33
,
5
),(
33
,
5
),(
33
,
5
),(
33
,
5
),(
34
,
5
),(
35
,
5
);
(
33
,
5
),(
33
,
5
),(
33
,
5
),(
33
,
5
),(
34
,
5
),(
35
,
5
);
# we expect that optimizer will choose index on A
EXPLAIN
SELECT
*
FROM
t1
WHERE
a
IN
(
1
,
2
)
AND
b
=
5
;
EXPLAIN
SELECT
*
FROM
t1
WHERE
a
IN
(
1
,
2
)
AND
b
=
5
;
SELECT
*
FROM
t1
WHERE
a
IN
(
1
,
2
)
AND
b
=
5
;
SELECT
*
FROM
t1
WHERE
a
IN
(
1
,
2
)
AND
b
=
5
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
# we expect that optimizer will choose index on A
#
# Test error with
#
CREATE
TABLE
t1
(
a
int
,
b
int
,
c
int
,
INDEX
(
c
,
a
,
b
));
INSERT
INTO
t1
VALUES
(
1
,
0
,
0
),(
1
,
0
,
0
),(
1
,
0
,
0
);
INSERT
INTO
t1
VALUES
(
0
,
1
,
0
),(
0
,
1
,
0
),(
0
,
1
,
0
);
# -- First reports 3; second reports 6
SELECT
COUNT
(
*
)
FROM
t1
WHERE
(
c
=
0
and
a
=
1
)
or
(
c
=
0
and
b
=
1
);
SELECT
COUNT
(
*
)
FROM
t1
WHERE
(
c
=
0
and
b
=
1
)
or
(
c
=
0
and
a
=
1
);
DROP
TABLE
t1
;
sql/opt_range.cc
View file @
4f42a474
...
@@ -70,7 +70,7 @@ public:
...
@@ -70,7 +70,7 @@ public:
{}
{}
inline
bool
is_same
(
SEL_ARG
*
arg
)
inline
bool
is_same
(
SEL_ARG
*
arg
)
{
{
if
(
type
!=
arg
->
type
)
if
(
type
!=
arg
->
type
||
part
!=
arg
->
part
)
return
0
;
return
0
;
if
(
type
!=
KEY_RANGE
)
if
(
type
!=
KEY_RANGE
)
return
1
;
return
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