mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
mysqldump and mariadb-backup tests of vector indexes
This commit is contained in:
parent
eb4ab2ce8f
commit
855aefb7b5
4 changed files with 172 additions and 0 deletions
|
@ -1,4 +1,70 @@
|
|||
#
|
||||
# mysqldump
|
||||
#
|
||||
create table t1 (id int auto_increment primary key, v blob not null, vector index (v));
|
||||
insert t1 (v) values (Vec_Fromtext('[0.418,0.809,0.823,0.598,0.033]')),
|
||||
(Vec_Fromtext('[0.687,0.789,0.496,0.574,0.917]')),
|
||||
(Vec_Fromtext('[0.333,0.962,0.467,0.448,0.475]')),
|
||||
(Vec_Fromtext('[0.822,0.185,0.683,0.211,0.554]')),
|
||||
(Vec_Fromtext('[0.437,0.167,0.077,0.428,0.241]')),
|
||||
(Vec_Fromtext('[0.769,0.926,0.803,0.015,0.589]')),
|
||||
(Vec_Fromtext('[0.493,0.641,0.761,0.942,0.425]')),
|
||||
(Vec_Fromtext('[0.924,0.275,0.054,0.073,0.136]')),
|
||||
(Vec_Fromtext('[0.186,0.696,0.035,0.668,0.847]')),
|
||||
(Vec_Fromtext('[0.415,0.609,0.426,0.988,0.475]'));
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
id
|
||||
8
|
||||
5
|
||||
4
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`v` blob NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
VECTOR KEY `v` (`v`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES
|
||||
(1,0x1904D63EA01A4F3F21B0523F8716193F022B073D),
|
||||
(2,0x3BDF2F3FE7FB493FB6F3FD3EAAF1123F83C06A3F),
|
||||
(3,0xFA7EAA3EA245763FA01AEF3E4260E53E3333F33E),
|
||||
(4,0x986E523FA4703D3E17D92E3F6210583EF2D20D3F),
|
||||
(5,0x77BEDF3E0C022B3E2DB29D3DD122DB3EB4C8763E),
|
||||
(6,0x2FDD443F560E6D3F68914D3F8FC2753CB4C8163F),
|
||||
(7,0x7F6AFC3E9318243FE5D0423FE926713F9A99D93E),
|
||||
(8,0x448B6C3FCDCC8C3E1B2F5D3D0681953D96430B3E),
|
||||
(9,0xC9763E3E0E2D323F295C0F3D0C022B3FFED4583F),
|
||||
(10,0xE17AD43E6DE71B3FAC1CDA3E91ED7C3F3333F33E);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`v` blob NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
VECTOR KEY `v` (`v`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
||||
select id, Vec_ToText(v) from t1;
|
||||
id Vec_ToText(v)
|
||||
1 [0.418000,0.809000,0.823000,0.598000,0.033000]
|
||||
2 [0.687000,0.789000,0.496000,0.574000,0.917000]
|
||||
3 [0.333000,0.962000,0.467000,0.448000,0.475000]
|
||||
4 [0.822000,0.185000,0.683000,0.211000,0.554000]
|
||||
5 [0.437000,0.167000,0.077000,0.428000,0.241000]
|
||||
6 [0.769000,0.926000,0.803000,0.015000,0.589000]
|
||||
7 [0.493000,0.641000,0.761000,0.942000,0.425000]
|
||||
8 [0.924000,0.275000,0.054000,0.073000,0.136000]
|
||||
9 [0.186000,0.696000,0.035000,0.668000,0.847000]
|
||||
10 [0.415000,0.609000,0.426000,0.988000,0.475000]
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
id
|
||||
8
|
||||
5
|
||||
4
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-35044 ALTER on a table with vector index attempts to bypass unsupported locking limitation, server crashes in THD::free_tmp_table_share
|
||||
#
|
||||
create table t (a int primary key, v blob not null, vector index(v));
|
||||
|
|
|
@ -1,5 +1,30 @@
|
|||
--source include/not_embedded.inc
|
||||
|
||||
--echo #
|
||||
--echo # mysqldump
|
||||
--echo #
|
||||
create table t1 (id int auto_increment primary key, v blob not null, vector index (v));
|
||||
insert t1 (v) values (Vec_Fromtext('[0.418,0.809,0.823,0.598,0.033]')),
|
||||
(Vec_Fromtext('[0.687,0.789,0.496,0.574,0.917]')),
|
||||
(Vec_Fromtext('[0.333,0.962,0.467,0.448,0.475]')),
|
||||
(Vec_Fromtext('[0.822,0.185,0.683,0.211,0.554]')),
|
||||
(Vec_Fromtext('[0.437,0.167,0.077,0.428,0.241]')),
|
||||
(Vec_Fromtext('[0.769,0.926,0.803,0.015,0.589]')),
|
||||
(Vec_Fromtext('[0.493,0.641,0.761,0.942,0.425]')),
|
||||
(Vec_Fromtext('[0.924,0.275,0.054,0.073,0.136]')),
|
||||
(Vec_Fromtext('[0.186,0.696,0.035,0.668,0.847]')),
|
||||
(Vec_Fromtext('[0.415,0.609,0.426,0.988,0.475]'));
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
replace_result InnoDB MyISAM;
|
||||
exec $MYSQL_DUMP --compact --hex-blob test t1;
|
||||
exec $MYSQL_DUMP --hex-blob test t1 > $MYSQL_TMP_DIR/vector.sql;
|
||||
exec $MYSQL test < $MYSQL_TMP_DIR/vector.sql;
|
||||
remove_file $MYSQL_TMP_DIR/vector.sql;
|
||||
show create table t1;
|
||||
select id, Vec_ToText(v) from t1;
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-35044 ALTER on a table with vector index attempts to bypass unsupported locking limitation, server crashes in THD::free_tmp_table_share
|
||||
--echo #
|
||||
|
|
51
mysql-test/suite/mariabackup/vector.result
Normal file
51
mysql-test/suite/mariabackup/vector.result
Normal file
|
@ -0,0 +1,51 @@
|
|||
create table t1 (id int auto_increment primary key, v blob not null, vector index (v)) engine=innodb;
|
||||
insert t1 (v) values (Vec_Fromtext('[0.418,0.809,0.823,0.598,0.033]')),
|
||||
(Vec_Fromtext('[0.687,0.789,0.496,0.574,0.917]')),
|
||||
(Vec_Fromtext('[0.333,0.962,0.467,0.448,0.475]')),
|
||||
(Vec_Fromtext('[0.822,0.185,0.683,0.211,0.554]')),
|
||||
(Vec_Fromtext('[0.437,0.167,0.077,0.428,0.241]')),
|
||||
(Vec_Fromtext('[0.769,0.926,0.803,0.015,0.589]')),
|
||||
(Vec_Fromtext('[0.493,0.641,0.761,0.942,0.425]')),
|
||||
(Vec_Fromtext('[0.924,0.275,0.054,0.073,0.136]')),
|
||||
(Vec_Fromtext('[0.186,0.696,0.035,0.668,0.847]')),
|
||||
(Vec_Fromtext('[0.415,0.609,0.426,0.988,0.475]'));
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
id
|
||||
8
|
||||
5
|
||||
4
|
||||
drop table t1;
|
||||
db.opt
|
||||
t1#i#01.ibd
|
||||
t1.frm
|
||||
t1.ibd
|
||||
# shutdown server
|
||||
# remove datadir
|
||||
# xtrabackup move back
|
||||
# restart
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`v` blob NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
VECTOR KEY `v` (`v`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
||||
select id, Vec_ToText(v) from t1;
|
||||
id Vec_ToText(v)
|
||||
1 [0.418000,0.809000,0.823000,0.598000,0.033000]
|
||||
2 [0.687000,0.789000,0.496000,0.574000,0.917000]
|
||||
3 [0.333000,0.962000,0.467000,0.448000,0.475000]
|
||||
4 [0.822000,0.185000,0.683000,0.211000,0.554000]
|
||||
5 [0.437000,0.167000,0.077000,0.428000,0.241000]
|
||||
6 [0.769000,0.926000,0.803000,0.015000,0.589000]
|
||||
7 [0.493000,0.641000,0.761000,0.942000,0.425000]
|
||||
8 [0.924000,0.275000,0.054000,0.073000,0.136000]
|
||||
9 [0.186000,0.696000,0.035000,0.668000,0.847000]
|
||||
10 [0.415000,0.609000,0.426000,0.988000,0.475000]
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
id
|
||||
8
|
||||
5
|
||||
4
|
||||
drop table t1;
|
30
mysql-test/suite/mariabackup/vector.test
Normal file
30
mysql-test/suite/mariabackup/vector.test
Normal file
|
@ -0,0 +1,30 @@
|
|||
create table t1 (id int auto_increment primary key, v blob not null, vector index (v)) engine=innodb;
|
||||
insert t1 (v) values (Vec_Fromtext('[0.418,0.809,0.823,0.598,0.033]')),
|
||||
(Vec_Fromtext('[0.687,0.789,0.496,0.574,0.917]')),
|
||||
(Vec_Fromtext('[0.333,0.962,0.467,0.448,0.475]')),
|
||||
(Vec_Fromtext('[0.822,0.185,0.683,0.211,0.554]')),
|
||||
(Vec_Fromtext('[0.437,0.167,0.077,0.428,0.241]')),
|
||||
(Vec_Fromtext('[0.769,0.926,0.803,0.015,0.589]')),
|
||||
(Vec_Fromtext('[0.493,0.641,0.761,0.942,0.425]')),
|
||||
(Vec_Fromtext('[0.924,0.275,0.054,0.073,0.136]')),
|
||||
(Vec_Fromtext('[0.186,0.696,0.035,0.668,0.847]')),
|
||||
(Vec_Fromtext('[0.415,0.609,0.426,0.988,0.475]'));
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
|
||||
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
|
||||
let $backup_log=$MYSQLTEST_VARDIR/tmp/backup.log;
|
||||
|
||||
--disable_result_log
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
|
||||
exec $XTRABACKUP --prepare --target-dir=$targetdir;
|
||||
--enable_result_log
|
||||
|
||||
drop table t1;
|
||||
--list_files $targetdir/test
|
||||
--source include/restart_and_restore.inc
|
||||
|
||||
show create table t1;
|
||||
select id, Vec_ToText(v) from t1;
|
||||
select id from t1 order by vec_distance_euclidean(v, Vec_FromText('[1,0,0,0,0]')) limit 3;
|
||||
drop table t1;
|
||||
rmdir $targetdir;
|
Loading…
Add table
Reference in a new issue