mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
3d31e3d641
The method select_insert::send_error does two things, it rolls back a statement being executed and outputs an error message. But when a nonexistent column is referenced, an error message has been published already and there is no need to publish another. Fixed by moving all functionality beyond publishing an error message into select_insert::abort() and calling only that function. mysql-test/r/errors.result: Bug#28677: test result mysql-test/t/errors.test: Bug#28677: test case sql/sql_class.h: Bug#28677: overriding abort() sql/sql_insert.cc: Bug#28677: - moved everything beyond producing an error message out of select_insert::send_error and into new override select_insert::abort() - made corresponding move of code from select_create::send_error to select_create::abort sql/sql_select.cc: Bug#28677: No need to pusblish an error here
57 lines
1.9 KiB
Text
57 lines
1.9 KiB
Text
drop table if exists t1;
|
|
insert into t1 values(1);
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
delete from t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
update t1 set a=1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist
|
|
create table t1 (a int);
|
|
select count(test.t1.b) from t1;
|
|
ERROR 42S22: Unknown column 'test.t1.b' in 'field list'
|
|
select count(not_existing_database.t1) from t1;
|
|
ERROR 42S22: Unknown column 'not_existing_database.t1' in 'field list'
|
|
select count(not_existing_database.t1.a) from t1;
|
|
ERROR 42S22: Unknown column 'not_existing_database.t1.a' in 'field list'
|
|
select count(not_existing_database.t1.a) from not_existing_database.t1;
|
|
Got one of the listed errors
|
|
select 1 from t1 order by 2;
|
|
ERROR 42S22: Unknown column '2' in 'order clause'
|
|
select 1 from t1 group by 2;
|
|
ERROR 42S22: Unknown column '2' in 'group statement'
|
|
select 1 from t1 order by t1.b;
|
|
ERROR 42S22: Unknown column 't1.b' in 'order clause'
|
|
select count(*),b from t1;
|
|
ERROR 42S22: Unknown column 'b' in 'field list'
|
|
drop table t1;
|
|
create table t1 (a int(256));
|
|
ERROR 42000: Display width out of range for column 'a' (max = 255)
|
|
set sql_mode='traditional';
|
|
create table t1 (a varchar(66000));
|
|
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
|
set sql_mode=default;
|
|
CREATE TABLE t1 (a INT);
|
|
SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
|
|
a
|
|
INSERT INTO t1 VALUES(1);
|
|
SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
|
|
a
|
|
1
|
|
INSERT INTO t1 VALUES(2),(3);
|
|
SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0)));
|
|
a
|
|
1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1( a INT );
|
|
SELECT b FROM t1;
|
|
ERROR 42S22: Unknown column 'b' in 'field list'
|
|
SHOW ERRORS;
|
|
Level Code Message
|
|
Error 1054 Unknown column 'b' in 'field list'
|
|
CREATE TABLE t2 SELECT b FROM t1;
|
|
ERROR 42S22: Unknown column 'b' in 'field list'
|
|
SHOW ERRORS;
|
|
Level Code Message
|
|
Error 1054 Unknown column 'b' in 'field list'
|
|
INSERT INTO t1 SELECT b FROM t1;
|
|
ERROR 42S22: Unknown column 'b' in 'field list'
|
|
DROP TABLE t1;
|