diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 123fdbd90bd608c29a73acca1a4501d828a91240..103bed598ef41b44a4ab52c02e6c01becc8c59a5 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -552,3 +552,14 @@ NULL 1 Test 0 NULL 1 drop table t1, t2, t3; +create table t1 (b bool not null default false); +create table t2 (b bool not null default true); +insert into t1 values (); +insert into t2 values (); +select * from t1; +b +0 +select * from t2; +b +1 +drop table t1,t2; diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 6f222eedec1c66a9ff37b6796cdbb812d5d86095..ce85e5305699ecb20c1a6ea6793a0a67423d3df6 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -449,3 +449,14 @@ INSERT INTO t2 VALUES ('5000000001', 'proc01', '20031029090650', '2003-10-29 13: CREATE TABLE t3 SELECT t1.dsc,COUNT(DISTINCT t2.id) AS countOfRuns FROM t1 LEFT JOIN t2 ON (t1.id=t2.id) GROUP BY t1.id; SELECT * FROM t3; drop table t1, t2, t3; + +# +# Bug#9666: Can't use 'DEFAULT FALSE' for column of type bool +# +create table t1 (b bool not null default false); +create table t2 (b bool not null default true); +insert into t1 values (); +insert into t2 values (); +select * from t1; +select * from t2; +drop table t1,t2; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 594077dd4f3aa083d40afecd79c324bdd1309635..73845f7d6454e7ff243be634c1d7c5d8c7c02803 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2959,8 +2959,6 @@ simple_expr: { $$= new Item_func_export_set($3, $5, $7, $9); } | EXPORT_SET '(' expr ',' expr ',' expr ',' expr ',' expr ')' { $$= new Item_func_export_set($3, $5, $7, $9, $11); } - | FALSE_SYM - { $$= new Item_int((char*) "FALSE",0,1); } | FORMAT_SYM '(' expr ',' NUM ')' { $$= new Item_func_format($3,atoi($5.str)); } | FROM_UNIXTIME '(' expr ')' @@ -3108,8 +3106,6 @@ simple_expr: { $$= new Item_func_trim($5,$3); } | TRUNCATE_SYM '(' expr ',' expr ')' { $$= new Item_func_round($3,$5,1); } - | TRUE_SYM - { $$= new Item_int((char*) "TRUE",1,1); } | UDA_CHAR_SUM '(' udf_expr_list ')' { if ($3 != NULL) @@ -4892,6 +4888,8 @@ literal: | NUM_literal { $$ = $1; } | NULL_SYM { $$ = new Item_null(); Lex->next_state=MY_LEX_OPERATOR_OR_IDENT;} + | FALSE_SYM { $$= new Item_int((char*) "FALSE",0,1); } + | TRUE_SYM { $$= new Item_int((char*) "TRUE",1,1); } | HEX_NUM { $$ = new Item_varbinary($1.str,$1.length);} | UNDERSCORE_CHARSET HEX_NUM {