← Back to team overview

maria-developers team mailing list archive

Rev 2835: Fix for launchpad bug #612894 in file:///home/bell/maria/bzr/work-maria-5.2-lb607147/

 

At file:///home/bell/maria/bzr/work-maria-5.2-lb607147/

------------------------------------------------------------
revno: 2835
revision-id: sanja@xxxxxxxxxxxx-20100803094925-fpuj52qvdkkw5994
parent: igor@xxxxxxxxxxxx-20100728190938-esx94q58hw3v5jue
committer: sanja@xxxxxxxxxxxx
branch nick: work-maria-5.2-lb607147
timestamp: Tue 2010-08-03 12:49:25 +0300
message:
  Fix for launchpad bug #612894
  
  Support of virtual columns added to maria engine.
=== added file 'mysql-test/suite/vcol/r/vcol_handler_maria.result'
--- a/mysql-test/suite/vcol/r/vcol_handler_maria.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/vcol/r/vcol_handler_maria.result	2010-08-03 09:49:25 +0000
@@ -0,0 +1,76 @@
+SET @@session.storage_engine = 'maria';
+create table t1 (a int, 
+b int as (-a),
+c int as (-a) persistent,
+d char(1),
+index (a),
+index (c));
+insert into t1 (a,d) values (4,'a'), (2,'b'), (1,'c'), (3,'d');
+select * from t1;
+a	b	c	d
+4	-4	-4	a
+2	-2	-2	b
+1	-1	-1	c
+3	-3	-3	d
+# HANDLER tbl_name OPEN
+handler t1 open;
+# HANDLER tbl_name READ non-vcol_index_name > (value1,value2,...)
+handler t1 read a > (2);
+a	b	c	d
+3	-3	-3	d
+# HANDLER tbl_name READ non-vcol_index_name > (value1,value2,...) WHERE non-vcol_field=expr
+handler t1 read a > (2) where d='c';
+a	b	c	d
+# HANDLER tbl_name READ vcol_index_name = (value1,value2,...)
+handler t1 read c = (-2);
+a	b	c	d
+2	-2	-2	b
+# HANDLER tbl_name READ vcol_index_name = (value1,value2,...) WHERE non-vcol_field=expr
+handler t1 read c = (-2) where d='c';
+a	b	c	d
+# HANDLER tbl_name READ non-vcol_index_name > (value1,value2,...) WHERE vcol_field=expr
+handler t1 read a > (2) where b=-3 && c=-3;
+a	b	c	d
+3	-3	-3	d
+# HANDLER tbl_name READ vcol_index_name <= (value1,value2,...)
+handler t1 read c <= (-2);
+a	b	c	d
+2	-2	-2	b
+# HANDLER tbl_name READ vcol_index_name > (value1,value2,...) WHERE vcol_field=expr
+handler t1 read c <= (-2) where b=-3;
+a	b	c	d
+3	-3	-3	d
+# HANDLER tbl_name READ vcol_index_name FIRST
+handler t1 read c first;
+a	b	c	d
+4	-4	-4	a
+# HANDLER tbl_name READ vcol_index_name NEXT
+handler t1 read c next;
+a	b	c	d
+3	-3	-3	d
+# HANDLER tbl_name READ vcol_index_name PREV
+handler t1 read c prev;
+a	b	c	d
+4	-4	-4	a
+# HANDLER tbl_name READ vcol_index_name LAST
+handler t1 read c last;
+a	b	c	d
+1	-1	-1	c
+# HANDLER tbl_name READ FIRST where non-vcol=expr
+handler t1 read FIRST where a >= 2;
+a	b	c	d
+4	-4	-4	a
+# HANDLER tbl_name READ FIRST where vcol=expr
+handler t1 read FIRST where b >= -2;
+a	b	c	d
+2	-2	-2	b
+# HANDLER tbl_name READ NEXT where non-vcol=expr
+handler t1 read NEXT where d='c';
+a	b	c	d
+1	-1	-1	c
+# HANDLER tbl_name READ NEXT where vcol=expr
+handler t1 read NEXT where b<=-4;
+a	b	c	d
+# HANDLER tbl_name CLOSE
+handler t1 close;
+drop table t1;

=== added file 'mysql-test/suite/vcol/t/vcol_handler_maria.test'
--- a/mysql-test/suite/vcol/t/vcol_handler_maria.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/vcol/t/vcol_handler_maria.test	2010-08-03 09:49:25 +0000
@@ -0,0 +1,50 @@
+################################################################################
+# t/vcol_handler_maria.test                                                   #
+#                                                                              #
+# Purpose:                                                                     #
+#  Testing HANDLER.
+#                                                                              #
+#        Maria branch                                                         #
+#                                                                              #
+#------------------------------------------------------------------------------#
+# Original Author: Andrey Zhakov                                               #
+# Original Date: 2008-09-04                                                    #
+# Change Author:                                                               #
+# Change Date:                                                                 #
+# Change:                                                                      #
+################################################################################
+
+#
+# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
+#       TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+#       THE SOURCED FILES ONLY.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source suite/vcol/inc/vcol_init_vars.pre
+
+#------------------------------------------------------------------------------#
+# Cleanup
+--source suite/vcol/inc/vcol_cleanup.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+# Set the session storage engine
+eval SET @@session.storage_engine = 'maria';
+
+##### Workarounds for known open engine specific bugs
+#     none
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/vcol/inc/vcol_handler.inc
+
+#------------------------------------------------------------------------------#
+# Execute storage engine specific tests
+
+#------------------------------------------------------------------------------#
+# Cleanup
+--source suite/vcol/inc/vcol_cleanup.inc

=== modified file 'storage/maria/ha_maria.cc'
--- a/storage/maria/ha_maria.cc	2010-07-25 15:09:21 +0000
+++ b/storage/maria/ha_maria.cc	2010-08-03 09:49:25 +0000
@@ -468,7 +468,7 @@
   recinfo_pos= recinfo;
   create_info->null_bytes= table_arg->s->null_bytes;
 
-  while (recpos < (uint) share->reclength)
+  while (recpos < (uint) share->stored_rec_length)
   {
     Field **field, *found= 0;
     minpos= share->reclength;

=== modified file 'storage/maria/ha_maria.h'
--- a/storage/maria/ha_maria.h	2010-07-23 20:37:21 +0000
+++ b/storage/maria/ha_maria.h	2010-08-03 09:49:25 +0000
@@ -148,6 +148,7 @@
   int assign_to_keycache(THD * thd, HA_CHECK_OPT * check_opt);
   int preload_keys(THD * thd, HA_CHECK_OPT * check_opt);
   bool check_if_incompatible_data(HA_CREATE_INFO * info, uint table_changes);
+  bool check_if_supported_virtual_columns(void) { return TRUE;}
 #ifdef HAVE_REPLICATION
   int dump(THD * thd, int fd);
   int net_read_dump(NET * net);