Fix for launchpad bug #612894
Support of virtual columns added to maria engine. mysql-test/suite/vcol/r/vcol_handler_maria.result: Basic tests for virtual column and maria engine. mysql-test/suite/vcol/t/vcol_handler_maria.test: Basic tests for virtual column and maria engine. storage/maria/ha_maria.cc: Support of virtual columns added to maria engine. storage/maria/ha_maria.h: Support of virtual columns added to maria engine.
This commit is contained in:
parent
a008a6eb35
commit
f8e270dbdc
76
mysql-test/suite/vcol/r/vcol_handler_maria.result
Normal file
76
mysql-test/suite/vcol/r/vcol_handler_maria.result
Normal file
@ -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;
|
50
mysql-test/suite/vcol/t/vcol_handler_maria.test
Normal file
50
mysql-test/suite/vcol/t/vcol_handler_maria.test
Normal file
@ -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
|
@ -468,7 +468,7 @@ static int table2maria(TABLE *table_arg, data_file_type row_type,
|
||||
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;
|
||||
|
@ -148,6 +148,7 @@ public:
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user