1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

a fix (bug #9881: ALTER TABLE gives wrong error message with sql-mode TRADITIONAL).

sql/field.cc:
  a fix (bug #9881: ALTER TABLE gives wrong error message with sql-mode TRADITIONAL).
  Don't set def if NO_DEFAULT_VALUE_FLAG is set.
This commit is contained in:
unknown
2005-07-15 15:50:57 +05:00
parent 908ff34e04
commit f4cd03d03f
3 changed files with 22 additions and 1 deletions

View File

@ -1235,3 +1235,13 @@ create table t1(a varchar(65537));
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
create table t1(a varbinary(65537)); create table t1(a varbinary(65537));
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
set @@sql_mode='traditional';
create table t1(a int, b date not null);
alter table t1 modify a bigint unsigned not null;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL,
`b` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;

View File

@ -1093,3 +1093,13 @@ set @@sql_mode='traditional';
create table t1(a varchar(65537)); create table t1(a varchar(65537));
--error 1074 --error 1074
create table t1(a varbinary(65537)); create table t1(a varbinary(65537));
#
# Bug #9881: problem with altering table
#
set @@sql_mode='traditional';
create table t1(a int, b date not null);
alter table t1 modify a bigint unsigned not null;
show create table t1;
drop table t1;

View File

@ -8487,7 +8487,8 @@ create_field::create_field(Field *old_field,Field *orig_field)
else else
interval=0; interval=0;
def=0; def=0;
if (!old_field->is_real_null() && ! (flags & BLOB_FLAG) && if (!(flags & NO_DEFAULT_VALUE_FLAG) &&
!old_field->is_real_null() && ! (flags & BLOB_FLAG) &&
old_field->ptr && orig_field) old_field->ptr && orig_field)
{ {
char buff[MAX_FIELD_WIDTH],*pos; char buff[MAX_FIELD_WIDTH],*pos;