mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-16757 Memory leak after adding manually min/max statistical data
for blob column ANALYZE TABLE <table> does not collect statistical data on min/max values for BLOB columns of <table>. However these values can be added into mysql.column_stats manually by executing proper statements. Unfortunately this led to a memory leak because the memory allocated for these values was never freed. This patch provides the server with a function to free memory allocated for min/max statistical values of BLOB types. Temporarily changed the test case until MDEV-16711 is fixed as without this fix the test case for MDEV-16757 did not fail only for 10.0.
This commit is contained in:
@ -544,5 +544,29 @@ drop database db1;
|
||||
drop database db2;
|
||||
drop table t1;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# MDEV-16757: manual addition of min/max statistics for BLOB
|
||||
#
|
||||
SET use_stat_tables= PREFERABLY;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, t TEXT);
|
||||
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze Warning Engine-independent statistics are not collected for column 't'
|
||||
test.t1 analyze status OK
|
||||
SELECT * FROM mysql.column_stats;
|
||||
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
||||
test t1 pk 1 2 0.0000 4.0000 1.0000 0 NULL NULL
|
||||
DELETE FROM mysql.column_stats
|
||||
WHERE db_name='test' AND table_name='t1' AND column_name='t';
|
||||
INSERT INTO mysql.column_stats VALUES
|
||||
('test','t1','t','bar','foo', 0.0, 3.0, 1.0, 0, NULL, NULL);
|
||||
SELECT * FROM mysql.column_stats;
|
||||
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
|
||||
test t1 pk 1 2 0.0000 4.0000 1.0000 0 NULL NULL
|
||||
test t1 t bar foo 0.0000 3.0000 1.0000 0 NULL NULL
|
||||
DROP TABLE t1;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
set optimizer_switch=@save_optimizer_switch_for_stat_tables_test;
|
||||
SET SESSION STORAGE_ENGINE=DEFAULT;
|
||||
|
Reference in New Issue
Block a user