1# 2# Tests for cassandra storage engine 3# 4if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'cassandra' AND support IN ('YES', 'DEFAULT', 'ENABLED')`) 5{ 6 --skip Test requires Cassandra. 7} 8 9--disable_warnings 10drop table if exists t0, t1; 11--enable_warnings 12 13--echo # 14--echo # Check variables and status counters 15--echo # 16show status like 'cassandra%'; 17show variables like 'cassandra%'; 18 19--echo # 20--echo # Test various errors on table creation. 21--echo # 22--error ER_REQUIRES_PRIMARY_KEY 23create table t1 (a int) engine=cassandra 24 thrift_host='localhost' keyspace='foo' column_family='colfam'; 25 26--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE 27create table t1 (a int primary key, b int) engine=cassandra 28 thrift_host='localhost' keyspace='foo' column_family='colfam'; 29 30--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE 31create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 32 thrift_host='127.0.0.2' keyspace='foo' column_family='colfam'; 33 34--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE 35create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 36 thrift_host='localhost' keyspace='no_such_keyspace' column_family='colfam'; 37 38# No column family specified 39--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE 40create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 41 thrift_host='localhost' keyspace='no_such_keyspace'; 42 43############################################################################ 44## Cassandra initialization 45############################################################################ 46 47# Step 1: remove the keyspace that could be left over from the previous test 48--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_cleanup.cql 49--write_file $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql 50drop keyspace mariadbtest2; 51EOF 52--error 0,1,2 53--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql 54 55# Step 2: create new keyspace and test column families 56--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cql 57--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cql 58 59CREATE KEYSPACE mariadbtest2 60 WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy' 61 AND strategy_options:replication_factor='1'; 62 63USE mariadbtest2; 64create columnfamily cf1 ( pk varchar primary key, data1 varchar, data2 bigint); 65 66create columnfamily cf2 (rowkey bigint primary key, a bigint); 67 68create columnfamily cf3 (rowkey bigint primary key, intcol int); 69 70create columnfamily cf4 (rowkey bigint primary key, datecol timestamp); 71 72create columnfamily cf5 (rowkey bigint primary key, uuidcol uuid); 73 74create columnfamily cf6 (rowkey uuid primary key, col1 int); 75 76create columnfamily cf7 (rowkey int primary key, boolcol boolean); 77 78create columnfamily cf8 (rowkey varchar primary key, countercol counter); 79update cf8 set countercol=countercol+1 where rowkey='cnt1'; 80update cf8 set countercol=countercol+100 where rowkey='cnt2'; 81 82create columnfamily cf9 (rowkey varchar primary key, varint_col varint); 83insert into cf9 (rowkey, varint_col) values ('val-01', 1); 84insert into cf9 (rowkey, varint_col) values ('val-0x123456', 1193046); 85insert into cf9 (rowkey, varint_col) values ('val-0x12345678', 305419896); 86 87create columnfamily cf11 (rowkey varchar primary key, decimal_col decimal); 88insert into cf11 (rowkey, decimal_col) values ('val_0.5', 0.5); 89insert into cf11 (rowkey, decimal_col) values ('val_1.5', 1.5); 90insert into cf11 (rowkey, decimal_col) values ('val_1234', 1234); 91 92create columnfamily cf12 (rowkey varchar primary key, decimal_col decimal); 93 94create columnfamily cf13 (rowkey int primary key, b blob); 95 96create columnfamily cf14 ( rowkey int primary key, a int ); 97 98EOF 99--error 0,1,2 100--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_init.cql 101 102 103# Step 3: Cassandra's CQL doesn't allow certain kinds of queries. Run them in 104# CLI 105--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cli 106--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cli 107use mariadbtest2; 108CREATE COLUMN FAMILY cf10 109 WITH comparator = UTF8Type 110 AND key_validation_class=UTF8Type 111 AND default_validation_class = UTF8Type; 112 113CREATE COLUMN FAMILY cfd1 114 WITH comparator = UTF8Type 115 AND key_validation_class=UTF8Type 116 AND default_validation_class = UTF8Type; 117SET cfd1['1']['very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_very_long_name']='1'; 118 119CREATE COLUMN FAMILY cfd2 120 WITH comparator = UTF8Type 121 AND key_validation_class=Int32Type 122 AND default_validation_class = UTF8Type; 123 124EOF 125 126--error 0,1,2 127--system cassandra-cli -f $MYSQLTEST_VARDIR/cassandra_test_init.cli 128 129############################################################################ 130## Cassandra initialization ends 131############################################################################ 132 133--echo # Now, create a table for real and insert data 134create table t1 (pk varchar(36) primary key, data1 varchar(60), data2 bigint) engine=cassandra 135 thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1'; 136 137--echo # Just in case there were left-overs from previous: 138delete from t1; 139select * from t1; 140 141insert into t1 values ('rowkey10', 'data1-value', 123456); 142insert into t1 values ('rowkey11', 'data1-value2', 34543); 143insert into t1 values ('rowkey12', 'data1-value3', 454); 144select * from t1; 145 146explain 147select * from t1 where pk='rowkey11'; 148select * from t1 where pk='rowkey11'; 149 150# Deletion functions weirdly: it sets all columns to NULL 151# but when If I do this in cassandra-cli: 152# 153# del cf1[ascii('rowkey10')] 154# 155# Subsequent 'list cf1' command also gives 156# 157# RowKey: rowkey10 158# 159# without any columns. 160# 161# CQL seems to simply ignore all "incomplete" records. 162 163delete from t1 where pk='rowkey11'; 164select * from t1; 165 166delete from t1; 167select * from t1; 168 169--echo # 170--echo # A query with filesort (check that table_flags() & HA_REC_NOT_IN_SEQ, 171--echo # also check ::rnd_pos() 172--echo # 173insert into t1 values ('rowkey10', 'data1-value', 123456); 174insert into t1 values ('rowkey11', 'data1-value2', 34543); 175insert into t1 values ('rowkey12', 'data1-value3', 454); 176select * from t1 order by data2; 177 178delete from t1; 179drop table t1; 180 181--echo # 182--echo # MDEV-476: Cassandra: Server crashes in calculate_key_len on DELETE with ORDER BY 183--echo # 184CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA 185 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 186 187INSERT INTO t1 VALUES (1,1),(2,2); 188DELETE FROM t1 ORDER BY a LIMIT 1; 189 190DROP TABLE t1; 191 192--echo # 193--echo # Batched INSERT 194--echo # 195show variables like 'cassandra_insert_batch_size'; 196show status like 'cassandra_row_insert%'; 197CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA 198 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 199 200delete from t1; 201INSERT INTO t1 VALUES (1,1),(2,2); 202DELETE FROM t1 ORDER BY a LIMIT 1; 203 204DROP TABLE t1; 205show status like 'cassandra_row_insert%'; 206 207--echo # FLUSH STATUS doesn't work for our variables, just like with InnoDB. 208flush status; 209show status like 'cassandra_row_insert%'; 210 211--echo # 212--echo # Batched Key Access 213--echo # 214 215--echo # Control variable (we are not yet able to make use of MRR's buffer) 216show variables like 'cassandra_multi%'; 217 218--echo # MRR-related status variables: 219show status like 'cassandra_multi%'; 220 221CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA 222 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 223delete from t1; 224INSERT INTO t1 VALUES (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); 225 226set @tmp_jcl=@@join_cache_level; 227set join_cache_level=8; 228explain select * from t1 A, t1 B where B.rowkey=A.a; 229 230select * from t1 A, t1 B where B.rowkey=A.a; 231show status like 'cassandra_multi%'; 232 233# The following INSERTs are really UPDATEs 234insert into t1 values(1, 8); 235insert into t1 values(3, 8); 236insert into t1 values(5, 8); 237insert into t1 values(7, 8); 238 239select * from t1 A, t1 B where B.rowkey=A.a; 240show status like 'cassandra_multi%'; 241 242delete from t1; 243drop table t1; 244 245--echo # 246--echo # MDEV-480: TRUNCATE TABLE on a Cassandra table does not remove rows 247--echo # 248CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA 249 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 250INSERT INTO t1 VALUES (0,0),(1,1),(2,2); 251truncate table t1; 252select * from t1; 253drop table t1; 254 255--echo # 256--echo # MDEV-494, part #1: phantom row for big full-scan selects 257--echo # 258create table t0 (a int); 259insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); 260 261CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA 262 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 263 264insert into t1 select A.a + 10 * B.a + 100*C.a, 12345 from t0 A, t0 B, t0 C; 265 266select count(*) from t1; 267select count(*) from t1 where a=12345; 268 269delete from t1; 270drop table t1; 271drop table t0; 272 273--echo # 32-bit INT type support 274CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, intcol INT) ENGINE=CASSANDRA 275 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf3'; 276insert into t1 values (10,10); 277insert into t1 values (12,12); 278delete from t1; 279drop table t1; 280 281--echo # 282--echo # Try accessing column family w/o explicitly defined columns 283--echo # 284--error ER_INTERNAL_ERROR 285CREATE TABLE t1 (my_primary_key varchar(10) PRIMARY KEY) ENGINE=CASSANDRA 286 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf10'; 287 288CREATE TABLE t1 (rowkey varchar(10) PRIMARY KEY) ENGINE=CASSANDRA 289 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf10'; 290 291DROP TABLE t1; 292 293--echo # 294--echo # Timestamp datatype support 295--echo # 296CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol timestamp) ENGINE=CASSANDRA 297 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4'; 298 299delete from t2; 300insert into t2 values (1, '2012-08-29 01:23:45'); 301select * from t2; 302delete from t2; 303 304--echo # MDEV-498: Cassandra: Inserting a timestamp does not work on a 32-bit system 305INSERT INTO t2 VALUES (10,'2012-12-12 12:12:12'); 306SELECT * FROM t2; 307delete from t2; 308 309--echo # 310--echo # (no MDEV#) Check that insert counters work correctly 311--echo # 312create table t0 (a int); 313insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); 314let $start_inserts=`select variable_value from information_schema.SESSION_STATUS 315 where variable_name ='Cassandra_row_inserts'`; 316let $start_insert_batches=`select variable_value from information_schema.SESSION_STATUS 317 where variable_name ='Cassandra_row_insert_batches'`; 318 319set cassandra_insert_batch_size=10; 320insert into t2 select A.a+10*B.a, now() from t0 A, t0 B; 321 322--disable_query_log 323eval select 324 (select variable_value - $start_inserts from information_schema.SESSION_STATUS 325 where variable_name ='Cassandra_row_inserts') 326 AS 'inserts', 327 (select variable_value - $start_insert_batches from information_schema.SESSION_STATUS 328 where variable_name ='Cassandra_row_insert_batches') 329 AS 'insert_batches'; 330--enable_query_log 331 332let $start_inserts=`select variable_value from information_schema.SESSION_STATUS 333 where variable_name ='Cassandra_row_inserts'`; 334let $start_insert_batches=`select variable_value from information_schema.SESSION_STATUS 335 where variable_name ='Cassandra_row_insert_batches'`; 336 337set cassandra_insert_batch_size=1; 338insert into t2 select A.a+10*B.a+100, now() from t0 A, t0 B; 339 340--disable_query_log 341eval select 342 (select variable_value - $start_inserts from information_schema.SESSION_STATUS 343 where variable_name ='Cassandra_row_inserts') 344 AS 'inserts', 345 (select variable_value - $start_insert_batches from information_schema.SESSION_STATUS 346 where variable_name ='Cassandra_row_insert_batches') 347 AS 'insert_batches'; 348--enable_query_log 349 350delete from t2; 351drop table t2; 352drop table t0; 353 354--echo # 355--echo # UUID datatype support 356--echo # 357#create columnfamily cf5 (rowkey bigint primary key, uuidcol uuid); 358CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA 359 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 360delete from t2; 361 362insert into t2 values(1,'9b5658dc-f32f-11e1-94cd-f46d046e9f09'); 363 364--error ER_WARN_DATA_OUT_OF_RANGE 365insert into t2 values(2,'not-an-uuid'); 366 367--error ER_WARN_DATA_OUT_OF_RANGE 368insert into t2 values(3,'9b5658dc-f32f-11e1=94cd-f46d046e9f09'); 369 370--error ER_WARN_DATA_OUT_OF_RANGE 371insert into t2 values(4,'9b5658dc-fzzf-11e1-94cd-f46d046e9f09'); 372 373--error ER_WARN_DATA_OUT_OF_RANGE 374insert into t2 values 375 (5,'9b5658dc-f11f-11e1-94cd-f46d046e9f09'), 376 (6,'9b5658dc-f11f011e1-94cd-f46d046e9f09'); 377 378select * from t2; 379 380delete from t2; 381drop table t2; 382 383# create columnfamily cf6 (rowkey uuid primary key, col1 int); 384CREATE TABLE t2 (rowkey char(36) PRIMARY KEY, col1 int) ENGINE=CASSANDRA 385 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf6'; 386delete from t2; 387 388insert into t2 values('9b5658dc-f32f-11e1-94cd-f46d046e9f09', 1234); 389 390--error ER_WARN_DATA_OUT_OF_RANGE 391insert into t2 values('not-an-uuid', 563); 392 393select * from t2; 394delete from t2; 395drop table t2; 396 397 398--echo # 399--echo # boolean datatype support 400--echo # 401# create columnfamily cf7 (rowkey int primary key, boolcol boolean); 402CREATE TABLE t2 (rowkey int PRIMARY KEY, boolcol bool) ENGINE=CASSANDRA 403 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf7'; 404insert into t2 values (0, 0); 405insert into t2 values (1, 1); 406select * from t2; 407delete from t2; 408drop table t2; 409 410 411--echo # 412--echo # Counter datatype support (read-only) 413--echo # 414# create columnfamily cf8 (rowkey int primary key, countercol counter); 415CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, countercol bigint) ENGINE=CASSANDRA 416 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf8'; 417select * from t2; 418drop table t2; 419 420--echo # 421--echo # Check that @@cassandra_default_thrift_host works 422--echo # 423show variables like 'cassandra_default_thrift_host'; 424set @tmp=@@cassandra_default_thrift_host; 425--error ER_GLOBAL_VARIABLE 426set cassandra_default_thrift_host='localhost'; 427set global cassandra_default_thrift_host='localhost'; 428 429--echo # Try creating a table without specifying thrift_host: 430CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, countercol bigint) ENGINE=CASSANDRA 431 keyspace='mariadbtest2' column_family = 'cf8'; 432select * from t2; 433drop table t2; 434 435set global cassandra_default_thrift_host=@tmp; 436 437--echo # 438--echo # Consistency settings 439--echo # 440show variables like 'cassandra_%consistency'; 441set @tmp=@@cassandra_write_consistency; 442 443--echo # Unfortunately, there is no easy way to check if setting have the effect.. 444set cassandra_write_consistency='ONE'; 445set cassandra_write_consistency='QUORUM'; 446set cassandra_write_consistency='LOCAL_QUORUM'; 447set cassandra_write_consistency='EACH_QUORUM'; 448set cassandra_write_consistency='ALL'; 449set cassandra_write_consistency='ANY'; 450set cassandra_write_consistency='TWO'; 451set cassandra_write_consistency='THREE'; 452 453set cassandra_write_consistency=@tmp; 454 455--echo # 456--echo # varint datatype support 457--echo # 458# create columnfamily cf9 (rowkey varchar primary key, varint_col varint); 459CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, varint_col varbinary(32)) ENGINE=CASSANDRA 460 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf9'; 461--sorted_result 462select rowkey, hex(varint_col) from t2; 463drop table t2; 464 465--echo # now, let's check what happens when MariaDB's column is not wide enough: 466CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, varint_col varbinary(2)) ENGINE=CASSANDRA 467 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf9'; 468--sorted_result 469--error ER_INTERNAL_ERROR 470select rowkey, hex(varint_col) from t2; 471drop table t2; 472 473--echo # 474--echo # Decimal datatype support 475--echo # 476CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA 477 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11'; 478select rowkey, hex(decimal_col) from t2; 479drop table t2; 480 481--echo # 482--echo # Mapping TIMESTAMP -> int64 483--echo # 484set @save_tz= @@time_zone; 485set time_zone='UTC'; 486CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol timestamp) ENGINE=CASSANDRA 487 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4'; 488insert into t2 values (1, '2012-08-29 01:23:45'); 489INSERT INTO t2 VALUES (10,'2012-08-29 01:23:46'); 490drop table t2; 491 492CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol bigint) ENGINE=CASSANDRA 493 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4'; 494select * from t2; 495delete from t2; 496drop table t2; 497set time_zone=@save_tz; 498 499--echo # 500--echo # Check whether changing parameters with ALTER TABLE works. 501--echo # 502CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA 503 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11'; 504 505#--error ER_INTERNAL_ERROR 506#alter table t2 column_family='cf9'; 507 508drop table t2; 509 510CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA 511 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11'; 512 513let $c1= `select variable_value from information_schema.global_status 514 where variable_name like 'cassandra_row_inserts'`; 515alter table t2 column_family='cf12'; 516let $c2= `select variable_value from information_schema.global_status 517 where variable_name like 'cassandra_row_inserts'`; 518 519--disable_query_log 520eval select ($c2 - $c1) as 'Writes made during ALTER TABLE'; 521--enable_query_log 522 523drop table t2; 524 525--echo # 526--echo # UPDATE command support 527--echo # 528create table t1 (pk varchar(36) primary key, data1 varchar(60), data2 bigint) engine=cassandra 529 thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1'; 530 531insert into t1 values ('rowkey10', 'data1-value', 123456); 532insert into t1 values ('rowkey11', 'data1-value2', 34543); 533insert into t1 values ('rowkey12', 'data1-value3', 454); 534select * from t1; 535 536update t1 set data1='updated-1' where pk='rowkey11'; 537select * from t1; 538update t1 set pk='new-rowkey12' where pk='rowkey12'; 539select * from t1; 540 541delete from t1; 542drop table t1; 543 544--echo # 545--echo # Dynamic columns support 546--echo # 547CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol blob DYNAMIC_COLUMN_STORAGE=1) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 548drop table t2; 549 550--echo #error: dynamic column is not a blob 551--error ER_WRONG_FIELD_SPEC 552CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36) DYNAMIC_COLUMN_STORAGE=1) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 553 554--echo #error: double dynamic column 555--error ER_WRONG_FIELD_SPEC 556CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol blob DYNAMIC_COLUMN_STORAGE=1, textcol blob DYNAMIC_COLUMN_STORAGE=1) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 557 558--echo # 559--echo # Dynamic column read 560--echo # 561#prepare data 562CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA 563 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 564delete from t2; 565insert into t2 values(1,'9b5658dc-f32f-11e1-94cd-f46d046e9f09'); 566insert into t2 values(2,'9b5658dc-f32f-11e1-94cd-f46d046e9f0a'); 567drop table t2; 568 569#test dynamic column read 570CREATE TABLE t2 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 571select rowkey, column_list(dyn), column_get(dyn, 'uuidcol' as char) from t2; 572drop table t2; 573 574#cleanup data 575CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA 576 thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 577delete from t2; 578drop table t2; 579 580--echo # 581--echo # Dynamic column insert 582--echo # 583CREATE TABLE t2 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5'; 584insert into t2 values (1, column_create("dyn1", 1, "dyn2", "two")); 585select rowkey, column_json(dyn) from t2; 586delete from t2; 587drop table t2; 588--echo # bigint 589CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2'; 590insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'a', 254324)); 591insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'a', 2543)); 592select rowkey, column_json(dyn) from t1; 593delete from t1; 594drop table t1; 595--echo # int 596CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf3'; 597insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'intcol', 254324)); 598insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'intcol', 2543)); 599select rowkey, column_json(dyn) from t1; 600delete from t1; 601drop table t1; 602--echo # timestamp 603CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4'; 604insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'datecol', 254324)); 605insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'datecol', 2543)); 606select rowkey, column_json(dyn) from t1; 607delete from t1; 608drop table t1; 609--echo # boolean 610CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf7'; 611insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'boolcol', 254324)); 612insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'boolcol', 0)); 613select rowkey, column_json(dyn) from t1; 614select rowkey, column_json(dyn) from t1; 615update t1 set dyn=column_add(dyn, "dyn2", null, "dyn3", "3"); 616select rowkey, column_json(dyn) from t1; 617update t1 set dyn=column_add(dyn, "dyn1", null) where rowkey= 1; 618select rowkey, column_json(dyn) from t1; 619update t1 set dyn=column_add(dyn, "dyn3", null, "a", "ddd"); 620select rowkey, column_json(dyn) from t1; 621update t1 set dyn=column_add(dyn, "12345678901234", "ddd"); 622select rowkey, column_json(dyn) from t1; 623update t1 set dyn=column_add(dyn, "12345678901234", null); 624select rowkey, column_json(dyn) from t1; 625update t1 set dyn=column_add(dyn, 'boolcol', null) where rowkey= 2; 626select rowkey, column_json(dyn) from t1; 627update t1 set rowkey= 3, dyn=column_add(dyn, "dyn1", null, 'boolcol', 0) where rowkey= 2; 628select rowkey, column_json(dyn) from t1; 629delete from t1; 630drop table t1; 631 632CREATE TABLE t1 (rowkey varchar(10) PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd1'; 633--error ER_INTERNAL_ERROR 634select * from t1; 635drop table t1; 636 637# MDEV-560 638CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 639ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2'; 640DELETE FROM t1; 641insert into t1 values (1, column_create("dyn", 1)); 642select rowkey, column_list(dyn) from t1; 643# Cleanup 644delete from t1; 645DROP TABLE t1; 646 647# MDEV-561 (incorrect format data to dynamic column) 648CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 649ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2'; 650--error ER_DYN_COL_WRONG_FORMAT 651insert into t1 values (1,'9b5658dc-f32f-11e1-94cd-f46d046e9f0a'); 652delete from t1; 653DROP TABLE t1; 654 655--echo # 656--echo # MDEV-565: Server crashes in ha_cassandra::write_row on 657--echo # inserting NULL into a dynamic column 658--echo # 659CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 660ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2'; 661insert into t1 values (1, NULL); 662delete from t1; 663DROP TABLE t1; 664 665--echo # 666--echo # strange side effect of Cassandra - remiving all columns of primary 667--echo # key removes all row. 668--echo # 669CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 670ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2'; 671INSERT INTO t1 VALUES(2,column_create("ab","ab")); 672select rowkey, column_json(dyn) from t1; 673UPDATE t1 set dyn=NULL; 674select rowkey, column_json(dyn) from t1; 675INSERT INTO t1 VALUES(2,column_create("ab","ab")); 676select rowkey, column_json(dyn) from t1; 677UPDATE t1 set dyn=""; 678select rowkey, column_json(dyn) from t1; 679delete from t1; 680DROP TABLE t1; 681 682--echo # 683--echo # MDEV-4005 #Server crashes on creating a Cassandra table 684--echo # with a mix of static and dynamic columns 685--echo # 686--disable_warnings 687DROP TABLE IF EXISTS t1, t2; 688--enable_warnings 689 690--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_cleanup.cql 691--write_file $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql 692drop keyspace bug; 693EOF 694--error 0,1,2 695--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql 696 697--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cql 698--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cql 699 700CREATE KEYSPACE bug 701 WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy' 702 AND strategy_options:replication_factor='1'; 703 704USE bug; 705create columnfamily cf1 ( pk int primary key, col_int int, a bigint ); 706EOF 707 708--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_init.cql 709 710 711CREATE TABLE t1 ( 712 pk int primary key, 713 col_int int, 714 dyncol blob DYNAMIC_COLUMN_STORAGE=yes 715) ENGINE=cassandra keyspace='bug' thrift_host = '127.0.0.1' column_family='cf1'; 716 717drop table t1; 718 719 720--echo # 721--echo # MDEV-4000: Mapping between Cassandra blob (BytesType) and MySQL BLOB does not work 722--echo # 723 724create table t1 (rowkey int primary key, b blob ) ENGINE=CASSANDRA thrift_host = '127.0.0.1' `keyspace`='mariadbtest2' `column_family`='cf13'; 725 726insert into t1 values (1, 'fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo-bar'); 727insert into t1 values (2, 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq-baz'); 728 729select * from t1; 730drop table t1; 731 732--echo # 733--echo # MDEV-4001: Cassandra: server crashes in ha_cassandra::end_bulk_insert on INSERT .. SELECT with a non-existing column 734--echo # 735create table t1 (rowkey int primary key, a int) ENGINE=cassandra thrift_host='127.0.0.1' keyspace='mariadbtest2' column_family='cf14'; 736--error ER_BAD_FIELD_ERROR 737insert into t1 (a) select b from t1; 738drop table t1; 739 740############################################################################ 741## Cassandra cleanup 742############################################################################ 743--disable_parsing 744drop columnfamily cf1; 745drop columnfamily cf2; 746drop columnfamily cf3; 747drop columnfamily cf4; 748drop columnfamily cf5; 749drop columnfamily cf6; 750drop columnfamily cf7; 751 752drop columnfamily cf13; 753drop columnfamily cf14; 754--enable_parsing 755############################################################################ 756## Cassandra cleanup ends 757############################################################################ 758 759