mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Name resolution context added (BUG#6443)
include/my_bitmap.h: new bitmap operation mysql-test/r/view.result: added warnings Correct inserting data check (absence of default value) for view underlying tables (BUG#6443) mysql-test/t/view.test: Correct inserting data check (absence of default value) for view underlying tables (BUG#6443) mysys/my_bitmap.c: new bitmap operation sql/field.h: index of field in table added sql/item.cc: Name resolution context added table list removed from fix_fields() arguments sql/item.h: Name resolution context added table list removed from fix_fields() arguments sql/item_cmpfunc.cc: table list removed from fix_fields() arguments sql/item_cmpfunc.h: table list removed from fix_fields() arguments sql/item_func.cc: table list removed from fix_fields() arguments sql/item_func.h: table list removed from fix_fields() arguments sql/item_row.cc: table list removed from fix_fields() arguments sql/item_row.h: table list removed from fix_fields() arguments sql/item_strfunc.cc: fixed server crash on NULL argument sql/item_strfunc.h: table list removed from fix_fields() arguments sql/item_subselect.cc: table list removed from fix_fields() arguments sql/item_subselect.h: table list removed from fix_fields() arguments sql/item_sum.cc: table list removed from fix_fields() arguments sql/item_sum.h: table list removed from fix_fields() arguments sql/item_timefunc.cc: table list removed from fix_fields() arguments sql/item_timefunc.h: table list removed from fix_fields() arguments sql/item_uniq.h: table list removed from fix_fields() arguments sql/log_event.cc: Name resolution context added sql/log_event.h: Name resolution context added sql/mysql_priv.h: Name resolution context added sql/set_var.cc: table list removed from fix_fields() arguments sql/share/errmsg.txt: new error message sql/sp.cc: Name resolution context added sql/sp_head.cc: table list removed from fix_fields() arguments sql/sp_head.h: Name resolution context added sql/sql_base.cc: table list removed from fix_fields() arguments Name resolution context added sql/sql_class.cc: renamed variable sql/sql_delete.cc: Name resolution context added sql/sql_derived.cc: Name resolution context added sql/sql_do.cc: table list removed from fix_fields() arguments sql/sql_handler.cc: Name resolution context added sql/sql_help.cc: Name resolution context added sql/sql_insert.cc: Name resolution context added table list removed from fix_fields() arguments sql/sql_lex.cc: Name resolution context added sql/sql_lex.h: removed resolve mode (information stored into name resolution context) sql/sql_load.cc: table list removed from fix_fields() arguments sql/sql_olap.cc: Name resolution context added sql/sql_parse.cc: Name resolution context added sql/sql_prepare.cc: table list removed from fix_fields() arguments sql/sql_select.cc: table list removed from fix_fields() arguments sql/sql_show.cc: Name resolution context added sql/sql_trigger.cc: table list removed from fix_fields() arguments sql/sql_udf.h: table list removed from fix_fields() arguments sql/sql_union.cc: Name resolution context added sql/sql_update.cc: Name resolution context added sql/sql_view.cc: Name resolution context added sql/sql_view.h: table list removed from fix_fields() arguments sql/sql_yacc.yy: Name resolution context added sql/table.cc: Name resolution context added merged view processing moved sql/table.h: merged view processing moved
This commit is contained in:
@ -754,6 +754,8 @@ create view v1 as select * from t1;
|
||||
create view v2 as select * from t2;
|
||||
insert into v1 values (1);
|
||||
insert into v2 values (1);
|
||||
Warnings:
|
||||
Warning 1423 Field of view 'test.v2' underlying table doesn't have a default value
|
||||
create view v3 (a,b) as select v1.col1 as a, v2.col1 as b from v1, v2 where v1.col1 = v2.col1;
|
||||
select * from v3;
|
||||
a b
|
||||
@ -1850,3 +1852,16 @@ SELECT * FROM v1;
|
||||
SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1)
|
||||
dkjhgd
|
||||
drop view v1;
|
||||
set sql_mode='strict_all_tables';
|
||||
CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL) ENGINE = INNODB;
|
||||
CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1;
|
||||
CREATE VIEW v2 (vcol1) AS SELECT col1 FROM t1 WHERE col2 > 2;
|
||||
INSERT INTO t1 (col1) VALUES(12);
|
||||
ERROR HY000: Field 'col2' doesn't have a default value
|
||||
INSERT INTO v1 (vcol1) VALUES(12);
|
||||
ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default value
|
||||
INSERT INTO v2 (vcol1) VALUES(12);
|
||||
ERROR HY000: Field of view 'test.v2' underlying table doesn't have a default value
|
||||
set sql_mode=default;
|
||||
drop view v2,v1;
|
||||
drop table t1;
|
||||
|
@ -1696,3 +1696,21 @@ drop view v1;
|
||||
CREATE VIEW v1 AS SELECT SUBSTRING_INDEX("dkjhgd:kjhdjh", ":", 1);
|
||||
SELECT * FROM v1;
|
||||
drop view v1;
|
||||
|
||||
#
|
||||
# Correct inserting data check (absence of default value) for view
|
||||
# underlying tables (BUG#6443)
|
||||
#
|
||||
set sql_mode='strict_all_tables';
|
||||
CREATE TABLE t1 (col1 INT NOT NULL, col2 INT NOT NULL) ENGINE = INNODB;
|
||||
CREATE VIEW v1 (vcol1) AS SELECT col1 FROM t1;
|
||||
CREATE VIEW v2 (vcol1) AS SELECT col1 FROM t1 WHERE col2 > 2;
|
||||
-- error 1364
|
||||
INSERT INTO t1 (col1) VALUES(12);
|
||||
-- error 1423
|
||||
INSERT INTO v1 (vcol1) VALUES(12);
|
||||
-- error 1423
|
||||
INSERT INTO v2 (vcol1) VALUES(12);
|
||||
set sql_mode=default;
|
||||
drop view v2,v1;
|
||||
drop table t1;
|
||||
|
Reference in New Issue
Block a user