mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	- INSERT ... SELECT may call handler->end_bulk_insert() without having called handler->start_bulk_insert(). Let Cassandra SE handle this.
		
			
				
	
	
		
			759 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			759 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Tests for cassandra storage engine
 | 
						|
#
 | 
						|
if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'cassandra' AND support IN ('YES', 'DEFAULT', 'ENABLED')`)
 | 
						|
{
 | 
						|
  --skip Test requires Cassandra.
 | 
						|
}
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
drop table if exists t0, t1;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Check variables and status counters
 | 
						|
--echo #
 | 
						|
show status like 'cassandra%';
 | 
						|
show variables like 'cassandra%';
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Test various errors on table creation.
 | 
						|
--echo #
 | 
						|
--error ER_REQUIRES_PRIMARY_KEY
 | 
						|
create table t1 (a int) engine=cassandra 
 | 
						|
 thrift_host='localhost' keyspace='foo' column_family='colfam';
 | 
						|
 | 
						|
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE
 | 
						|
create table t1 (a int primary key, b int) engine=cassandra
 | 
						|
  thrift_host='localhost' keyspace='foo' column_family='colfam';
 | 
						|
 | 
						|
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE
 | 
						|
create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 
 | 
						|
  thrift_host='127.0.0.2' keyspace='foo' column_family='colfam';
 | 
						|
 | 
						|
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE
 | 
						|
create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 
 | 
						|
  thrift_host='localhost' keyspace='no_such_keyspace' column_family='colfam';
 | 
						|
 | 
						|
# No column family specified
 | 
						|
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE
 | 
						|
create table t1 (rowkey char(10) primary key, column1 char(10)) engine=cassandra 
 | 
						|
  thrift_host='localhost' keyspace='no_such_keyspace';
 | 
						|
 | 
						|
############################################################################
 | 
						|
## Cassandra initialization
 | 
						|
############################################################################
 | 
						|
 | 
						|
# Step 1: remove the keyspace that could be left over from the previous test
 | 
						|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_cleanup.cql
 | 
						|
--write_file $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
 | 
						|
drop keyspace mariadbtest2;
 | 
						|
EOF
 | 
						|
--error 0,1,2
 | 
						|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
 | 
						|
 | 
						|
# Step 2: create new keyspace and test column families
 | 
						|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cql
 | 
						|
--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cql
 | 
						|
 | 
						|
CREATE KEYSPACE mariadbtest2
 | 
						|
  WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy'
 | 
						|
  AND strategy_options:replication_factor='1';
 | 
						|
 | 
						|
USE mariadbtest2;
 | 
						|
create columnfamily cf1 ( pk varchar primary key, data1 varchar, data2 bigint);
 | 
						|
 | 
						|
create columnfamily cf2 (rowkey bigint primary key, a bigint);
 | 
						|
 | 
						|
create columnfamily cf3 (rowkey bigint primary key, intcol int);
 | 
						|
 | 
						|
create columnfamily cf4 (rowkey bigint primary key, datecol timestamp);
 | 
						|
 | 
						|
create columnfamily cf5 (rowkey bigint primary key, uuidcol uuid);
 | 
						|
 | 
						|
create columnfamily cf6 (rowkey uuid primary key, col1 int);
 | 
						|
 | 
						|
create columnfamily cf7 (rowkey int primary key, boolcol boolean);
 | 
						|
 | 
						|
create columnfamily cf8 (rowkey varchar primary key, countercol counter);
 | 
						|
update cf8 set countercol=countercol+1 where rowkey='cnt1';
 | 
						|
update cf8 set countercol=countercol+100 where rowkey='cnt2';
 | 
						|
 | 
						|
create columnfamily cf9 (rowkey varchar primary key, varint_col varint);
 | 
						|
insert into cf9 (rowkey, varint_col) values ('val-01', 1);
 | 
						|
insert into cf9 (rowkey, varint_col) values ('val-0x123456', 1193046);
 | 
						|
insert into cf9 (rowkey, varint_col) values ('val-0x12345678', 305419896);
 | 
						|
 | 
						|
create columnfamily cf11 (rowkey varchar primary key, decimal_col decimal);
 | 
						|
insert into cf11 (rowkey, decimal_col) values ('val_0.5', 0.5);
 | 
						|
insert into cf11 (rowkey, decimal_col) values ('val_1.5', 1.5);
 | 
						|
insert into cf11 (rowkey, decimal_col) values ('val_1234', 1234);
 | 
						|
 | 
						|
create columnfamily cf12 (rowkey varchar primary key, decimal_col decimal);
 | 
						|
 | 
						|
create columnfamily cf13 (rowkey int primary key, b blob);
 | 
						|
 | 
						|
create columnfamily cf14 ( rowkey int primary key, a int );
 | 
						|
 | 
						|
EOF
 | 
						|
--error 0,1,2
 | 
						|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_init.cql
 | 
						|
 | 
						|
 | 
						|
# Step 3: Cassandra's CQL doesn't allow certain kinds of queries. Run them in
 | 
						|
# CLI
 | 
						|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cli
 | 
						|
--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cli
 | 
						|
use mariadbtest2;
 | 
						|
CREATE COLUMN FAMILY cf10
 | 
						|
  WITH comparator = UTF8Type
 | 
						|
  AND key_validation_class=UTF8Type
 | 
						|
  AND default_validation_class = UTF8Type;
 | 
						|
 | 
						|
CREATE COLUMN FAMILY cfd1
 | 
						|
  WITH comparator = UTF8Type
 | 
						|
  AND key_validation_class=UTF8Type 
 | 
						|
  AND default_validation_class = UTF8Type;
 | 
						|
SET 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';
 | 
						|
 | 
						|
CREATE COLUMN FAMILY cfd2 
 | 
						|
  WITH comparator = UTF8Type
 | 
						|
    AND key_validation_class=Int32Type
 | 
						|
    AND default_validation_class = UTF8Type;
 | 
						|
 | 
						|
EOF
 | 
						|
 | 
						|
--error 0,1,2
 | 
						|
--system cassandra-cli -f $MYSQLTEST_VARDIR/cassandra_test_init.cli
 | 
						|
 | 
						|
############################################################################
 | 
						|
## Cassandra initialization ends
 | 
						|
############################################################################
 | 
						|
 | 
						|
--echo # Now, create a table for real and insert data
 | 
						|
create table t1 (pk varchar(36) primary key, data1 varchar(60), data2 bigint) engine=cassandra 
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1';
 | 
						|
 | 
						|
--echo # Just in case there were left-overs from previous:
 | 
						|
delete from t1;
 | 
						|
select * from t1;
 | 
						|
 | 
						|
insert into t1 values ('rowkey10', 'data1-value', 123456);
 | 
						|
insert into t1 values ('rowkey11', 'data1-value2', 34543);
 | 
						|
insert into t1 values ('rowkey12', 'data1-value3', 454);
 | 
						|
select * from t1;
 | 
						|
 | 
						|
explain
 | 
						|
select * from t1 where pk='rowkey11';
 | 
						|
select * from t1 where pk='rowkey11';
 | 
						|
 | 
						|
# Deletion functions weirdly: it sets all columns to NULL
 | 
						|
#   but when If I do this in cassandra-cli:
 | 
						|
#
 | 
						|
#     del cf1[ascii('rowkey10')]
 | 
						|
#
 | 
						|
# Subsequent 'list cf1' command also gives
 | 
						|
#
 | 
						|
#    RowKey: rowkey10
 | 
						|
#
 | 
						|
# without any columns.
 | 
						|
#
 | 
						|
# CQL seems to simply ignore all "incomplete" records. 
 | 
						|
 | 
						|
delete from t1 where pk='rowkey11';
 | 
						|
select * from t1;
 | 
						|
 | 
						|
delete from t1;
 | 
						|
select * from t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # A query with filesort (check that table_flags() & HA_REC_NOT_IN_SEQ,
 | 
						|
--echo #  also check ::rnd_pos()
 | 
						|
--echo #
 | 
						|
insert into t1 values ('rowkey10', 'data1-value', 123456);
 | 
						|
insert into t1 values ('rowkey11', 'data1-value2', 34543);
 | 
						|
insert into t1 values ('rowkey12', 'data1-value3', 454);
 | 
						|
select * from t1 order by data2;
 | 
						|
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-476: Cassandra: Server crashes in calculate_key_len on DELETE with ORDER BY
 | 
						|
--echo #
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
 | 
						|
INSERT INTO t1 VALUES (1,1),(2,2);
 | 
						|
DELETE FROM t1 ORDER BY a LIMIT 1;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Batched INSERT
 | 
						|
--echo #
 | 
						|
show variables like 'cassandra_insert_batch_size';
 | 
						|
show status like 'cassandra_row_insert%';
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
 | 
						|
delete from t1;
 | 
						|
INSERT INTO t1 VALUES (1,1),(2,2);
 | 
						|
DELETE FROM t1 ORDER BY a LIMIT 1;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
show status like 'cassandra_row_insert%';
 | 
						|
 | 
						|
--echo # FLUSH STATUS doesn't work for our variables, just like with InnoDB.
 | 
						|
flush status;
 | 
						|
show status like 'cassandra_row_insert%';
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Batched Key Access
 | 
						|
--echo #
 | 
						|
 | 
						|
--echo # Control variable (we are not yet able to make use of MRR's buffer)
 | 
						|
show variables like 'cassandra_multi%';
 | 
						|
 | 
						|
--echo # MRR-related status variables:
 | 
						|
show status like 'cassandra_multi%';
 | 
						|
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
delete from t1;
 | 
						|
INSERT INTO t1 VALUES (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9);
 | 
						|
 | 
						|
set @tmp_jcl=@@join_cache_level;
 | 
						|
set join_cache_level=8;
 | 
						|
explain select * from t1 A, t1 B where B.rowkey=A.a;
 | 
						|
 | 
						|
select * from t1 A, t1 B where B.rowkey=A.a;
 | 
						|
show status like 'cassandra_multi%';
 | 
						|
 | 
						|
# The following INSERTs are really UPDATEs
 | 
						|
insert into t1 values(1, 8);
 | 
						|
insert into t1 values(3, 8);
 | 
						|
insert into t1 values(5, 8);
 | 
						|
insert into t1 values(7, 8);
 | 
						|
 | 
						|
select * from t1 A, t1 B where B.rowkey=A.a;
 | 
						|
show status like 'cassandra_multi%';
 | 
						|
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-480: TRUNCATE TABLE on a Cassandra table does not remove rows
 | 
						|
--echo #
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
INSERT INTO t1 VALUES (0,0),(1,1),(2,2);
 | 
						|
truncate table t1;
 | 
						|
select * from t1;
 | 
						|
drop table t1;
 | 
						|
 
 | 
						|
--echo #
 | 
						|
--echo # MDEV-494, part #1: phantom row for big full-scan selects
 | 
						|
--echo #
 | 
						|
create table t0 (a int);
 | 
						|
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
 | 
						|
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, a BIGINT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
 | 
						|
insert into t1 select A.a + 10 * B.a + 100*C.a, 12345 from t0 A, t0 B, t0 C;
 | 
						|
 | 
						|
select count(*) from t1;
 | 
						|
select count(*) from t1 where a=12345;
 | 
						|
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
drop table t0;
 | 
						|
 | 
						|
--echo # 32-bit INT type support
 | 
						|
CREATE TABLE t1 (rowkey BIGINT PRIMARY KEY, intcol INT) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf3';
 | 
						|
insert into t1 values (10,10);
 | 
						|
insert into t1 values (12,12);
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # Try accessing column family w/o explicitly defined columns
 | 
						|
--echo #
 | 
						|
--error ER_INTERNAL_ERROR
 | 
						|
CREATE TABLE t1 (my_primary_key varchar(10) PRIMARY KEY) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf10';
 | 
						|
 | 
						|
CREATE TABLE t1 (rowkey varchar(10) PRIMARY KEY) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf10';
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # Timestamp datatype support
 | 
						|
--echo #
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol timestamp) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4';
 | 
						|
 | 
						|
delete from t2;
 | 
						|
insert into t2 values (1, '2012-08-29 01:23:45');
 | 
						|
select * from t2;
 | 
						|
delete from t2;
 | 
						|
 | 
						|
--echo # MDEV-498: Cassandra: Inserting a timestamp does not work on a 32-bit system
 | 
						|
INSERT INTO t2 VALUES (10,'2012-12-12 12:12:12');
 | 
						|
SELECT * FROM t2;
 | 
						|
delete from t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # (no MDEV#) Check that insert counters work correctly
 | 
						|
--echo #
 | 
						|
create table t0 (a int);
 | 
						|
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
 | 
						|
let $start_inserts=`select variable_value from information_schema.SESSION_STATUS 
 | 
						|
                   where variable_name ='Cassandra_row_inserts'`;
 | 
						|
let $start_insert_batches=`select variable_value from information_schema.SESSION_STATUS 
 | 
						|
                          where variable_name ='Cassandra_row_insert_batches'`;
 | 
						|
 | 
						|
set cassandra_insert_batch_size=10;
 | 
						|
insert into t2 select A.a+10*B.a, now() from t0 A, t0 B;
 | 
						|
 | 
						|
--disable_query_log
 | 
						|
eval select
 | 
						|
   (select variable_value - $start_inserts from information_schema.SESSION_STATUS 
 | 
						|
     where variable_name ='Cassandra_row_inserts') 
 | 
						|
   AS 'inserts',
 | 
						|
   (select variable_value - $start_insert_batches from information_schema.SESSION_STATUS 
 | 
						|
     where variable_name ='Cassandra_row_insert_batches') 
 | 
						|
   AS 'insert_batches';
 | 
						|
--enable_query_log
 | 
						|
 | 
						|
let $start_inserts=`select variable_value from information_schema.SESSION_STATUS 
 | 
						|
                   where variable_name ='Cassandra_row_inserts'`;
 | 
						|
let $start_insert_batches=`select variable_value from information_schema.SESSION_STATUS 
 | 
						|
                          where variable_name ='Cassandra_row_insert_batches'`;
 | 
						|
 | 
						|
set cassandra_insert_batch_size=1;
 | 
						|
insert into t2 select A.a+10*B.a+100, now() from t0 A, t0 B;
 | 
						|
 | 
						|
--disable_query_log
 | 
						|
eval select
 | 
						|
   (select variable_value - $start_inserts from information_schema.SESSION_STATUS 
 | 
						|
     where variable_name ='Cassandra_row_inserts') 
 | 
						|
   AS 'inserts',
 | 
						|
   (select variable_value - $start_insert_batches from information_schema.SESSION_STATUS 
 | 
						|
     where variable_name ='Cassandra_row_insert_batches') 
 | 
						|
   AS 'insert_batches';
 | 
						|
--enable_query_log
 | 
						|
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
drop table t0;
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # UUID datatype support
 | 
						|
--echo #
 | 
						|
#create columnfamily cf5 (rowkey bigint primary key, uuidcol uuid);
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
delete from t2;
 | 
						|
 | 
						|
insert into t2 values(1,'9b5658dc-f32f-11e1-94cd-f46d046e9f09');
 | 
						|
 | 
						|
--error ER_WARN_DATA_OUT_OF_RANGE
 | 
						|
insert into t2 values(2,'not-an-uuid');
 | 
						|
 | 
						|
--error ER_WARN_DATA_OUT_OF_RANGE
 | 
						|
insert into t2 values(3,'9b5658dc-f32f-11e1=94cd-f46d046e9f09');
 | 
						|
 | 
						|
--error ER_WARN_DATA_OUT_OF_RANGE
 | 
						|
insert into t2 values(4,'9b5658dc-fzzf-11e1-94cd-f46d046e9f09');
 | 
						|
 | 
						|
--error ER_WARN_DATA_OUT_OF_RANGE
 | 
						|
insert into t2 values
 | 
						|
 (5,'9b5658dc-f11f-11e1-94cd-f46d046e9f09'),
 | 
						|
 (6,'9b5658dc-f11f011e1-94cd-f46d046e9f09');
 | 
						|
 | 
						|
select * from t2;
 | 
						|
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
# create columnfamily cf6 (rowkey uuid primary key, col1 int);
 | 
						|
CREATE TABLE t2 (rowkey char(36) PRIMARY KEY, col1 int) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf6';
 | 
						|
delete from t2;
 | 
						|
 | 
						|
insert into t2 values('9b5658dc-f32f-11e1-94cd-f46d046e9f09', 1234);
 | 
						|
 | 
						|
--error ER_WARN_DATA_OUT_OF_RANGE
 | 
						|
insert into t2 values('not-an-uuid', 563);
 | 
						|
 | 
						|
select * from t2;
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # boolean datatype support
 | 
						|
--echo #
 | 
						|
# create columnfamily cf7 (rowkey int primary key, boolcol boolean);
 | 
						|
CREATE TABLE t2 (rowkey int PRIMARY KEY, boolcol bool) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf7';
 | 
						|
insert into t2 values (0, 0);
 | 
						|
insert into t2 values (1, 1);
 | 
						|
select * from t2;
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # Counter datatype support (read-only)
 | 
						|
--echo #
 | 
						|
# create columnfamily cf8 (rowkey int primary key, countercol counter);
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, countercol bigint) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf8';
 | 
						|
select * from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo # 
 | 
						|
--echo # Check that @@cassandra_default_thrift_host works
 | 
						|
--echo #
 | 
						|
show variables like 'cassandra_default_thrift_host';
 | 
						|
set @tmp=@@cassandra_default_thrift_host;
 | 
						|
--error ER_GLOBAL_VARIABLE
 | 
						|
set cassandra_default_thrift_host='localhost';
 | 
						|
set global cassandra_default_thrift_host='localhost';
 | 
						|
 | 
						|
--echo # Try creating a table without specifying thrift_host:
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, countercol bigint) ENGINE=CASSANDRA
 | 
						|
  keyspace='mariadbtest2' column_family = 'cf8';
 | 
						|
select * from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
set global cassandra_default_thrift_host=@tmp;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Consistency settings
 | 
						|
--echo #
 | 
						|
show variables like 'cassandra_%consistency';
 | 
						|
set @tmp=@@cassandra_write_consistency;
 | 
						|
 | 
						|
--echo # Unfortunately, there is no easy way to check if setting have the effect..
 | 
						|
set cassandra_write_consistency='ONE';
 | 
						|
set cassandra_write_consistency='QUORUM';
 | 
						|
set cassandra_write_consistency='LOCAL_QUORUM';
 | 
						|
set cassandra_write_consistency='EACH_QUORUM';
 | 
						|
set cassandra_write_consistency='ALL';
 | 
						|
set cassandra_write_consistency='ANY';
 | 
						|
set cassandra_write_consistency='TWO';
 | 
						|
set cassandra_write_consistency='THREE';
 | 
						|
 | 
						|
set cassandra_write_consistency=@tmp;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # varint datatype support
 | 
						|
--echo #
 | 
						|
# create columnfamily cf9 (rowkey varchar primary key, varint_col varint);
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, varint_col varbinary(32)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf9';
 | 
						|
--sorted_result
 | 
						|
select rowkey, hex(varint_col) from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo # now, let's check what happens when MariaDB's column is not wide enough:
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, varint_col varbinary(2)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf9';
 | 
						|
--sorted_result
 | 
						|
--error ER_INTERNAL_ERROR
 | 
						|
select rowkey, hex(varint_col) from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Decimal datatype support
 | 
						|
--echo #
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11';
 | 
						|
select rowkey, hex(decimal_col) from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Mapping TIMESTAMP -> int64
 | 
						|
--echo #
 | 
						|
set @save_tz= @@time_zone;
 | 
						|
set time_zone='UTC';
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol timestamp) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4';
 | 
						|
insert into t2 values (1, '2012-08-29 01:23:45');
 | 
						|
INSERT INTO t2 VALUES (10,'2012-08-29 01:23:46');
 | 
						|
drop table t2;
 | 
						|
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, datecol bigint) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4';
 | 
						|
select * from t2;
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
set time_zone=@save_tz;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Check whether changing parameters with ALTER TABLE works.
 | 
						|
--echo #
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11';
 | 
						|
 | 
						|
#--error ER_INTERNAL_ERROR
 | 
						|
#alter table t2 column_family='cf9';
 | 
						|
 | 
						|
drop table t2;
 | 
						|
 | 
						|
CREATE TABLE t2 (rowkey varchar(32) PRIMARY KEY, decimal_col varbinary(32)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf11';
 | 
						|
 | 
						|
let $c1= `select variable_value from information_schema.global_status 
 | 
						|
          where variable_name like 'cassandra_row_inserts'`;
 | 
						|
alter table t2 column_family='cf12';
 | 
						|
let $c2= `select variable_value from information_schema.global_status 
 | 
						|
          where variable_name like 'cassandra_row_inserts'`;
 | 
						|
 | 
						|
--disable_query_log
 | 
						|
eval select ($c2 - $c1) as 'Writes made during ALTER TABLE';
 | 
						|
--enable_query_log
 | 
						|
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # UPDATE command support
 | 
						|
--echo #
 | 
						|
create table t1 (pk varchar(36) primary key, data1 varchar(60), data2 bigint) engine=cassandra 
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1';
 | 
						|
 | 
						|
insert into t1 values ('rowkey10', 'data1-value', 123456);
 | 
						|
insert into t1 values ('rowkey11', 'data1-value2', 34543);
 | 
						|
insert into t1 values ('rowkey12', 'data1-value3', 454);
 | 
						|
select * from t1;
 | 
						|
 | 
						|
update t1 set data1='updated-1' where pk='rowkey11';
 | 
						|
select * from t1;
 | 
						|
update t1 set pk='new-rowkey12' where pk='rowkey12';
 | 
						|
select * from t1;
 | 
						|
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Dynamic columns support
 | 
						|
--echo #
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol blob DYNAMIC_COLUMN_STORAGE=1) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo #error: dynamic column is not a blob
 | 
						|
--error ER_WRONG_FIELD_SPEC
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36) DYNAMIC_COLUMN_STORAGE=1) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
 | 
						|
--echo #error: double dynamic column
 | 
						|
--error ER_WRONG_FIELD_SPEC
 | 
						|
CREATE 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';
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Dynamic column read
 | 
						|
--echo #
 | 
						|
#prepare data
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
delete from t2;
 | 
						|
insert into t2 values(1,'9b5658dc-f32f-11e1-94cd-f46d046e9f09');
 | 
						|
insert into t2 values(2,'9b5658dc-f32f-11e1-94cd-f46d046e9f0a');
 | 
						|
drop table t2;
 | 
						|
 | 
						|
#test dynamic column read
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
select rowkey, column_list(dyn), column_get(dyn, 'uuidcol' as char) from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
#cleanup data
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, uuidcol char(36)) ENGINE=CASSANDRA
 | 
						|
  thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # Dynamic column insert
 | 
						|
--echo #
 | 
						|
CREATE TABLE t2 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf5';
 | 
						|
insert into t2 values (1, column_create("dyn1", 1, "dyn2", "two")); 
 | 
						|
select rowkey, column_json(dyn) from t2;
 | 
						|
delete from t2;
 | 
						|
drop table t2;
 | 
						|
--echo # bigint
 | 
						|
CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf2';
 | 
						|
insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'a', 254324)); 
 | 
						|
insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'a', 2543)); 
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
--echo # int
 | 
						|
CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf3';
 | 
						|
insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'intcol', 254324)); 
 | 
						|
insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'intcol', 2543)); 
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
--echo # timestamp
 | 
						|
CREATE TABLE t1 (rowkey bigint PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf4';
 | 
						|
insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'datecol', 254324)); 
 | 
						|
insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'datecol', 2543)); 
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
--echo # boolean
 | 
						|
CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cf7';
 | 
						|
insert into t1 values (1, column_create("dyn1", 1, "dyn2", "two", 'boolcol', 254324)); 
 | 
						|
insert into t1 values (2, column_create("dyn1", 1, "dyn2", "two", 'boolcol', 0)); 
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, "dyn2", null, "dyn3", "3"); 
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, "dyn1", null) where rowkey= 1;
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, "dyn3", null, "a", "ddd");
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, "12345678901234", "ddd");
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, "12345678901234", null);
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set dyn=column_add(dyn, 'boolcol', null) where rowkey= 2;
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
update t1 set rowkey= 3, dyn=column_add(dyn, "dyn1", null, 'boolcol', 0) where rowkey= 2;
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
delete from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (rowkey varchar(10) PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd1';
 | 
						|
--error ER_INTERNAL_ERROR
 | 
						|
select * from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
# MDEV-560
 | 
						|
CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 
 | 
						|
ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2';
 | 
						|
DELETE FROM t1;
 | 
						|
insert into t1 values (1, column_create("dyn", 1));
 | 
						|
select rowkey, column_list(dyn) from t1;
 | 
						|
# Cleanup
 | 
						|
delete from t1;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
# MDEV-561 (incorrect format data to dynamic column)
 | 
						|
CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 
 | 
						|
ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2';
 | 
						|
--error ER_DYN_COL_WRONG_FORMAT
 | 
						|
insert into t1 values (1,'9b5658dc-f32f-11e1-94cd-f46d046e9f0a');
 | 
						|
delete from t1;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-565: Server crashes in ha_cassandra::write_row on
 | 
						|
--echo # inserting NULL into a dynamic column
 | 
						|
--echo #
 | 
						|
CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 
 | 
						|
ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2';
 | 
						|
insert into t1 values (1, NULL);
 | 
						|
delete from t1;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # strange side effect of Cassandra - remiving all columns of primary
 | 
						|
--echo # key removes all row.
 | 
						|
--echo #
 | 
						|
CREATE TABLE t1 (rowkey int PRIMARY KEY, dyn blob DYNAMIC_COLUMN_STORAGE=yes) 
 | 
						|
ENGINE=CASSANDRA thrift_host='localhost' keyspace='mariadbtest2' column_family = 'cfd2';
 | 
						|
INSERT INTO t1 VALUES(2,column_create("ab","ab"));
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
UPDATE t1 set dyn=NULL;
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
INSERT INTO t1 VALUES(2,column_create("ab","ab"));
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
UPDATE t1 set dyn="";
 | 
						|
select rowkey, column_json(dyn) from t1;
 | 
						|
delete from t1;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-4005 #Server crashes on creating a Cassandra table
 | 
						|
--echo # with a mix of static and dynamic columns
 | 
						|
--echo #
 | 
						|
--disable_warnings
 | 
						|
DROP TABLE IF EXISTS t1, t2;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_cleanup.cql
 | 
						|
--write_file $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
 | 
						|
drop keyspace bug;
 | 
						|
EOF
 | 
						|
--error 0,1,2
 | 
						|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_cleanup.cql
 | 
						|
 | 
						|
--remove_files_wildcard $MYSQLTEST_VARDIR cassandra_test_init.cql
 | 
						|
--write_file $MYSQLTEST_VARDIR/cassandra_test_init.cql
 | 
						|
 | 
						|
CREATE KEYSPACE bug
 | 
						|
  WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy'
 | 
						|
  AND strategy_options:replication_factor='1';
 | 
						|
 | 
						|
USE bug;
 | 
						|
create columnfamily cf1 ( pk int primary key, col_int int, a bigint );
 | 
						|
EOF
 | 
						|
 | 
						|
--system cqlsh -3 -f $MYSQLTEST_VARDIR/cassandra_test_init.cql
 | 
						|
 | 
						|
 | 
						|
CREATE TABLE t1 (
 | 
						|
 pk int primary key,
 | 
						|
 col_int int,
 | 
						|
 dyncol blob DYNAMIC_COLUMN_STORAGE=yes
 | 
						|
) ENGINE=cassandra keyspace='bug' thrift_host = '127.0.0.1' column_family='cf1';
 | 
						|
 | 
						|
drop table t1;
 | 
						|
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-4000: Mapping between Cassandra blob (BytesType) and MySQL BLOB does not work
 | 
						|
--echo #
 | 
						|
 | 
						|
create table t1 (rowkey int primary key, b blob ) ENGINE=CASSANDRA thrift_host = '127.0.0.1' `keyspace`='mariadbtest2' `column_family`='cf13';
 | 
						|
 | 
						|
insert into t1 values (1, 'fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo-bar');
 | 
						|
insert into t1 values (2, 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq-baz');
 | 
						|
 | 
						|
select * from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-4001: Cassandra: server crashes in ha_cassandra::end_bulk_insert on INSERT .. SELECT with a non-existing column
 | 
						|
--echo #
 | 
						|
create table t1 (rowkey int primary key, a int)  ENGINE=cassandra thrift_host='127.0.0.1' keyspace='mariadbtest2' column_family='cf14';
 | 
						|
--error ER_BAD_FIELD_ERROR
 | 
						|
insert into t1 (a) select b from t1;
 | 
						|
drop table t1;
 | 
						|
 | 
						|
############################################################################
 | 
						|
## Cassandra cleanup
 | 
						|
############################################################################
 | 
						|
--disable_parsing
 | 
						|
drop columnfamily cf1;
 | 
						|
drop columnfamily cf2;
 | 
						|
drop columnfamily cf3;
 | 
						|
drop columnfamily cf4;
 | 
						|
drop columnfamily cf5;
 | 
						|
drop columnfamily cf6;
 | 
						|
drop columnfamily cf7;
 | 
						|
 | 
						|
drop columnfamily cf13;
 | 
						|
drop columnfamily cf14;
 | 
						|
--enable_parsing
 | 
						|
############################################################################
 | 
						|
## Cassandra cleanup ends
 | 
						|
############################################################################
 | 
						|
 |