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
63d198af
Commit
63d198af
authored
Aug 01, 2006
by
gkodinov/kgeorge@rakia.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into rakia.(none):/home/kgeorge/mysql/autopush/B11551-5.0-opt
parents
6806776e
a5e56e89
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
79 additions
and
14 deletions
+79
-14
mysql-test/r/view.result
mysql-test/r/view.result
+20
-1
mysql-test/t/view.test
mysql-test/t/view.test
+21
-0
sql/sql_view.cc
sql/sql_view.cc
+38
-13
No files found.
mysql-test/r/view.result
View file @
63d198af
...
...
@@ -193,7 +193,7 @@ c d
2 5
3 10
drop view v100;
ERROR 42S02: Unknown table '
test.
v100'
ERROR 42S02: Unknown table 'v100'
drop view t1;
ERROR HY000: 'test.t1' is not VIEW
drop table v1;
...
...
@@ -2831,3 +2831,22 @@ b
c
DROP VIEW v1, v2;
DROP TABLE t1;
CREATE TABLE t1 (id INT);
CREATE VIEW v1 AS SELECT id FROM t1;
SHOW TABLES;
Tables_in_test
t1
v1
DROP VIEW v2,v1;
ERROR 42S02: Unknown table 'v2'
SHOW TABLES;
Tables_in_test
t1
CREATE VIEW v1 AS SELECT id FROM t1;
DROP VIEW t1,v1;
ERROR HY000: 'test.t1' is not VIEW
SHOW TABLES;
Tables_in_test
t1
DROP TABLE t1;
DROP VIEW IF EXISTS v1;
mysql-test/t/view.test
View file @
63d198af
...
...
@@ -2697,3 +2697,24 @@ INSERT INTO v2 (col) VALUES ('c');
SELECT
s1
FROM
t1
;
DROP
VIEW
v1
,
v2
;
DROP
TABLE
t1
;
#
# Bug #11551: Asymmetric + undocumented behaviour of DROP VIEW and DROP TABLE
#
CREATE
TABLE
t1
(
id
INT
);
CREATE
VIEW
v1
AS
SELECT
id
FROM
t1
;
SHOW
TABLES
;
--
error
1051
DROP
VIEW
v2
,
v1
;
SHOW
TABLES
;
CREATE
VIEW
v1
AS
SELECT
id
FROM
t1
;
--
error
1347
DROP
VIEW
t1
,
v1
;
SHOW
TABLES
;
DROP
TABLE
t1
;
--
disable_warnings
DROP
VIEW
IF
EXISTS
v1
;
--
enable_warnings
sql/sql_view.cc
View file @
63d198af
...
...
@@ -1282,8 +1282,11 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode)
DBUG_ENTER
(
"mysql_drop_view"
);
char
path
[
FN_REFLEN
];
TABLE_LIST
*
view
;
bool
type
=
0
;
frm_type_enum
type
;
db_type
not_used
;
String
non_existant_views
;
char
*
wrong_object_db
=
NULL
,
*
wrong_object_name
=
NULL
;
bool
error
=
FALSE
;
for
(
view
=
views
;
view
;
view
=
view
->
next_local
)
{
...
...
@@ -1291,8 +1294,9 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode)
view
->
table_name
,
reg_ext
,
NullS
);
(
void
)
unpack_filename
(
path
,
path
);
VOID
(
pthread_mutex_lock
(
&
LOCK_open
));
type
=
FRMTYPE_ERROR
;
if
(
access
(
path
,
F_OK
)
||
(
type
=
(
mysql_frm_type
(
thd
,
path
,
&
not_used
)
!=
FRMTYPE_VIEW
)))
FRMTYPE_VIEW
!=
(
type
=
mysql_frm_type
(
thd
,
path
,
&
not_used
)))
{
char
name
[
FN_REFLEN
];
my_snprintf
(
name
,
sizeof
(
name
),
"%s.%s"
,
view
->
db
,
view
->
table_name
);
...
...
@@ -1304,25 +1308,46 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode)
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
continue
;
}
if
(
type
)
my_error
(
ER_WRONG_OBJECT
,
MYF
(
0
),
view
->
db
,
view
->
table_name
,
"VIEW"
);
if
(
type
==
FRMTYPE_TABLE
)
{
if
(
!
wrong_object_name
)
{
wrong_object_db
=
view
->
db
;
wrong_object_name
=
view
->
table_name
;
}
}
else
my_error
(
ER_BAD_TABLE_ERROR
,
MYF
(
0
),
name
);
goto
err
;
{
if
(
non_existant_views
.
length
())
non_existant_views
.
append
(
','
);
non_existant_views
.
append
(
String
(
view
->
table_name
,
system_charset_info
));
}
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
continue
;
}
if
(
my_delete
(
path
,
MYF
(
MY_WME
)))
goto
err
;
error
=
TRUE
;
query_cache_invalidate3
(
thd
,
view
,
0
);
sp_cache_invalidate
();
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
}
if
(
error
)
{
DBUG_RETURN
(
TRUE
);
}
if
(
wrong_object_name
)
{
my_error
(
ER_WRONG_OBJECT
,
MYF
(
0
),
wrong_object_db
,
wrong_object_name
,
"VIEW"
);
DBUG_RETURN
(
TRUE
);
}
if
(
non_existant_views
.
length
())
{
my_error
(
ER_BAD_TABLE_ERROR
,
MYF
(
0
),
non_existant_views
.
c_ptr
());
DBUG_RETURN
(
TRUE
);
}
send_ok
(
thd
);
DBUG_RETURN
(
FALSE
);
err:
VOID
(
pthread_mutex_unlock
(
&
LOCK_open
));
DBUG_RETURN
(
TRUE
);
}
...
...
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