replace_result InnoDB MyISAM; error ER_NO_INDEX_ON_TEMPORARY; create temporary table t1 (id int auto_increment primary key, v blob not null, vector index (v)); error ER_NOT_SUPPORTED_YET; create table t1 (id int auto_increment primary key, u blob not null, vector index (u), v blob not null, vector index (v)); create table t1 (id int auto_increment primary key, v blob not null, vector index (v)); replace_result InnoDB MyISAM; show create table t1; show keys from t1; query_vertical select * from information_schema.statistics where table_name='t1'; # print unpack("H*",pack("f*",map{rand}1..5)) insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'), (x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'), (x'f09baa3ea172763f123def3e0c7fe53e288bf33e'), (x'b97a523f2a193e3eb4f62e3f2d23583e9dd60d3f'), (x'f7c5df3e984b2b3e65e59d3d7376db3eac63773e'), (x'de01453ffa486d3f10aa4d3fdd66813c71cb163f'), (x'76edfc3e4b57243f10f8423fb158713f020bda3e'), (x'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'), (x'7b713f3e5258323f80d1113d673b2b3f66e3583f'), (x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'); select id, hex(v) from t1; flush tables; # test with a valid query vector select id,vec_distance(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3; # swapped arguments select id,vec_distance(x'b047263C9f87233fcfd27e3eae493e3f0329f43e', v) d from t1 order by d limit 3; # test with NULL (id is unpredictable) select id>0,vec_distance(v, NULL) d from t1 order by d limit 3; # test with invalid query vector (id is unpredictable) select id>0,vec_distance(v, x'123456') d from t1 order by d limit 3; select t1.id as id1, t2.id as id2, vec_distance(t1.v, t2.v) from t1, t1 as t2 order by 3,1,2; # test delete delete from t1 where v = x'7b713f3e5258323f80d1113d673b2b3f66e3583f'; select id,vec_distance(v, x'B047263C9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3; # test insert deleted vec insert t1 (v) values (x'7b713f3e5258323f80d1113d673b2b3f66e3583f'); select id,vec_distance(v, x'b047263c9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3; # test update select id,vec_distance(v, x'B047263c9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5; update t1 set v=x'76EDFC3E4B57243F10F8423FB158713F020BAA3E' where v=x'6CA1D43E9DF91B3FE580DA3E1C247D3F147CF33E'; select id,vec_distance(v, x'B047263C9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5; # test delete all and reinsert delete from t1; insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'), (x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'), (x'f09baa3ea172763f123def3e0c7fe53e288bf33e'), (x'b97a523f2a193e3eb4f62e3f2d23583e9dd60d3f'), (x'f7c5df3e984b2b3e65e59d3d7376db3eac63773e'), (x'de01453ffa486d3f10aa4d3fdd66813c71cb163f'), (x'76edfc3e4b57243f10f8423fb158713f020bda3e'), (x'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'), (x'7b713f3e5258323f80d1113d673b2b3f66e3583f'), (x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'); select id,vec_distance(v, x'b047263c9f87233Fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5; --error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD insert t1 (v) values (''); --error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD insert t1 (v) values (x'1234'); --error ER_TRUNCATED_WRONG_VALUE_FOR_FIELD insert t1 (v) values (x'12345678'); drop table t1; let $datadir=`select @@datadir`; list_files $datadir/test; --echo # Check if CREATE TABLE ... LIKE inherits VECTOR index create table t1 (id int auto_increment primary key, v blob not null, vector index (v)); create table t2 like t1; replace_result InnoDB MyISAM; show create table t2; drop table t1, t2; list_files $datadir/test; --echo # Test insert ... select with vector index create table t1 (id int auto_increment primary key, v blob not null, vector index (v)); create table t2 like t1; insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'), (x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'), (x'f09baa3ea172763f123def3e0c7fe53e288bf33e'), (x'b97a523f2a193e3eb4f62e3f2d23583e9dd60d3f'), (x'f7c5df3e984b2b3e65e59d3d7376db3eac63773e'), (x'de01453ffa486d3f10aa4d3fdd66813c71cb163f'), (x'76edfc3e4b57243f10f8423fb158713f020bda3e'), (x'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'), (x'7b713f3e5258323f80d1113d673b2b3f66e3583f'), (x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'); insert into t2 select id+10, v from t1; insert into t1 select * from t2; select id, hex(v) from t1; drop table t1, t2; list_files $datadir/test; create table t1 (id int auto_increment primary key, v blob not null, vector index (v)); truncate table t1; insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'); if ($MTR_COMBINATION_MYISAM) { --replace_result $datadir datadir --exec $MYISAMCHK -d $datadir/test/t1#i#01 } truncate table t1; if ($MTR_COMBINATION_MYISAM) { --replace_result $datadir datadir --exec $MYISAMCHK -d $datadir/test/t1#i#01 } select * from t1; replace_result InnoDB MyISAM; show create table t1; drop table t1; list_files $datadir/test; --echo # Test RENAME TABLE with vector index create table t1 (id int auto_increment primary key, v blob not null, vector index (v)); list_files $datadir/test; rename table t1 to t2; list_files $datadir/test; create database test1; rename table test.t2 to test1.t1; list_files $datadir/test1; if ($MTR_COMBINATION_MYISAM) { remove_file $datadir/test1/t1#i#01.MYD; } if ($MTR_COMBINATION_INNODB) { call mtr.add_suppression('InnoDB: Cannot rename.*because the source file does not exist'); call mtr.add_suppression('InnoDB: File ./test1/t1#i#01.ibd was not found'); remove_file $datadir/test1/t1#i#01.ibd; } --error 7,ER_ERROR_ON_RENAME rename table test1.t1 to test1.t2; list_files $datadir/test1; drop database test1; list_files $datadir/test;