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
ee67c4c4
Commit
ee67c4c4
authored
Sep 29, 2006
by
evgen@moonbone.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into moonbone.local:/work/5505-bug-5.0-opt-mysql
parents
de5542a0
f6fbbf20
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
48 additions
and
24 deletions
+48
-24
mysql-test/r/view.result
mysql-test/r/view.result
+17
-10
mysql-test/t/view.test
mysql-test/t/view.test
+21
-10
sql/share/errmsg.txt
sql/share/errmsg.txt
+3
-0
sql/sql_base.cc
sql/sql_base.cc
+4
-1
sql/sql_insert.cc
sql/sql_insert.cc
+2
-2
sql/sql_view.cc
sql/sql_view.cc
+1
-1
No files found.
mysql-test/r/view.result
View file @
ee67c4c4
...
...
@@ -472,11 +472,11 @@ create view v3 (x,y,z) as select b, a, b from t1;
create view v4 (x,y,z) as select c+1, b, a from t1;
create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
insert into v3 values (-60,4,30);
ERROR HY000: The target table v3 of the INSERT is not
updatable
ERROR HY000: The target table v3 of the INSERT is not
insertable-into
insert into v4 values (-60,4,30);
ERROR HY000: The target table v4 of the INSERT is not
updatable
ERROR HY000: The target table v4 of the INSERT is not
insertable-into
insert into v5 values (-60,4,30);
ERROR HY000: The target table v5 of the INSERT is not
updatable
ERROR HY000: The target table v5 of the INSERT is not
insertable-into
insert into v1 values (-60,4,30);
insert into v1 (z,y,x) values (50,6,-100);
insert into v2 values (5,40);
...
...
@@ -499,11 +499,11 @@ create view v3 (x,y,z) as select b, a, b from t1;
create view v4 (x,y,z) as select c+1, b, a from t1;
create algorithm=temptable view v5 (x,y,z) as select c, b, a from t1;
insert into v3 select c, b, a from t2;
ERROR HY000: The target table v3 of the INSERT is not
updatable
ERROR HY000: The target table v3 of the INSERT is not
insertable-into
insert into v4 select c, b, a from t2;
ERROR HY000: The target table v4 of the INSERT is not
updatable
ERROR HY000: The target table v4 of the INSERT is not
insertable-into
insert into v5 select c, b, a from t2;
ERROR HY000: The target table v5 of the INSERT is not
updatable
ERROR HY000: The target table v5 of the INSERT is not
insertable-into
insert into v1 select c, b, a from t2;
insert into v1 (z,y,x) select a+20,b+2,-100 from t2;
insert into v2 select b+1, a+10 from t2;
...
...
@@ -1352,14 +1352,14 @@ drop table t1;
create table t1 (s1 smallint);
create view v1 as select * from t1 where 20 < (select (s1) from t1);
insert into v1 values (30);
ERROR HY000: The target table v1 of the INSERT is not
updatable
ERROR HY000: The target table v1 of the INSERT is not
insertable-into
create view v2 as select * from t1;
create view v3 as select * from t1 where 20 < (select (s1) from v2);
insert into v3 values (30);
ERROR HY000: The target table v3 of the INSERT is not
updatable
ERROR HY000: The target table v3 of the INSERT is not
insertable-into
create view v4 as select * from v2 where 20 < (select (s1) from t1);
insert into v4 values (30);
ERROR HY000: The target table v4 of the INSERT is not
updatable
ERROR HY000: The target table v4 of the INSERT is not
insertable-into
drop view v4, v3, v2, v1;
drop table t1;
create table t1 (a int);
...
...
@@ -2911,7 +2911,7 @@ INSERT INTO v2 VALUES (0);
RETURN 0;
END |
SELECT f2();
ERROR HY000: The target table v2 of the INSERT is not
updatable
ERROR HY000: The target table v2 of the INSERT is not
insertable-into
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP VIEW v1, v2;
...
...
@@ -2935,6 +2935,13 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 ALL NULL NULL NULL NULL 3
DROP VIEW v1;
DROP TABLE t1;
create table t1 (s1 int);
create view v1 as select s1 as a, s1 as b from t1;
insert into v1 values (1,1);
ERROR HY000: The target table v1 of the INSERT is not insertable-into
update v1 set a = 5;
drop view v1;
drop table t1;
CREATE TABLE t1(pk int PRIMARY KEY);
CREATE TABLE t2(pk int PRIMARY KEY, fk int, ver int, org int);
CREATE ALGORITHM=MERGE VIEW v1 AS
...
...
mysql-test/t/view.test
View file @
ee67c4c4
...
...
@@ -347,13 +347,13 @@ create view v3 (x,y,z) as select b, a, b from t1;
create
view
v4
(
x
,
y
,
z
)
as
select
c
+
1
,
b
,
a
from
t1
;
create
algorithm
=
temptable
view
v5
(
x
,
y
,
z
)
as
select
c
,
b
,
a
from
t1
;
# try insert to VIEW with fields duplicate
--
error
1
288
--
error
1
470
insert
into
v3
values
(
-
60
,
4
,
30
);
# try insert to VIEW with expression in SELECT list
--
error
1
288
--
error
1
470
insert
into
v4
values
(
-
60
,
4
,
30
);
# try insert to VIEW using temporary table algorithm
--
error
1
288
--
error
1
470
insert
into
v5
values
(
-
60
,
4
,
30
);
insert
into
v1
values
(
-
60
,
4
,
30
);
insert
into
v1
(
z
,
y
,
x
)
values
(
50
,
6
,
-
100
);
...
...
@@ -375,13 +375,13 @@ create view v3 (x,y,z) as select b, a, b from t1;
create
view
v4
(
x
,
y
,
z
)
as
select
c
+
1
,
b
,
a
from
t1
;
create
algorithm
=
temptable
view
v5
(
x
,
y
,
z
)
as
select
c
,
b
,
a
from
t1
;
# try insert to VIEW with fields duplicate
--
error
1
288
--
error
1
470
insert
into
v3
select
c
,
b
,
a
from
t2
;
# try insert to VIEW with expression in SELECT list
--
error
1
288
--
error
1
470
insert
into
v4
select
c
,
b
,
a
from
t2
;
# try insert to VIEW using temporary table algorithm
--
error
1
288
--
error
1
470
insert
into
v5
select
c
,
b
,
a
from
t2
;
insert
into
v1
select
c
,
b
,
a
from
t2
;
insert
into
v1
(
z
,
y
,
x
)
select
a
+
20
,
b
+
2
,
-
100
from
t2
;
...
...
@@ -1249,14 +1249,14 @@ drop table t1;
#
create
table
t1
(
s1
smallint
);
create
view
v1
as
select
*
from
t1
where
20
<
(
select
(
s1
)
from
t1
);
--
error
1
288
--
error
1
470
insert
into
v1
values
(
30
);
create
view
v2
as
select
*
from
t1
;
create
view
v3
as
select
*
from
t1
where
20
<
(
select
(
s1
)
from
v2
);
--
error
1
288
--
error
1
470
insert
into
v3
values
(
30
);
create
view
v4
as
select
*
from
v2
where
20
<
(
select
(
s1
)
from
t1
);
--
error
1
288
--
error
1
470
insert
into
v4
values
(
30
);
drop
view
v4
,
v3
,
v2
,
v1
;
drop
table
t1
;
...
...
@@ -2825,7 +2825,7 @@ BEGIN
END
|
delimiter
;
|
--
error
ER_NON_
UPDA
TABLE_TABLE
--
error
ER_NON_
INSER
TABLE_TABLE
SELECT
f2
();
DROP
FUNCTION
f1
;
...
...
@@ -2851,6 +2851,17 @@ EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
DROP
VIEW
v1
;
DROP
TABLE
t1
;
#
# Bug #5505: Wrong error message on INSERT into a view
#
create
table
t1
(
s1
int
);
create
view
v1
as
select
s1
as
a
,
s1
as
b
from
t1
;
--
error
1470
insert
into
v1
values
(
1
,
1
);
update
v1
set
a
=
5
;
drop
view
v1
;
drop
table
t1
;
#
# Bug #21646: view qith a subquery in ON expression
#
...
...
sql/share/errmsg.txt
View file @
ee67c4c4
...
...
@@ -5631,3 +5631,6 @@ ER_HOSTNAME
eng "host name"
ER_WRONG_STRING_LENGTH
eng "String '%-.70s' is too long for %s (should be no longer than %d)"
ER_NON_INSERTABLE_TABLE
eng "The target table %-.100s of the %s is not insertable-into"
sql/sql_base.cc
View file @
ee67c4c4
...
...
@@ -902,8 +902,11 @@ void update_non_unique_table_error(TABLE_LIST *update,
*/
if
(
update
->
view
)
{
/* Issue the ER_NON_INSERTABLE_TABLE error for an INSERT */
if
(
update
->
view
==
duplicate
->
view
)
my_error
(
ER_NON_UPDATABLE_TABLE
,
MYF
(
0
),
update
->
alias
,
operation
);
my_error
(
!
strncmp
(
operation
,
"INSERT"
,
6
)
?
ER_NON_INSERTABLE_TABLE
:
ER_NON_UPDATABLE_TABLE
,
MYF
(
0
),
update
->
alias
,
operation
);
else
my_error
(
ER_VIEW_PREVENT_UPDATE
,
MYF
(
0
),
(
duplicate
->
view
?
duplicate
->
alias
:
update
->
alias
),
...
...
sql/sql_insert.cc
View file @
ee67c4c4
...
...
@@ -111,7 +111,7 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list,
if
(
!
table_list
->
updatable
)
{
my_error
(
ER_NON_
UPDA
TABLE_TABLE
,
MYF
(
0
),
table_list
->
alias
,
"INSERT"
);
my_error
(
ER_NON_
INSER
TABLE_TABLE
,
MYF
(
0
),
table_list
->
alias
,
"INSERT"
);
return
-
1
;
}
...
...
@@ -214,7 +214,7 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list,
(
table_list
->
view
&&
check_view_insertability
(
thd
,
table_list
)))
{
my_error
(
ER_NON_
UPDA
TABLE_TABLE
,
MYF
(
0
),
table_list
->
alias
,
"INSERT"
);
my_error
(
ER_NON_
INSER
TABLE_TABLE
,
MYF
(
0
),
table_list
->
alias
,
"INSERT"
);
return
-
1
;
}
...
...
sql/sql_view.cc
View file @
ee67c4c4
...
...
@@ -1574,7 +1574,7 @@ bool insert_view_fields(THD *thd, List<Item> *list, TABLE_LIST *view)
list
->
push_back
(
fld
);
else
{
my_error
(
ER_NON_
UPDA
TABLE_TABLE
,
MYF
(
0
),
view
->
alias
,
"INSERT"
);
my_error
(
ER_NON_
INSER
TABLE_TABLE
,
MYF
(
0
),
view
->
alias
,
"INSERT"
);
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