You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-07 03:22:57 +03:00
MCOL-533 Add lock to table_usage
Calling from multiple connections simultaneously is bad. This adds a lock preventing that.
This commit is contained in:
committed by
David Hall
parent
4b2b83acd9
commit
106a62222c
@@ -35,7 +35,15 @@ END //
|
|||||||
DROP PROCEDURE IF EXISTS `table_usage` //
|
DROP PROCEDURE IF EXISTS `table_usage` //
|
||||||
|
|
||||||
CREATE PROCEDURE table_usage (IN t_schema char(64), IN t_name char(64))
|
CREATE PROCEDURE table_usage (IN t_schema char(64), IN t_name char(64))
|
||||||
BEGIN
|
`table_usage`: BEGIN
|
||||||
|
|
||||||
|
DECLARE `locker` TINYINT UNSIGNED DEFAULT IS_USED_LOCK('table_usage');
|
||||||
|
|
||||||
|
IF `locker` IS NOT NULL THEN
|
||||||
|
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error acuqiring table_usage lock';
|
||||||
|
LEAVE `table_usage`;
|
||||||
|
END IF;
|
||||||
|
DO GET_LOCK('table_usage', 0);
|
||||||
DROP TABLE IF EXISTS columnstore_info.columnstore_columns;
|
DROP TABLE IF EXISTS columnstore_info.columnstore_columns;
|
||||||
DROP TABLE IF EXISTS columnstore_info.columnstore_files;
|
DROP TABLE IF EXISTS columnstore_info.columnstore_files;
|
||||||
CREATE TABLE columnstore_info.columnstore_columns engine=myisam as (select * from information_schema.columnstore_columns);
|
CREATE TABLE columnstore_info.columnstore_columns engine=myisam as (select * from information_schema.columnstore_columns);
|
||||||
@@ -67,6 +75,7 @@ group by table_schema, table_name
|
|||||||
END IF;
|
END IF;
|
||||||
DROP TABLE IF EXISTS columnstore_info.columnstore_columns;
|
DROP TABLE IF EXISTS columnstore_info.columnstore_columns;
|
||||||
DROP TABLE IF EXISTS columnstore_info.columnstore_files;
|
DROP TABLE IF EXISTS columnstore_info.columnstore_files;
|
||||||
|
DO RELEASE_LOCK('table_usage');
|
||||||
END //
|
END //
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS `compression_ratio` //
|
DROP PROCEDURE IF EXISTS `compression_ratio` //
|
||||||
|
Reference in New Issue
Block a user