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

Quelle  heap.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[108] Lisp[61] Masm[61]} [Methode: maximale Elemente, drei Dimensionen]

# test of HANDLER with HEAP tables
#

let $engine_type= MEMORY;

--source init.inc
--source handler.inc

#
# Test what happens if table is changed (Unique test for HEAP)
#

connect (con1,localhost,root,,);
connection default;

CREATE TABLE t1(a INT, b INT, KEY(a), KEY b using btree (b), KEY ab using btree(a, b)) engine=memory;

INSERT INTO t1 VALUES (2, 20), (2,20), (1, 10), (4, 40), (3, 30), (5,50), (6,50);

HANDLER t1 OPEN;
HANDLER t1 READ a=(2) limit 3;
HANDLER t1 READ a PREV;
HANDLER t1 READ a PREV;
HANDLER t1 READ a PREV;
HANDLER t1 READ b>=(20) limit 3;
HANDLER t1 READ b PREV;
HANDLER t1 READ b PREV LIMIT 2;
HANDLER t1 READ ab=(3,30) limit 3;
HANDLER t1 READ ab>=(3,30) limit 3;

# Test FIRST/LAST on hash and btree keys
--error ER_ILLEGAL_HA
HANDLER t1 READ a FIRST;
--error ER_ILLEGAL_HA
HANDLER t1 READ a LAST;
HANDLER t1 READ b FIRST LIMIT 2;
HANDLER t1 READ ab LAST LIMIT 2; 

# Table scan
HANDLER t1 READ FIRST LIMIT 10;
# Index scan
HANDLER t1 READ b FIRST;
insert into t1 values (7,50);
--error ER_CHECKREAD
HANDLER t1 READ b NEXT;

HANDLER t1 READ b FIRST;
connection con1;
insert into t1 values (7,50);
connection default;
--error ER_CHECKREAD
HANDLER t1 READ b NEXT;

HANDLER t1 READ FIRST;
connection con1;
insert into t1 values (8,50);
connection default;
HANDLER t1 READ NEXT;
connection con1;
delete from t1 where a=3;
connection default;
HANDLER t1 READ NEXT LIMIT 2;
connection con1;
delete from t1;
connection default;
--error ER_CHECKREAD
HANDLER t1 READ NEXT LIMIT 2;
HANDLER t1 CLOSE;
DROP TABLE t1;
disconnect con1;

#
# LP#702786 Two handler read f1 next gives different errors
#
create table t1 (f1 integer not null, key (f1)) engine=Memory;
insert into t1 values (1);
HANDLER t1 OPEN;
--error 1031
HANDLER t1 READ f1 NEXT;
--error 1031
HANDLER t1 READ f1 NEXT;
--error 1031
HANDLER t1 READ f1 NEXT;
HANDLER t1 CLOSE;
DROP TABLE t1;

--echo End of 5.3 tests

--echo #
--echo # MDEV-15813 ASAN use-after-poison in hp_hashnr upon
--echo #            HANDLER READ on a versioned HEAP table
--echo #

CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, CONSTRAINT PRIMARY KEY (a, b), UNIQUE ba(b, a) USING HASH) ENGINE=HEAP;
INSERT INTO t1 VALUES (1, 10), (2, 20), (3,30), (4,40);
HANDLER t1 OPEN AS m;
HANDLER m READ `PRIMARY`= (3,30);
--error ER_KEY_DOESNT_SUPPORT
HANDLER m READ `PRIMARY`> (3,30);
HANDLER m READ `ba`= (30,3);
--error ER_KEY_DOESNT_SUPPORT
HANDLER m READ `ba`= (30);
HANDLER m CLOSE;
DROP TABLE t1;

--echo #
--echo # MDEV-39821 heap-use-after-free in heap_rnext with tree indexes
--echo #
CREATE TABLE t1 (
    k INT,
    pad VARCHAR(200),
    INDEX idx USING BTREE (k)
) ENGINE=MEMORY;

INSERT t1 VALUES (10,'a'),(20,'b'),(30,'c'),(40,'d'),(50,'e'),
                 (60,'f'),(70,'g'),(80,'h'),(90,'i'),(100,'j'),
                 (110,'k'),(120,'l'),(130,'m'),(140,'n'),(150,'o'),
                 (160,'p'),(170,'q'),(180,'r'),(190,'s'),(200,'t');

HANDLER t1 OPEN;
HANDLER t1 READ idx FIRST;
HANDLER t1 READ idx NEXT;
HANDLER t1 READ idx NEXT;
HANDLER t1 READ idx NEXT;
HANDLER t1 READ idx NEXT;
UPDATE t1 SET k = k + 5000 WHERE k BETWEEN 20 AND 180;
--error ER_CHECKREAD
HANDLER t1 READ idx NEXT;
DROP TABLE t1;

--echo # End of 10.6 tests

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