[Commits] bzr commit into Mariadb 5.2, with Maria 2.0:maria/5.2 branch (igor:2821) Bug#604549

Igor Babaev igor at askmonty.org
Tue Jul 13 04:23:26 EEST 2010


#At lp:maria/5.2 based on revid:knielsen at knielsen-hq.org-20100709120309-xzhk02q8coq7m6tl

 2821 Igor Babaev	2010-07-12
      Fixed bug #604549.
      There was no error thrown when creating a table with a virtual table
      computed by an expression returning a row.
      This caused a crash when inserting into the table.
      
      Removed periods at the end of the error messages for virtual columns.
      Adjusted output in test result files accordingly. 
      modified:
        mysql-test/r/plugin.result
        mysql-test/r/table_options.result
        mysql-test/suite/vcol/r/vcol_archive.result
        mysql-test/suite/vcol/r/vcol_blackhole.result
        mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_innodb.result
        mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_myisam.result
        mysql-test/suite/vcol/r/vcol_csv.result
        mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result
        mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result
        mysql-test/suite/vcol/r/vcol_keys_innodb.result
        mysql-test/suite/vcol/r/vcol_keys_myisam.result
        mysql-test/suite/vcol/r/vcol_memory.result
        mysql-test/suite/vcol/r/vcol_merge.result
        mysql-test/suite/vcol/r/vcol_misc.result
        mysql-test/suite/vcol/r/vcol_non_stored_columns_innodb.result
        mysql-test/suite/vcol/r/vcol_non_stored_columns_myisam.result
        mysql-test/suite/vcol/t/vcol_misc.test
        sql/share/errmsg.txt
        sql/table.cc

=== modified file 'mysql-test/r/plugin.result'
--- a/mysql-test/r/plugin.result	2010-04-30 20:04:35 +0000
+++ b/mysql-test/r/plugin.result	2010-07-13 01:23:07 +0000
@@ -75,9 +75,9 @@ SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
 #illegal value fixed
 CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
 Warnings:
