Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/storage/rocksdb/mysql-test/rocksdb/t/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 5 kB image not shown  

Quelle  singledelete.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[220] VDM[110] ADA[88]} [Methode: maximale Elemente, drei Dimensionen]

--source include/have_rocksdb.inc

# only SingleDelete increases
CREATE TABLE t1 (id INT, value int, PRIMARY KEY (id), INDEX (value)) ENGINE=RocksDB;
INSERT INTO t1 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
  let $update = UPDATE t1 SET value=value+1 WHERE value=$i;
  inc $i;
  eval $update;
}
--enable_query_log
optimize table t1;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';


# both SingleDelete and Delete increases
CREATE TABLE t2 (id INT, value int, PRIMARY KEY (id), INDEX (value)) ENGINE=RocksDB;
INSERT INTO t2 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
  let $update = UPDATE t2 SET id=id+1 WHERE id=$i;
  inc $i;
  eval $update;
}
--enable_query_log
optimize table t2;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d > 9000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';

# only Delete increases
CREATE TABLE t3 (id INT, value int, PRIMARY KEY (id)) ENGINE=RocksDB;
INSERT INTO t3 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
  let $update = UPDATE t3 SET id=id+1 WHERE id=$i;
  inc $i;
  eval $update;
}
--enable_query_log
optimize table t3;
select case when variable_value-@s = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d > 9000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';

# only SingleDelete increases
CREATE TABLE t4 (id INT, PRIMARY KEY (id)) ENGINE=RocksDB;
INSERT INTO t4 VALUES (1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
  let $update = UPDATE t4 SET id=id+1 WHERE id=$i;
  inc $i;
  eval $update;
}
--enable_query_log
optimize table t4;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';

# only SingleDelete increases
CREATE TABLE t5 (id1 INT, id2 INT, PRIMARY KEY (id1, id2), INDEX(id2)) ENGINE=RocksDB;
INSERT INTO t5 VALUES (1, 1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
  let $update = UPDATE t5 SET id1=id1+1 WHERE id1=$i;
  inc $i;
  eval $update;
}
--enable_query_log
optimize table t5;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';

# SingleDelete used for PK. Verify old PK is always deleted.
CREATE TABLE t6 (
  pk VARCHAR(64) COLLATE latin1_swedish_ci PRIMARY KEY
) ENGINE=RocksDB;
INSERT INTO t6 VALUES ('a');
SET GLOBAL rocksdb_force_flush_memtable_now=1;
SELECT * FROM t6;
UPDATE t6 SET pk='A' WHERE pk='a';
SELECT * FROM t6;
DELETE FROM t6 where pk='A';
--echo SELECT should return nothing;
SELECT * FROM t6;
SET GLOBAL rocksdb_force_flush_memtable_now=1;
--echo SELECT should return nothing;
SELECT * FROM t6;

DROP TABLE t1, t2, t3, t4, t5, t6;

[Dauer der Verarbeitung: 0.22 Sekunden, vorverarbeitet 2026-10-08]