mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-26 15:31:55 +00:00

- Fixed issue where --remove-data-dir incorrectly defaulted to true feat(pt-online-schema-change): add support for TABLESPACE removal (#PT-2457) - Implemented detection and removal of TABLESPACE clause during schema changes
62 lines
1.5 KiB
SQL
62 lines
1.5 KiB
SQL
-- Sample table with tablespace for testing --remove-tablespace functionality
|
|
-- This requires MySQL 5.7+ for general tablespace support
|
|
|
|
-- Clean
|
|
-- Drop the database if it exists
|
|
DROP DATABASE IF EXISTS test_ts;
|
|
CREATE DATABASE IF NOT EXISTS test_ts;
|
|
USE test_ts;
|
|
|
|
DELIMITER $$
|
|
|
|
-- Procedure to delete tablespace as there is no IF EXIST for tablespace
|
|
CREATE PROCEDURE drop_tablespace_if_exists()
|
|
BEGIN
|
|
|
|
DECLARE ts_count INT;
|
|
|
|
SELECT COUNT(*) INTO ts_count
|
|
FROM information_schema.FILES
|
|
WHERE tablespace_name = 'test_tablespace';
|
|
|
|
IF ts_count > 0 THEN
|
|
SET @stmt := 'DROP TABLESPACE test_tablespace';
|
|
DROP TABLESPACE test_tablespace;
|
|
END IF;
|
|
END$$
|
|
|
|
DELIMITER ;
|
|
|
|
-- Call the procedure
|
|
CALL drop_tablespace_if_exists();
|
|
|
|
|
|
-- Create a general tablespace first (MySQL 5.7+)
|
|
CREATE TABLESPACE test_tablespace ADD DATAFILE 'test_tablespace.ibd';
|
|
|
|
-- Create table with tablespace
|
|
CREATE TABLE test_table (
|
|
id INT PRIMARY KEY,
|
|
name VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) TABLESPACE test_tablespace;
|
|
|
|
-- Insert some test data
|
|
INSERT INTO test_table (id, name) VALUES
|
|
(1, 'Alice'),
|
|
(2, 'Bob'),
|
|
(3, 'Charlie'),
|
|
(4, 'David'),
|
|
(5, 'Eve');
|
|
|
|
-- Create another table with tablespace for testing multiple tables
|
|
CREATE TABLE test_table2 (
|
|
id INT PRIMARY KEY,
|
|
description TEXT,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
) TABLESPACE test_tablespace;
|
|
|
|
INSERT INTO test_table2 (id, description) VALUES
|
|
(1, 'First record'),
|
|
(2, 'Second record'),
|
|
(3, 'Third record'); |