-Warning	1651	Incorrect value '10000000000000000000' for option 'ULL'
-Warning	1651	Incorrect value 'ttt' for option 'one_or_two'
-Warning	1651	Incorrect value 'SSS' for option 'YESNO'
+Warning	1652	Incorrect value '10000000000000000000' for option 'ULL'
+Warning	1652	Incorrect value 'ttt' for option 'one_or_two'
+Warning	1652	Incorrect value 'SSS' for option 'YESNO'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (

=== modified file 'mysql-test/r/table_options.result'
--- a/mysql-test/r/table_options.result	2010-05-12 17:56:05 +0000
+++ b/mysql-test/r/table_options.result	2010-07-13 01:23:07 +0000
@@ -3,9 +3,9 @@ SET @OLD_SQL_MODE=@@SQL_MODE;
 SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
 create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
 Warnings:
-Warning	1650	Unknown option 'fkey'
-Warning	1650	Unknown option 'dff'
-Warning	1650	Unknown option 'tkey1'
+Warning	1651	Unknown option 'fkey'
+Warning	1651	Unknown option 'dff'
+Warning	1651	Unknown option 'tkey1'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -16,10 +16,10 @@ drop table t1;
 #reassiginig options in the same line
 create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1=1v1 TKEY1=DEFAULT tkey1=1v2 tkey2=2v1;
 Warnings:
-Warning	1650	Unknown option 'fkey'
-Warning	1650	Unknown option 'dff'
-Warning	1650	Unknown option 'tkey1'
-Warning	1650	Unknown option 'tkey2'
+Warning	1651	Unknown option 'fkey'
+Warning	1651	Unknown option 'dff'
+Warning	1651	Unknown option 'tkey1'
+Warning	1651	Unknown option 'tkey2'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -29,7 +29,7 @@ t1	CREATE TABLE `t1` (
 #add option
 alter table t1 tkey4=4v1;
 Warnings:
-Warning	1650	Unknown option 'tkey4'
+Warning	1651	Unknown option 'tkey4'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -39,8 +39,8 @@ t1	CREATE TABLE `t1` (
 #remove options 
 alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
 Warnings:
-Warning	1650	Unknown option 'tkey3'
-Warning	1650	Unknown option 'tkey4'
+Warning	1651	Unknown option 'tkey3'
+Warning	1651	Unknown option 'tkey4'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -50,11 +50,11 @@ t1	CREATE TABLE `t1` (
 drop table t1;
 create table t1 (a int fkey1=v1, key akey (a) kkey1=v1) tkey1=1v1 tkey1=1v2 TKEY1=DEFAULT tkey2=2v1 tkey3=3v1;
 Warnings:
-Warning	1650	Unknown option 'fkey1'
-Warning	1650	Unknown option 'kkey1'
-Warning	1650	Unknown option 'TKEY1'
-Warning	1650	Unknown option 'tkey2'
-Warning	1650	Unknown option 'tkey3'
+Warning	1651	Unknown option 'fkey1'
+Warning	1651	Unknown option 'kkey1'
+Warning	1651	Unknown option 'TKEY1'
+Warning	1651	Unknown option 'tkey2'
+Warning	1651	Unknown option 'tkey3'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -64,7 +64,7 @@ t1	CREATE TABLE `t1` (
 #change field with option with the same value
 alter table t1 change a a int `FKEY1`='v1';
 Warnings:
-Warning	1650	Unknown option 'FKEY1'
+Warning	1651	Unknown option 'FKEY1'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -74,7 +74,7 @@ t1	CREATE TABLE `t1` (
 #change field with option with a different value
 alter table t1 change a a int fkey1=v2;
 Warnings:
-Warning	1650	Unknown option 'fkey1'
+Warning	1651	Unknown option 'fkey1'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -93,7 +93,7 @@ t1	CREATE TABLE `t1` (
 #new key with options
 alter table t1 add key bkey (b) kkey2=v1;
 Warnings:
-Warning	1650	Unknown option 'kkey2'
+Warning	1651	Unknown option 'kkey2'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -105,8 +105,8 @@ t1	CREATE TABLE `t1` (
 #new column with options
 alter table t1 add column c int fkey1=v1 fkey2=v2;
 Warnings:
-Warning	1650	Unknown option 'fkey1'
-Warning	1650	Unknown option 'fkey2'
+Warning	1651	Unknown option 'fkey1'
+Warning	1651	Unknown option 'fkey2'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -141,7 +141,7 @@ t1	CREATE TABLE `t1` (
 #add column with options after delete
 alter table t1 add column b int fkey2=v1;
 Warnings:
-Warning	1650	Unknown option 'fkey2'
+Warning	1651	Unknown option 'fkey2'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -154,7 +154,7 @@ t1	CREATE TABLE `t1` (
 #add key 
 alter table t1 add key bkey (b) kkey2=v2;
 Warnings:
-Warning	1650	Unknown option 'kkey2'
+Warning	1651	Unknown option 'kkey2'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -168,7 +168,7 @@ t1	CREATE TABLE `t1` (
 drop table t1;
 create table t1 (a int) tkey1=100;
 Warnings:
-Warning	1650	Unknown option 'tkey1'
+Warning	1651	Unknown option 'tkey1'
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (

=== modified file 'mysql-test/suite/vcol/r/vcol_archive.result'
--- a/mysql-test/suite/vcol/r/vcol_archive.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_archive.result	2010-07-13 01:23:07 +0000
@@ -1,7 +1,7 @@
 SET @@session.storage_engine = 'archive';
 create table t1 (a int, b int as (a+1));
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 create table t1 (a int);
 alter table t1 add column b int as (a+1);
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 drop table t1;

=== modified file 'mysql-test/suite/vcol/r/vcol_blackhole.result'
--- a/mysql-test/suite/vcol/r/vcol_blackhole.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_blackhole.result	2010-07-13 01:23:07 +0000
@@ -1,7 +1,7 @@
 SET @@session.storage_engine = 'blackhole';
 create table t1 (a int, b int as (a+1));
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 create table t1 (a int);
 alter table t1 add column b int as (a+1);
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 drop table t1;

=== modified file 'mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_innodb.result'
--- a/mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_innodb.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_innodb.result	2010-07-13 01:23:07 +0000
@@ -1,131 +1,131 @@
 SET @@session.storage_engine = 'InnoDB';
 # RAND()
 create table t1 (b double as (rand()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LOAD_FILE()
 create table t1 (a varchar(64), b varchar(1024) as (load_file(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # CURDATE()
 create table t1 (a datetime as (curdate()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_DATE(), CURRENT_DATE
 create table t1 (a datetime as (current_date));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_date()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_TIME(), CURRENT_TIME
 create table t1 (a datetime as (current_time));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_time()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP
 create table t1 (a datetime as (current_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_timestamp));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURTIME()
 create table t1 (a datetime as (curtime()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # LOCALTIME(), LOCALTIME
 create table t1 (a datetime, b varchar(10) as (localtime()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a datetime, b varchar(10) as (localtime));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LOCALTIMESTAMP, LOCALTIMESTAMP()(v4.0.6)
 create table t1 (a datetime, b varchar(10) as (localtimestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a datetime, b varchar(10) as (localtimestamp));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # NOW()
 create table t1 (a datetime, b varchar(10) as (now()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SYSDATE()
 create table t1 (a int, b varchar(10) as (sysdate()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UNIX_TIMESTAMP()
 create table t1 (a datetime, b datetime as (unix_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_DATE()
 create table t1 (a datetime, b datetime as (utc_date()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_TIME()
 create table t1 (a datetime, b datetime as (utc_time()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_TIMESTAMP()
 create table t1 (a datetime, b datetime as (utc_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MATCH()
 # BENCHMARK()
 create table t1 (a varchar(1024), b varchar(1024) as (benchmark(a,3)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # CONNECTION_ID()
 create table t1 (a int as (connection_id()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_USER(), CURRENT_USER
 create table t1 (a varchar(32) as (current_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a varchar(32) as (current_user));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # DATABASE()
 create table t1 (a varchar(1024), b varchar(1024) as (database()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # FOUND_ROWS()
 create table t1 (a varchar(1024), b varchar(1024) as (found_rows()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # GET_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (get_lock(a,10)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # IS_FREE_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (is_free_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # IS_USED_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (is_used_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LAST_INSERT_ID()
 create table t1 (a int as (last_insert_id()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # MASTER_POS_WAIT()
 create table t1 (a varchar(32), b int as (master_pos_wait(a,0,2)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # NAME_CONST()
 create table t1 (a varchar(32) as (name_const('test',1)));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # RELEASE_LOCK()
 create table t1 (a varchar(32), b int as (release_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # ROW_COUNT()
 create table t1 (a int as (row_count()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SCHEMA()
 create table t1 (a varchar(32) as (schema()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SESSION_USER()
 create table t1 (a varchar(32) as (session_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SLEEP()
 create table t1 (a int, b int as (sleep(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SYSTEM_USER()
 create table t1 (a varchar(32) as (system_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # USER()
 create table t1 (a varchar(1024), b varchar(1024) as (user()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UUID_SHORT()
 create table t1 (a varchar(1024) as (uuid_short()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # UUID()
 create table t1 (a varchar(1024) as (uuid()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # VALUES()
 create table t1 (a varchar(1024), b varchar(1024) as (values(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VERSION()
 create table t1 (a varchar(1024), b varchar(1024) as (version()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # ENCRYPT()
 create table t1 (a varchar(1024), b varchar(1024) as (encrypt(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # Stored procedures
 create procedure p1()
 begin
@@ -137,77 +137,77 @@ begin
 return 1;
 end //
 create table t1 (a int as (p1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a int as (f1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 drop procedure p1;
 drop function f1;
 # Unknown functions
 create table t1 (a int as (f1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 #
 # GROUP BY FUNCTIONS
 #
 # AVG()
 create table t1 (a int, b int as (avg(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_AND()
 create table t1 (a int, b int as (bit_and(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_OR()
 create table t1 (a int, b int as (bit_or(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_XOR()
 create table t1 (a int, b int as (bit_xor(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # COUNT(DISTINCT)
 create table t1 (a int, b int as (count(distinct a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # COUNT()
 create table t1 (a int, b int as (count(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # GROUP_CONCAT()
 create table t1 (a varchar(32), b int as (group_concat(a,'')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MAX()
 create table t1 (a int, b int as (max(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MIN()
 create table t1 (a int, b int as (min(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STD()
 create table t1 (a int, b int as (std(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV_POP()
 create table t1 (a int, b int as (stddev_pop(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV_SAMP()
 create table t1 (a int, b int as (stddev_samp(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV()
 create table t1 (a int, b int as (stddev(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SUM()
 create table t1 (a int, b int as (sum(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VAR_POP()
 create table t1 (a int, b int as (var_pop(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VAR_SAMP()
 create table t1 (a int, b int as (var_samp(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VARIANCE()
 create table t1 (a int, b int as (variance(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # XML FUNCTIONS
 #
 # ExtractValue()
 create table t1 (a varchar(1024), b varchar(1024) as (ExtractValue(a,'//b[$@j]')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UpdateXML()
 create table t1 (a varchar(1024), b varchar(1024) as (UpdateXML(a,'/a','<e>fff</e>')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # Sub-selects
 #
@@ -216,9 +216,9 @@ create table t2 (a int, b int as (select
 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from t1))' at line 1
 drop table t1;
 create table t1 (a int, b int as ((select 1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a int, b int as (a+(select 1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # SP functions
 #
@@ -229,7 +229,7 @@ select sub1(1);
 sub1(1)
 2
 create table t1 (a int, b int as (a+sub3(1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 drop function sub1;
 #
 # Long expression
@@ -240,4 +240,4 @@ ERROR HY000: String 'concat(a,'aaaaaaaaa
 #
 # Constant expression
 create table t1 (a int as (PI()));
-ERROR HY000: Constant expression in computed column function is not allowed.
+ERROR HY000: Constant expression in computed column function is not allowed

=== modified file 'mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_myisam.result'
--- a/mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_myisam.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_blocked_sql_funcs_myisam.result	2010-07-13 01:23:07 +0000
@@ -1,133 +1,133 @@
 SET @@session.storage_engine = 'MyISAM';
 # RAND()
 create table t1 (b double as (rand()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LOAD_FILE()
 create table t1 (a varchar(64), b varchar(1024) as (load_file(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # CURDATE()
 create table t1 (a datetime as (curdate()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_DATE(), CURRENT_DATE
 create table t1 (a datetime as (current_date));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_date()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_TIME(), CURRENT_TIME
 create table t1 (a datetime as (current_time));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_time()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP
 create table t1 (a datetime as (current_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a datetime as (current_timestamp));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURTIME()
 create table t1 (a datetime as (curtime()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # LOCALTIME(), LOCALTIME
 create table t1 (a datetime, b varchar(10) as (localtime()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a datetime, b varchar(10) as (localtime));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LOCALTIMESTAMP, LOCALTIMESTAMP()(v4.0.6)
 create table t1 (a datetime, b varchar(10) as (localtimestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a datetime, b varchar(10) as (localtimestamp));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # NOW()
 create table t1 (a datetime, b varchar(10) as (now()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SYSDATE()
 create table t1 (a int, b varchar(10) as (sysdate()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UNIX_TIMESTAMP()
 create table t1 (a datetime, b datetime as (unix_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_DATE()
 create table t1 (a datetime, b datetime as (utc_date()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_TIME()
 create table t1 (a datetime, b datetime as (utc_time()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UTC_TIMESTAMP()
 create table t1 (a datetime, b datetime as (utc_timestamp()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MATCH()
 create table t1 (a varchar(32), b bool as (match a against ('sample text')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BENCHMARK()
 create table t1 (a varchar(1024), b varchar(1024) as (benchmark(a,3)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # CONNECTION_ID()
 create table t1 (a int as (connection_id()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # CURRENT_USER(), CURRENT_USER
 create table t1 (a varchar(32) as (current_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a varchar(32) as (current_user));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # DATABASE()
 create table t1 (a varchar(1024), b varchar(1024) as (database()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # FOUND_ROWS()
 create table t1 (a varchar(1024), b varchar(1024) as (found_rows()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # GET_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (get_lock(a,10)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # IS_FREE_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (is_free_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # IS_USED_LOCK()
 create table t1 (a varchar(1024), b varchar(1024) as (is_used_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # LAST_INSERT_ID()
 create table t1 (a int as (last_insert_id()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # MASTER_POS_WAIT()
 create table t1 (a varchar(32), b int as (master_pos_wait(a,0,2)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # NAME_CONST()
 create table t1 (a varchar(32) as (name_const('test',1)));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # RELEASE_LOCK()
 create table t1 (a varchar(32), b int as (release_lock(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # ROW_COUNT()
 create table t1 (a int as (row_count()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SCHEMA()
 create table t1 (a varchar(32) as (schema()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SESSION_USER()
 create table t1 (a varchar(32) as (session_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # SLEEP()
 create table t1 (a int, b int as (sleep(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SYSTEM_USER()
 create table t1 (a varchar(32) as (system_user()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # USER()
 create table t1 (a varchar(1024), b varchar(1024) as (user()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UUID_SHORT()
 create table t1 (a varchar(1024) as (uuid_short()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # UUID()
 create table t1 (a varchar(1024) as (uuid()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 # VALUES()
 create table t1 (a varchar(1024), b varchar(1024) as (values(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VERSION()
 create table t1 (a varchar(1024), b varchar(1024) as (version()));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # ENCRYPT()
 create table t1 (a varchar(1024), b varchar(1024) as (encrypt(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # Stored procedures
 create procedure p1()
 begin
@@ -139,77 +139,77 @@ begin
 return 1;
 end //
 create table t1 (a int as (p1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 create table t1 (a int as (f1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 drop procedure p1;
 drop function f1;
 # Unknown functions
 create table t1 (a int as (f1()));
-ERROR HY000: Function or expression is not allowed for column 'a'.
+ERROR HY000: Function or expression is not allowed for column 'a'
 #
 # GROUP BY FUNCTIONS
 #
 # AVG()
 create table t1 (a int, b int as (avg(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_AND()
 create table t1 (a int, b int as (bit_and(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_OR()
 create table t1 (a int, b int as (bit_or(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # BIT_XOR()
 create table t1 (a int, b int as (bit_xor(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # COUNT(DISTINCT)
 create table t1 (a int, b int as (count(distinct a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # COUNT()
 create table t1 (a int, b int as (count(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # GROUP_CONCAT()
 create table t1 (a varchar(32), b int as (group_concat(a,'')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MAX()
 create table t1 (a int, b int as (max(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # MIN()
 create table t1 (a int, b int as (min(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STD()
 create table t1 (a int, b int as (std(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV_POP()
 create table t1 (a int, b int as (stddev_pop(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV_SAMP()
 create table t1 (a int, b int as (stddev_samp(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # STDDEV()
 create table t1 (a int, b int as (stddev(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # SUM()
 create table t1 (a int, b int as (sum(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VAR_POP()
 create table t1 (a int, b int as (var_pop(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VAR_SAMP()
 create table t1 (a int, b int as (var_samp(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # VARIANCE()
 create table t1 (a int, b int as (variance(a)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # XML FUNCTIONS
 #
 # ExtractValue()
 create table t1 (a varchar(1024), b varchar(1024) as (ExtractValue(a,'//b[$@j]')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 # UpdateXML()
 create table t1 (a varchar(1024), b varchar(1024) as (UpdateXML(a,'/a','<e>fff</e>')));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # Sub-selects
 #
@@ -218,9 +218,9 @@ create table t2 (a int, b int as (select
 ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from t1))' at line 1
 drop table t1;
 create table t1 (a int, b int as ((select 1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 create table t1 (a int, b int as (a+(select 1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 #
 # SP functions
 #
@@ -231,7 +231,7 @@ select sub1(1);
 sub1(1)
 2
 create table t1 (a int, b int as (a+sub3(1)));
-ERROR HY000: Function or expression is not allowed for column 'b'.
+ERROR HY000: Function or expression is not allowed for column 'b'
 drop function sub1;
 #
 # Long expression
@@ -242,4 +242,4 @@ ERROR HY000: String 'concat(a,'aaaaaaaaa
 #
 # Constant expression
 create table t1 (a int as (PI()));
-ERROR HY000: Constant expression in computed column function is not allowed.
+ERROR HY000: Constant expression in computed column function is not allowed

=== modified file 'mysql-test/suite/vcol/r/vcol_csv.result'
--- a/mysql-test/suite/vcol/r/vcol_csv.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_csv.result	2010-07-13 01:23:07 +0000
@@ -1,7 +1,7 @@
 SET @@session.storage_engine = 'CSV';
 create table t1 (a int, b int as (a+1));
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 create table t1 (a int not null);
 alter table t1 add column b int as (a+1);
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 drop table t1;

=== modified file 'mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result'
--- a/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result	2010-07-13 01:23:07 +0000
@@ -25,8 +25,8 @@ a	b	c
 # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols
 insert into t1 values (1,2,3);
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -65,8 +65,8 @@ a	b	c
 # against vcols
 insert into t1 (a,b) values (1,3), (2,4);
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -107,8 +107,8 @@ a	b	c
 create table t2 like t1;
 insert into t2 select * from t1;
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
-Warning	1645	The value specified for computed column 'c' in table 't2' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
+Warning	1645	The value specified for computed column 'c' in table 't2' ignored
 select * from t1;
 a	b	c
 2	-2	-2
@@ -123,8 +123,8 @@ a	b	c
 create table t2 like t1;
 insert into t2 (a,b) select a,b from t1;
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
 select * from t2;
 a	b	c
 2	-2	-2
@@ -159,7 +159,7 @@ a	b	c
 2	-2	-2
 update t1 set c=3 where a=2;
 Warnings:
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -189,7 +189,7 @@ a	b	c
 2	-2	-2
 update t1 set c=3 where b=-2;
 Warnings:
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1

=== modified file 'mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result'
--- a/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result	2010-07-13 01:23:07 +0000
@@ -25,8 +25,8 @@ a	b	c
 # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols
 insert into t1 values (1,2,3);
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -65,8 +65,8 @@ a	b	c
 # against vcols
 insert into t1 (a,b) values (1,3), (2,4);
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
-Warning	1645	The value specified for computed column 'b' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
+Warning	1645	The value specified for computed column 'b' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -107,8 +107,8 @@ a	b	c
 create table t2 like t1;
 insert into t2 select * from t1;
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
-Warning	1645	The value specified for computed column 'c' in table 't2' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
+Warning	1645	The value specified for computed column 'c' in table 't2' ignored
 select * from t1;
 a	b	c
 2	-2	-2
@@ -123,8 +123,8 @@ a	b	c
 create table t2 like t1;
 insert into t2 (a,b) select a,b from t1;
 Warnings:
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
-Warning	1645	The value specified for computed column 'b' in table 't2' ignored.
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
+Warning	1645	The value specified for computed column 'b' in table 't2' ignored
 select * from t2;
 a	b	c
 2	-2	-2
@@ -159,7 +159,7 @@ a	b	c
 2	-2	-2
 update t1 set c=3 where a=2;
 Warnings:
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1
@@ -189,7 +189,7 @@ a	b	c
 2	-2	-2
 update t1 set c=3 where b=-2;
 Warnings:
-Warning	1645	The value specified for computed column 'c' in table 't1' ignored.
+Warning	1645	The value specified for computed column 'c' in table 't1' ignored
 select * from t1;
 a	b	c
 1	-1	-1

=== modified file 'mysql-test/suite/vcol/r/vcol_keys_innodb.result'
--- a/mysql-test/suite/vcol/r/vcol_keys_innodb.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_keys_innodb.result	2010-07-13 01:23:07 +0000
@@ -7,7 +7,7 @@ SET @@session.storage_engine = 'InnoDB';
 #            - CHECK (allowed but not used)
 # UNIQUE
 create table t1 (a int, b int as (a*2) unique);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent unique);
 show create table t1;
 Table	Create Table
@@ -22,7 +22,7 @@ a	int(11)	YES		NULL	
 b	int(11)	YES	UNI	NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2), unique key (b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent, unique (b));
 show create table t1;
 Table	Create Table
@@ -38,7 +38,7 @@ b	int(11)	YES	UNI	NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2));
 alter table t1 add unique key (b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 create table t1 (a int, b int as (a*2) persistent);
 alter table t1 add unique key (b);
@@ -50,9 +50,9 @@ drop table t1;
 # 
 # INDEX
 create table t1 (a int, b int as (a*2), index (b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2), index (a,b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent, index (b));
 show create table t1;
 Table	Create Table
@@ -81,9 +81,9 @@ b	int(11)	YES		NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2));
 alter table t1 add index (b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 alter table t1 add index (a,b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 create table t1 (a int, b int as (a*2) persistent);
 alter table t1 add index (b);
@@ -103,27 +103,27 @@ drop table t1;
 # Rejected FK options.
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on update set null);
-ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on update cascade);
-ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on delete set null);
-ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
 create table t1 (a int, b int as (a+1) persistent);
 alter table t1 add foreign key (b) references t2(a) on update set null;
-ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
 alter table t1 add foreign key (b) references t2(a) on update cascade;
-ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
 alter table t1 add foreign key (b) references t2(a) on delete set null;
-ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
 drop table t1;
 create table t1 (a int, b int as (a+1),
 foreign key (b) references t2(a));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a+1));
 alter table t1 add foreign key (b) references t2(a);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 # Allowed FK options.
 create table t2 (a int primary key, b char(5));

=== modified file 'mysql-test/suite/vcol/r/vcol_keys_myisam.result'
--- a/mysql-test/suite/vcol/r/vcol_keys_myisam.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_keys_myisam.result	2010-07-13 01:23:07 +0000
@@ -7,7 +7,7 @@ SET @@session.storage_engine = 'MyISAM';
 #            - CHECK (allowed but not used)
 # UNIQUE
 create table t1 (a int, b int as (a*2) unique);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent unique);
 show create table t1;
 Table	Create Table
@@ -22,7 +22,7 @@ a	int(11)	YES		NULL	
 b	int(11)	YES	UNI	NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2), unique key (b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent, unique (b));
 show create table t1;
 Table	Create Table
@@ -38,7 +38,7 @@ b	int(11)	YES	UNI	NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2));
 alter table t1 add unique key (b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 create table t1 (a int, b int as (a*2) persistent);
 alter table t1 add unique key (b);
@@ -50,9 +50,9 @@ drop table t1;
 # 
 # INDEX
 create table t1 (a int, b int as (a*2), index (b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2), index (a,b));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a*2) persistent, index (b));
 show create table t1;
 Table	Create Table
@@ -81,9 +81,9 @@ b	int(11)	YES		NULL	VIRTUAL
 drop table t1;
 create table t1 (a int, b int as (a*2));
 alter table t1 add index (b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 alter table t1 add index (a,b);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 create table t1 (a int, b int as (a*2) persistent);
 alter table t1 add index (b);
@@ -110,27 +110,27 @@ drop table t1;
 # Rejected FK options.
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on update set null);
-ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on update cascade);
-ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
 create table t1 (a int, b int as (a+1) persistent,
 foreign key (b) references t2(a) on delete set null);
-ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
 create table t1 (a int, b int as (a+1) persistent);
 alter table t1 add foreign key (b) references t2(a) on update set null;
-ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
 alter table t1 add foreign key (b) references t2(a) on update cascade;
-ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
 alter table t1 add foreign key (b) references t2(a) on delete set null;
-ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column.
+ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
 drop table t1;
 create table t1 (a int, b int as (a+1),
 foreign key (b) references t2(a));
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 create table t1 (a int, b int as (a+1));
 alter table t1 add foreign key (b) references t2(a);
-ERROR HY000: Key/Index cannot be defined on a non-stored computed column.
+ERROR HY000: Key/Index cannot be defined on a non-stored computed column
 drop table t1;
 # Allowed FK options.
 create table t2 (a int primary key, b char(5));

=== modified file 'mysql-test/suite/vcol/r/vcol_memory.result'
--- a/mysql-test/suite/vcol/r/vcol_memory.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_memory.result	2010-07-13 01:23:07 +0000
@@ -1,7 +1,7 @@
 SET @@session.storage_engine = 'memory';
 create table t1 (a int, b int as (a+1));
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 create table t1 (a int);
 alter table t1 add column b int as (a+1);
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 drop table t1;

=== modified file 'mysql-test/suite/vcol/r/vcol_merge.result'
--- a/mysql-test/suite/vcol/r/vcol_merge.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_merge.result	2010-07-13 01:23:07 +0000
@@ -4,5 +4,5 @@ create table t2 (a int, b int as (a % 10
 insert into t1 values (1,default);
 insert into t2 values (2,default);
 create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
-ERROR HY000: 'Specified storage engine' is not yet supported for computed columns.
+ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
 drop table t1,t2;

=== modified file 'mysql-test/suite/vcol/r/vcol_misc.result'
--- a/mysql-test/suite/vcol/r/vcol_misc.result	2010-07-03 03:24:39 +0000
+++ b/mysql-test/suite/vcol/r/vcol_misc.result	2010-07-13 01:23:07 +0000
@@ -30,3 +30,8 @@ a	b	v
 5	50	6
 8	80	9
 drop table t1;
+CREATE TABLE t1 (
+a int NOT NULL DEFAULT '0',
+v double AS ((1, a)) VIRTUAL
+);
+ERROR HY000: Expression for computed column cannot return a row

=== modified file 'mysql-test/suite/vcol/r/vcol_non_stored_columns_innodb.result'
--- a/mysql-test/suite/vcol/r/vcol_non_stored_columns_innodb.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_non_stored_columns_innodb.result	2010-07-13 01:23:07 +0000
@@ -76,7 +76,7 @@ drop table t1;
 # Case 7. ALTER. Modify virtual stored -> virtual non-stored
 create table t1 (a int, b int as (a % 2) persistent);
 alter table t1 modify b int as (a % 2);
-ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns.
+ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -87,7 +87,7 @@ drop table t1;
 # Case 8. ALTER. Modify virtual non-stored -> virtual stored
 create table t1 (a int, b int as (a % 2));
 alter table t1 modify b int as (a % 2) persistent;
-ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns.
+ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (

=== modified file 'mysql-test/suite/vcol/r/vcol_non_stored_columns_myisam.result'
--- a/mysql-test/suite/vcol/r/vcol_non_stored_columns_myisam.result	2009-10-16 22:57:48 +0000
+++ b/mysql-test/suite/vcol/r/vcol_non_stored_columns_myisam.result	2010-07-13 01:23:07 +0000
@@ -76,7 +76,7 @@ drop table t1;
 # Case 7. ALTER. Modify virtual stored -> virtual non-stored
 create table t1 (a int, b int as (a % 2) persistent);
 alter table t1 modify b int as (a % 2);
-ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns.
+ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
@@ -87,7 +87,7 @@ drop table t1;
 # Case 8. ALTER. Modify virtual non-stored -> virtual stored
 create table t1 (a int, b int as (a % 2));
 alter table t1 modify b int as (a % 2) persistent;
-ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns.
+ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (

=== modified file 'mysql-test/suite/vcol/t/vcol_misc.test'
--- a/mysql-test/suite/vcol/t/vcol_misc.test	2010-07-03 03:24:39 +0000
+++ b/mysql-test/suite/vcol/t/vcol_misc.test	2010-07-13 01:23:07 +0000
@@ -19,3 +19,17 @@ update t1 set a=v order by b limit 1;
 select * from t1 order by b;
 
 drop table t1;
+
+#
+# Bug#604549: Expression for virtual column returns row
+#             
+
+-- error ER_ROW_EXPR_FOR_VCOL 
+CREATE TABLE t1 (
+  a int NOT NULL DEFAULT '0',
+  v double AS ((1, a)) VIRTUAL
+);
+
+
+
+

=== modified file 'sql/share/errmsg.txt'
--- a/sql/share/errmsg.txt	2010-06-01 19:52:20 +0000
+++ b/sql/share/errmsg.txt	2010-07-13 01:23:07 +0000
@@ -6211,28 +6211,31 @@ ER_VCOL_BASED_ON_VCOL
         eng "A computed column cannot be based on a computed column"
 
 ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-        eng "Function or expression is not allowed for column '%s'."
+        eng "Function or expression is not allowed for column '%s'"
 
 ER_DATA_CONVERSION_ERROR_FOR_VIRTUAL_COLUMN
-        eng "Generated value for computed column '%s' cannot be converted to type '%s'."
+        eng "Generated value for computed column '%s' cannot be converted to type '%s'"
 
 ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN
-        eng "Primary key cannot be defined upon a computed column."
+        eng "Primary key cannot be defined upon a computed column"
 
 ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN
-        eng "Key/Index cannot be defined on a non-stored computed column."
+        eng "Key/Index cannot be defined on a non-stored computed column"
 
 ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
-        eng "Cannot define foreign key with %s clause on a computed column."
+        eng "Cannot define foreign key with %s clause on a computed column"
 
 ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN
-        eng "The value specified for computed column '%s' in table '%s' ignored."
+        eng "The value specified for computed column '%s' in table '%s' ignored"
 
 ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
-        eng "'%s' is not yet supported for computed columns."
+        eng "'%s' is not yet supported for computed columns"
 
 ER_CONST_EXPR_IN_VCOL
-         eng "Constant expression in computed column function is not allowed."
+        eng "Constant expression in computed column function is not allowed"
+
+ER_ROW_EXPR_FOR_VCOL
+        eng "Expression for computed column cannot return a row"
 
 ER_DEBUG_SYNC_TIMEOUT
   eng "debug sync point wait timed out"

=== modified file 'sql/table.cc'
--- a/sql/table.cc	2010-06-05 14:53:36 +0000
+++ b/sql/table.cc	2010-07-13 01:23:07 +0000
@@ -1859,6 +1859,14 @@ bool fix_vcol_expr(THD *thd,
     goto end;
   }
   thd->where= save_where;
+#if 0
+#else
+  if (unlikely(func_expr->result_type() == ROW_RESULT))
+  {
+     my_error(ER_ROW_EXPR_FOR_VCOL, MYF(0));
+     goto end;
+  }
+#endif
 #ifdef PARANOID
   /*
     Walk through the Item tree checking if all items are valid



More information about the commits mailing list