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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
eb009402
Commit
eb009402
authored
Sep 24, 2007
by
gkodinov/kgeorge@macbook.local
Browse files
Options
Browse Files
Download
Plain Diff
merge of bug 28701 5.0-opt -> 5.1-opt
parents
ed7e4b82
68e2efcc
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
2 deletions
+40
-2
mysql-test/r/view.result
mysql-test/r/view.result
+12
-1
mysql-test/t/view.test
mysql-test/t/view.test
+19
-1
sql/sql_view.cc
sql/sql_view.cc
+9
-0
No files found.
mysql-test/r/view.result
View file @
eb009402
...
...
@@ -625,7 +625,7 @@ drop table t1;
create table t1 (a int, b int);
create view v1 as select a, sum(b) from t1 group by a;
select b from v1 use index (some_index) where b=1;
ERROR 42000:
Key 'some_index' doesn't exist in table 'v1'
ERROR 42000:
Incorrect usage of USE INDEX and VIEW
drop view v1;
drop table t1;
create table t1 (col1 char(5),col2 char(5));
...
...
@@ -3559,6 +3559,17 @@ table_name is_updatable
v1 NO
drop view v1;
drop table t1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2);
CREATE VIEW v1 AS SELECT * FROM t1;
SELECT * FROM v1 USE KEY(non_existant);
ERROR HY000: Incorrect usage of USE INDEX and VIEW
SELECT * FROM v1 FORCE KEY(non_existant);
ERROR HY000: Incorrect usage of FORCE INDEX and VIEW
SELECT * FROM v1 IGNORE KEY(non_existant);
ERROR HY000: Incorrect usage of IGNORE INDEX and VIEW
DROP VIEW v1;
DROP TABLE t1;
End of 5.0 tests.
DROP DATABASE IF EXISTS `d-1`;
CREATE DATABASE `d-1`;
...
...
mysql-test/t/view.test
View file @
eb009402
...
...
@@ -510,7 +510,7 @@ drop table t1;
#
create
table
t1
(
a
int
,
b
int
);
create
view
v1
as
select
a
,
sum
(
b
)
from
t1
group
by
a
;
--
error
1176
--
error
ER_WRONG_USAGE
select
b
from
v1
use
index
(some_index) where b=1
;
drop
view
v1
;
drop
table
t1
;
...
...
@@ -3415,6 +3415,24 @@ select table_name, is_updatable from information_schema.views
drop
view
v1
;
drop
table
t1
;
#
# Bug #28701: SELECTs from VIEWs completely ignore USE/FORCE KEY, allowing
# invalid statements
#
CREATE
TABLE
t1
(
a
INT
);
INSERT
INTO
t1
VALUES
(
1
),(
2
);
CREATE
VIEW
v1
AS
SELECT
*
FROM
t1
;
--
error
ER_WRONG_USAGE
SELECT
*
FROM
v1
USE
KEY
(non_existant)
;
--
error
ER_WRONG_USAGE
SELECT
*
FROM
v1
FORCE
KEY
(
non_existant
);
--
error
ER_WRONG_USAGE
SELECT
*
FROM
v1
IGNORE
KEY
(
non_existant
);
DROP
VIEW
v1
;
DROP
TABLE
t1
;
--
echo
End
of
5.0
tests
.
#
...
...
sql/sql_view.cc
View file @
eb009402
...
...
@@ -953,6 +953,15 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table,
DBUG_RETURN
(
0
);
}
if
(
table
->
use_index
||
table
->
ignore_index
)
{
my_error
(
ER_WRONG_USAGE
,
MYF
(
0
),
table
->
ignore_index
?
"IGNORE INDEX"
:
(
table
->
force_index
?
"FORCE INDEX"
:
"USE INDEX"
),
"VIEW"
);
DBUG_RETURN
(
TRUE
);
}
/* check loop via view definition */
for
(
TABLE_LIST
*
precedent
=
table
->
referencing_view
;
precedent
;
...
...
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