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
fd5461ac
Commit
fd5461ac
authored
19 years ago
by
igor@rurik.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
parents
c726451a
5ac7d867
Branches unavailable
Tags unavailable
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
26 additions
and
5 deletions
+26
-5
mysql-test/r/view.result
mysql-test/r/view.result
+7
-1
mysql-test/t/view.test
mysql-test/t/view.test
+13
-0
sql/share/errmsg.txt
sql/share/errmsg.txt
+1
-1
sql/sql_view.cc
sql/sql_view.cc
+5
-3
No files found.
mysql-test/r/view.result
View file @
fd5461ac
...
...
@@ -6,7 +6,7 @@ create view v1 (c,d) as select a,b from t1;
ERROR 42S02: Table 'test.t1' doesn't exist
create temporary table t1 (a int, b int);
create view v1 (c) as select b+1 from t1;
ERROR HY000: View's SELECT
contains
a temporary table 't1'
ERROR HY000: View's SELECT
refers to
a temporary table 't1'
drop table t1;
create table t1 (a int, b int);
insert into t1 values (1,2), (1,3), (2,4), (2,5), (3,10);
...
...
@@ -2097,3 +2097,9 @@ select * from v1;
f1
1
drop view v1;
CREATE TEMPORARY TABLE t1 (a int);
CREATE FUNCTION f1 () RETURNS int RETURN (SELECT COUNT(*) FROM t1);
CREATE VIEW v1 AS SELECT f1();
ERROR HY000: View's SELECT refers to a temporary table 't1'
DROP FUNCTION f1;
DROP TABLE t1;
This diff is collapsed.
Click to expand it.
mysql-test/t/view.test
View file @
fd5461ac
...
...
@@ -1942,3 +1942,16 @@ DROP TABLE t1,t2,t3,t4,t5;
create
view
v1
as
select
timestampdiff
(
day
,
'1997-01-01 00:00:00'
,
'1997-01-02 00:00:00'
)
as
f1
;
select
*
from
v1
;
drop
view
v1
;
#
# Test for bug #10970: view referring a temporary table indirectly
#
CREATE
TEMPORARY
TABLE
t1
(
a
int
);
CREATE
FUNCTION
f1
()
RETURNS
int
RETURN
(
SELECT
COUNT
(
*
)
FROM
t1
);
--
error
1352
CREATE
VIEW
v1
AS
SELECT
f1
();
DROP
FUNCTION
f1
;
DROP
TABLE
t1
;
This diff is collapsed.
Click to expand it.
sql/share/errmsg.txt
View file @
fd5461ac
...
...
@@ -5194,7 +5194,7 @@ ER_VIEW_SELECT_VARIABLE
rus "View SELECT "
ukr "View SELECT "
ER_VIEW_SELECT_TMPTABLE
eng "View's SELECT
contains
a temporary table '%-.64s'"
eng "View's SELECT
refers to
a temporary table '%-.64s'"
rus "View SELECT '%-.64s'"
ukr "View SELECT դ '%-.64s'"
ER_VIEW_WRONG_LIST
...
...
This diff is collapsed.
Click to expand it.
sql/sql_view.cc
View file @
fd5461ac
...
...
@@ -306,9 +306,11 @@ bool mysql_create_view(THD *thd,
/*
check that tables are not temporary and this VIEW do not used in query
(it is possible with ALTERing VIEW)
*/
for
(
tbl
=
tables
;
tbl
;
tbl
=
tbl
->
next_global
)
(it is possible with ALTERing VIEW).
open_and_lock_tables can change the value of tables,
e.g. it may happen if before the function call tables was equal to 0.
*/
for
(
tbl
=
tables
=
lex
->
query_tables
;
tbl
;
tbl
=
tbl
->
next_global
)
{
/* is this table temporary and is not view? */
if
(
tbl
->
table
->
s
->
tmp_table
!=
NO_TMP_TABLE
&&
!
tbl
->
view
&&
...
...
This diff is collapsed.
Click to expand it.
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