1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

Merge pull request #2036 from mariadb-SergeyZefirov/MCOL-4766-UPDATE-INSERT-in-a-transaction-does-not-revert-back-extent-ranges-on-a-rollback

MCOL-4766 ROLLBACK kept ranges changed inside rolled back transaction
This commit is contained in:
Roman Nozdrin
2021-07-09 16:33:06 +03:00
committed by GitHub
9 changed files with 56 additions and 10 deletions

View File

@ -0,0 +1,27 @@
DROP DATABASE IF EXISTS MCOL4766;
CREATE DATABASE MCOL4766;
USE MCOL4766;
CREATE TABLE t(x integer) ENGINE=COLUMNSTORE;
INSERT INTO t(x) VALUES (1), (2);
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
table_schema table_name column_name min_value max_value
MCOL4766 t x 1 2
START TRANSACTION;
INSERT INTO t(x) VALUES (-1), (100);
ROLLBACK;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
table_schema table_name column_name min_value max_value
MCOL4766 t x NULL NULL
START TRANSACTION;
UPDATE t SET x = 100 WHERE x = 2;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
table_schema table_name column_name min_value max_value
MCOL4766 t x 1 100
ROLLBACK;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
table_schema table_name column_name min_value max_value
MCOL4766 t x NULL NULL
SELECT * FROM t;
x
1
2

View File

@ -0,0 +1,18 @@
--disable_warnings
DROP DATABASE IF EXISTS MCOL4766;
--enable_warnings
CREATE DATABASE MCOL4766;
USE MCOL4766;
CREATE TABLE t(x integer) ENGINE=COLUMNSTORE;
INSERT INTO t(x) VALUES (1), (2);
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
START TRANSACTION;
INSERT INTO t(x) VALUES (-1), (100);
ROLLBACK;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
START TRANSACTION;
UPDATE t SET x = 100 WHERE x = 2;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
ROLLBACK;
SELECT c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value FROM information_schema.columnstore_extents e, information_schema.columnstore_columns c WHERE c.table_schema='MCOL4766' and c.table_name='t' and c.column_name='x' and c.object_id=e.object_id;
SELECT * FROM t;