You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
105 lines
2.5 KiB
Plaintext
105 lines
2.5 KiB
Plaintext
#
|
|
# Test based on Jira MCOL-4222
|
|
# Author: Bharath, bharath.bokka@mariadb.com
|
|
#
|
|
-- source ../include/have_columnstore.inc
|
|
-- source include/have_innodb.inc
|
|
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS mcol_4222_db;
|
|
--enable_warnings
|
|
|
|
CREATE DATABASE mcol_4222_db;
|
|
USE mcol_4222_db;
|
|
|
|
#
|
|
# Scenario-1: Tables with Default NULL
|
|
#
|
|
CREATE TABLE t1_i (
|
|
`C_` varchar(100) DEFAULT NULL
|
|
) ENGINE=innodb DEFAULT CHARSET=utf8 ;
|
|
|
|
CREATE TABLE t1_cs (
|
|
`C_` varchar(100) DEFAULT NULL
|
|
) ENGINE=columnstore DEFAULT CHARSET=utf8 ;
|
|
|
|
# Populate tables
|
|
DELIMITER //;
|
|
CREATE PROCEDURE generate_data()
|
|
BEGIN NOT ATOMIC
|
|
DECLARE i INT DEFAULT 0;
|
|
TRUNCATE TABLE t1_i;
|
|
TRUNCATE TABLE t1_cs;
|
|
START TRANSACTION;
|
|
WHILE i < 70000 DO
|
|
INSERT INTO t1_i VALUES (i);
|
|
SET i = i + 1;
|
|
END WHILE;
|
|
COMMIT;
|
|
END//
|
|
DELIMITER ;//
|
|
|
|
CALL generate_data();
|
|
INSERT INTO t1_cs SELECT * FROM t1_i;
|
|
SELECT COUNT(*), SUM(t1_i.C_ IS NULL) FROM t1_i;
|
|
SELECT COUNT(*), SUM(t1_cs.C_ IS NULL) FROM t1_cs;
|
|
|
|
# Copy derived CS table to innodb table
|
|
CREATE TABLE t2 LIKE t1_i;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_cs) derived;
|
|
SELECT COUNT(*), SUM(C_ IS NULL) FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
# Copy derived innodb table to CS table
|
|
CREATE TABLE t2 LIKE t1_cs;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_i) derived;
|
|
SELECT COUNT(*), SUM(C_ IS NULL) FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
# Copy derived CS table to another CS table
|
|
CREATE TABLE t2 LIKE t1_cs;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_cs) derived;
|
|
SELECT COUNT(*), SUM(C_ IS NULL) FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
#
|
|
# Scenario-2: Tables with NOT NULL constraint and a default value
|
|
#
|
|
DROP TABLE IF EXISTS t1_i;
|
|
DROP TABLE IF EXISTS t1_cs;
|
|
|
|
CREATE TABLE t1_i (
|
|
`C_` varchar(100) NOT NULL DEFAULT 123
|
|
) ENGINE=innodb DEFAULT CHARSET=utf8 ;
|
|
|
|
CREATE TABLE t1_cs (
|
|
`C_` varchar(100) NOT NULL DEFAULT 123
|
|
) ENGINE=columnstore DEFAULT CHARSET=utf8 ;
|
|
|
|
# Populate tables
|
|
CALL generate_data();
|
|
INSERT INTO t1_cs SELECT * FROM t1_i;
|
|
SELECT COUNT(*), SUM(t1_i.C_ IS NULL) FROM t1_i;
|
|
SELECT COUNT(*), SUM(t1_cs.C_ IS NULL) FROM t1_cs;
|
|
|
|
# Copy derived CS table to innodb table
|
|
CREATE TABLE t2 LIKE t1_i;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_cs) derived;
|
|
SELECT * FROM t2 LIMIT 3;
|
|
DROP TABLE t2;
|
|
|
|
# Copy derived innodb table to CS table
|
|
CREATE TABLE t2 LIKE t1_cs;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_i) derived;
|
|
SELECT * FROM t2 LIMIT 3;
|
|
DROP TABLE t2;
|
|
|
|
# Copy derived CS table to another CS table
|
|
CREATE TABLE t2 LIKE t1_cs;
|
|
INSERT INTO t2 SELECT * FROM (SELECT * FROM t1_cs) derived;
|
|
SELECT * FROM t2 LIMIT 3;
|
|
DROP TABLE t2;
|
|
|
|
# Clean UP
|
|
DROP DATABASE mcol_4222_db;
|