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
84ad2036
Commit
84ad2036
authored
Nov 04, 2005
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
75f09a98
f878cc58
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
59 additions
and
10 deletions
+59
-10
mysql-test/r/view.result
mysql-test/r/view.result
+19
-0
mysql-test/t/view.test
mysql-test/t/view.test
+14
-0
sql/handler.h
sql/handler.h
+1
-0
sql/share/errmsg.txt
sql/share/errmsg.txt
+2
-0
sql/sql_table.cc
sql/sql_table.cc
+23
-10
No files found.
mysql-test/r/view.result
View file @
84ad2036
...
...
@@ -2335,3 +2335,22 @@ f1 group_concat(f2 order by f2 desc)
1 3,2,1
drop view v1,v2;
drop table t1;
CREATE TABLE t1(id INT);
CREATE VIEW v1 AS SELECT id FROM t1;
OPTIMIZE TABLE v1;
Table Op Msg_type Msg_text
test.v1 optimize note You cannot apply optimize to a view
ANALYZE TABLE v1;
Table Op Msg_type Msg_text
test.v1 analyze note You cannot apply analyze to a view
REPAIR TABLE v1;
Table Op Msg_type Msg_text
test.v1 repair note You cannot apply repair to a view
DROP TABLE t1;
OPTIMIZE TABLE v1;
Table Op Msg_type Msg_text
test.v1 optimize note You cannot apply optimize to a view
Warnings:
Error 1146 Table 'test.t1' doesn't exist
Error 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
DROP VIEW v1;
mysql-test/t/view.test
View file @
84ad2036
...
...
@@ -2200,3 +2200,17 @@ select * from v1;
select
*
from
v2
;
drop
view
v1
,
v2
;
drop
table
t1
;
# Bug #14540: OPTIMIZE, ANALYZE, REPAIR applied to not a view
#
CREATE
TABLE
t1
(
id
INT
);
CREATE
VIEW
v1
AS
SELECT
id
FROM
t1
;
OPTIMIZE
TABLE
v1
;
ANALYZE
TABLE
v1
;
REPAIR
TABLE
v1
;
DROP
TABLE
t1
;
OPTIMIZE
TABLE
v1
;
DROP
VIEW
v1
;
sql/handler.h
View file @
84ad2036
...
...
@@ -45,6 +45,7 @@
#define HA_ADMIN_REJECT -6
#define HA_ADMIN_TRY_ALTER -7
#define HA_ADMIN_WRONG_CHECKSUM -8
#define HA_ADMIN_NOT_BASE_TABLE -9
/* Bits in table_flags() to show what database can do */
...
...
sql/share/errmsg.txt
View file @
84ad2036
...
...
@@ -5421,3 +5421,5 @@ ER_NO_REFERENCED_ROW_2 23000
eng "Cannot add or update a child row: a foreign key constraint fails (%.192s)"
ER_SP_BAD_VAR_SHADOW 42000
eng "Variable '%-.64s' must be quoted with `...`, or renamed"
ER_CHECK_NOT_BASE_TABLE 42000
eng "You cannot apply %s to a view"
sql/sql_table.cc
View file @
84ad2036
...
...
@@ -2196,7 +2196,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
/* if view are unsupported */
if
(
table
->
view
&&
view_operator_func
==
NULL
)
{
result_code
=
HA_ADMIN_NOT_
IMPLEMENTED
;
result_code
=
HA_ADMIN_NOT_
BASE_TABLE
;
goto
send_result
;
}
thd
->
open_options
&=
~
extra_open_options
;
...
...
@@ -2331,6 +2331,16 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
}
break
;
case
HA_ADMIN_NOT_BASE_TABLE
:
{
char
buf
[
ERRMSGSIZE
+
20
];
uint
length
=
my_snprintf
(
buf
,
ERRMSGSIZE
,
ER
(
ER_CHECK_NOT_BASE_TABLE
),
operator_name
);
protocol
->
store
(
"note"
,
4
,
system_charset_info
);
protocol
->
store
(
buf
,
length
,
system_charset_info
);
}
break
;
case
HA_ADMIN_OK
:
protocol
->
store
(
"status"
,
6
,
system_charset_info
);
protocol
->
store
(
"OK"
,
2
,
system_charset_info
);
...
...
@@ -2431,16 +2441,19 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
break
;
}
}
if
(
fatal_error
)
table
->
table
->
s
->
version
=
0
;
// Force close of table
else
if
(
open_for_modify
)
if
(
table
->
table
)
{
pthread_mutex_lock
(
&
LOCK_open
);
remove_table_from_cache
(
thd
,
table
->
table
->
s
->
db
,
table
->
table
->
s
->
table_name
,
RTFC_NO_FLAG
);
pthread_mutex_unlock
(
&
LOCK_open
);
/* May be something modified consequently we have to invalidate cache */
query_cache_invalidate3
(
thd
,
table
->
table
,
0
);
if
(
fatal_error
)
table
->
table
->
s
->
version
=
0
;
// Force close of table
else
if
(
open_for_modify
)
{
pthread_mutex_lock
(
&
LOCK_open
);
remove_table_from_cache
(
thd
,
table
->
table
->
s
->
db
,
table
->
table
->
s
->
table_name
,
RTFC_NO_FLAG
);
pthread_mutex_unlock
(
&
LOCK_open
);
/* Something may be modified, that's why we have to invalidate cache */
query_cache_invalidate3
(
thd
,
table
->
table
,
0
);
}
}
close_thread_tables
(
thd
);
table
->
table
=
0
;
// For query cache
...
...
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