Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
70ff3b66
Commit
70ff3b66
authored
5 months ago
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
trying to stabilize floating-point tests
parent
3dfcefb6
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
179 additions
and
158 deletions
+179
-158
mysql-test/main/vector.result
mysql-test/main/vector.result
+138
-138
mysql-test/main/vector.test
mysql-test/main/vector.test
+17
-0
mysql-test/main/vector_innodb.result
mysql-test/main/vector_innodb.result
+20
-20
mysql-test/main/vector_innodb.test
mysql-test/main/vector_innodb.test
+4
-0
No files found.
mysql-test/main/vector.result
View file @
70ff3b66
...
...
@@ -108,14 +108,14 @@ id hex(v)
flush tables;
select id,vec_distance_euclidean(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
9 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
9 0.47199
10 0.50690
3 0.58656
select id,vec_distance_euclidean(x'b047263C9f87233fcfd27e3eae493e3f0329f43e', v) d from t1 order by d limit 3;
id d
9 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
9 0.47199
10 0.50690
3 0.58656
select id>0,vec_distance_euclidean(v, NULL) d from t1 order by d limit 3;
id>0 d
1 NULL
...
...
@@ -138,149 +138,149 @@ id1 id2 vec_distance_euclidean(t1.v, t2.v)
8 8 0
9 9 0
10 10 0
7 10 0.35209
009051322937
10 7 0.35209
009051322937
1 7 0.55726
73082351685
7 1 0.55726
73082351685
2 3 0.60651
29041671753
3 2 0.60651
29041671753
1 3 0.61282
37843513489
3 1 0.61282
37843513489
5 8 0.62199
95617866516
8 5 0.62199
95617866516
3 10 0.65231
853723526
10 3 0.65231
853723526
9 10 0.67326
81393623352
10 9 0.67326
81393623352
3 7 0.67998
9218711853
7 3 0.67998
9218711853
3 9 0.68207
52024650574
9 3 0.68207
52024650574
2 10 0.69163
05422782898
10 2 0.69163
05422782898
2 9 0.69666
50485992432
9 2 0.69666
50485992432
3 6 0.71028
23853492737
6 3 0.71028
23853492737
2 7 0.71202
17680931091
7 2 0.71202
17680931091
2 6 0.73516
17813110352
6 2 0.73516
17813110352
1 10 0.73868
64423751831
10 1 0.73868
64423751831
4 6 0.77843
57666969299
6 4 0.77843
57666969299
4 8 0.77958
3752155304
8 4 0.77958
3752155304
4 5 0.81320
07122039795
5 4 0.81320
07122039795
2 4 0.82609
2541217804
4 2 0.82609
2541217804
5 10 0.82864
88652229309
10 5 0.82864
88652229309
5 9 0.87693
51243972778
9 5 0.87693
51243972778
1 6 0.88614
10617828369
6 1 0.88614
10617828369
3 5 0.92242
02036857605
5 3 0.92242
02036857605
4 7 0.93479
1624546051
7 4 0.93479
1624546051
7 9 0.93642
53282546997
9 7 0.93642
53282546997
3 4 0.97571
05708122253
4 3 0.97571
05708122253
1 2 0.98102
72455215454
2 1 0.98102
72455215454
1 4 0.99654
75797653198
4 1 0.99654
75797653198
5 7 0.99768
63861083984
7 5 0.99768
63861083984
4 10 1.01093
4591293335
10 4 1.01093
4591293335
1 5 1.02083
59956741333
5 1 1.02083
59956741333
6 7 1.02213
3231163025
7 6 1.02213
3231163025
2 5 1.05076
9329071045
5 2 1.05076
9329071045
6 8 1.10342
0376777649
8 6 1.10342
0376777649
3 8 1.11703
00245285034
8 3 1.11703
00245285034
6 10 1.15234
51805114746
10 6 1.15234
51805114746
1 9 1.16377
5086402893
9 1 1.16377
5086402893
2 8 1.17365
70596694946
8 2 1.17365
70596694946
4 9 1.17468
94121170044
9 4 1.17468
94121170044
1 8 1.19099
60508346558
8 1 1.19099
60508346558
8 10 1.20935
96458435059
10 8 1.20935
96458435059
6 9 1.21452
98719406128
9 6 1.21452
98719406128
5 6 1.22727
85902023315
6 5 1.22727
85902023315
8 9 1.25752
58016586304
9 8 1.25752
58016586304
7 8 1.28823
9598274231
8 7 1.28823
9598274231
7 10 0.35209
10 7 0.35209
1 7 0.55726
7 1 0.55726
2 3 0.60651
3 2 0.60651
1 3 0.61282
3 1 0.61282
5 8 0.62199
8 5 0.62199
3 10 0.65231
10 3 0.65231
9 10 0.67326
10 9 0.67326
3 7 0.67998
7 3 0.67998
3 9 0.68207
9 3 0.68207
2 10 0.69163
10 2 0.69163
2 9 0.69666
9 2 0.69666
3 6 0.71028
6 3 0.71028
2 7 0.71202
7 2 0.71202
2 6 0.73516
6 2 0.73516
1 10 0.73868
10 1 0.73868
4 6 0.77843
6 4 0.77843
4 8 0.77958
8 4 0.77958
4 5 0.81320
5 4 0.81320
2 4 0.82609
4 2 0.82609
5 10 0.82864
10 5 0.82864
5 9 0.87693
9 5 0.87693
1 6 0.88614
6 1 0.88614
3 5 0.92242
5 3 0.92242
4 7 0.93479
7 4 0.93479
7 9 0.93642
9 7 0.93642
3 4 0.97571
4 3 0.97571
1 2 0.98102
2 1 0.98102
1 4 0.99654
4 1 0.99654
5 7 0.99768
7 5 0.99768
4 10 1.01093
10 4 1.01093
1 5 1.02083
5 1 1.02083
6 7 1.02213
7 6 1.02213
2 5 1.05076
5 2 1.05076
6 8 1.10342
8 6 1.10342
3 8 1.11703
8 3 1.11703
6 10 1.15234
10 6 1.15234
1 9 1.16377
9 1 1.16377
2 8 1.17365
8 2 1.17365
4 9 1.17468
9 4 1.17468
1 8 1.19099
8 1 1.19099
8 10 1.20935
10 8 1.20935
6 9 1.21452
9 6 1.21452
5 6 1.22727
6 5 1.22727
8 9 1.25752
9 8 1.25752
7 8 1.28823
8 7 1.28823
flush session status;
select id,vec_distance_euclidean(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
9 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
9 0.47199
10 0.50690
3 0.58656
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 0
select id,vec_distance_euclidean(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 use index () order by d limit 3;
id d
9 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
9 0.47199
10 0.50690
3 0.58656
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 11
flush session status;
select id,vec_distance_cosine(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
10 0.05905
5447578430176
9 0.06546
902656555176
3 0.10750
287771224976
10 0.05905
9 0.06546
3 0.10750
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 11
delete from t1 where v = x'7b713f3e5258323f80d1113d673b2b3f66e3583f';
select id,vec_distance_euclidean(v, x'B047263C9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
10 0.50690
10853767395
3 0.58656
73422813416
7 0.73444
64659690857
10 0.50690
3 0.58656
7 0.73444
insert t1 (v) values (x'7b713f3e5258323f80d1113d673b2b3f66e3583f');
select id,vec_distance_euclidean(v, x'b047263c9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
11 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
11 0.47199
10 0.50690
3 0.58656
select id,vec_distance_euclidean(v, x'B047263c9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5;
id d
11 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
7 0.73444
64659690857
5 0.76710
33143997192
11 0.47199
10 0.50690
3 0.58656
7 0.73444
5 0.76710
update t1 set v=x'76EDFC3E4B57243F10F8423FB158713F020BAA3E' where v=x'6CA1D43E9DF91B3FE580DA3E1C247D3F147CF33E';
select id,vec_distance_euclidean(v, x'B047263C9F87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5;
id d
11 0.47199
761867523193
3 0.58656
73422813416
7 0.73444
64659690857
10 0.74683
67218971252
5 0.76710
33143997192
11 0.47199
3 0.58656
7 0.73444
10 0.74683
5 0.76710
delete from t1;
insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
(x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'),
...
...
@@ -294,11 +294,11 @@ insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
(x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e');
select id,vec_distance_euclidean(v, x'b047263c9f87233Fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 5;
id d
20 0.47199
761867523193
21 0.50690
10853767395
14 0.58656
73422813416
18 0.73444
64659690857
16 0.76710
33143997192
20 0.47199
21 0.50690
14 0.58656
18 0.73444
16 0.76710
insert t1 (v) values ('');
ERROR 22007: Incorrect vector value: '...' for column `test`.`t1`.`v` at row 1
insert t1 (v) values (x'1234');
...
...
@@ -426,32 +426,32 @@ insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
(x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e');
select id,vec_distance_cosine(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
10 0.05905
5447578430176
9 0.06546
902656555176
3 0.10750
287771224976
10 0.05905
9 0.06546
3 0.10750
flush session status;
select id,vec_distance_cosine(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
10 0.05905
5447578430176
9 0.06546
902656555176
3 0.10750
287771224976
10 0.05905
9 0.06546
3 0.10750
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 0
select id,vec_distance_cosine(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 use index () order by d limit 3;
id d
10 0.05905
5447578430176
9 0.06546
902656555176
3 0.10750
287771224976
10 0.05905
9 0.06546
3 0.10750
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 11
flush session status;
select id,vec_distance_euclidean(v, x'B047263c9f87233fcfd27e3eae493e3f0329f43e') d from t1 order by d limit 3;
id d
9 0.47199
761867523193
10 0.50690
10853767395
3 0.58656
73422813416
9 0.47199
10 0.50690
3 0.58656
show status like 'handler_read_rnd_next';
Variable_name Value
Handler_read_rnd_next 11
...
...
This diff is collapsed.
Click to expand it.
mysql-test/main/vector.test
View file @
70ff3b66
...
...
@@ -41,24 +41,32 @@ insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
select
id
,
hex
(
v
)
from
t1
;
flush
tables
;
# test with a valid query vector
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
# swapped arguments
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
x
'b047263C9f87233fcfd27e3eae493e3f0329f43e'
,
v
)
d
from
t1
order
by
d
limit
3
;
# test with NULL (id is unpredictable)
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
>
0
,
vec_distance_euclidean
(
v
,
NULL
)
d
from
t1
order
by
d
limit
3
;
# test with invalid query vector (id is unpredictable)
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
>
0
,
vec_distance_euclidean
(
v
,
x
'123456'
)
d
from
t1
order
by
d
limit
3
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
t1
.
id
as
id1
,
t2
.
id
as
id2
,
vec_distance_euclidean
(
t1
.
v
,
t2
.
v
)
from
t1
,
t1
as
t2
order
by
3
,
1
,
2
;
# see if order by uses index:
--
disable_view_protocol
--
disable_ps2_protocol
flush
session
status
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
show
status
like
'handler_read_rnd_next'
;
# used
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
use
index
() order by d limit 3
;
show
status
like
'handler_read_rnd_next'
;
# not used
flush
session
status
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_cosine
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
show
status
like
'handler_read_rnd_next'
;
# not used, wrong distance metric
--
enable_ps2_protocol
...
...
@@ -66,15 +74,19 @@ show status like 'handler_read_rnd_next'; # not used, wrong distance metric
# test delete
delete
from
t1
where
v
=
x
'7b713f3e5258323f80d1113d673b2b3f66e3583f'
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263C9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
# test insert deleted vec
insert
t1
(
v
)
values
(
x
'7b713f3e5258323f80d1113d673b2b3f66e3583f'
);
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'b047263c9F87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
# test update
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263c9F87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
5
;
update
t1
set
v
=
x
'76EDFC3E4B57243F10F8423FB158713F020BAA3E'
where
v
=
x
'6CA1D43E9DF91B3FE580DA3E1C247D3F147CF33E'
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263C9F87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
5
;
# test delete all and reinsert
...
...
@@ -89,6 +101,7 @@ insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
(
x
'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'
),
(
x
'7b713f3e5258323f80d1113d673b2b3f66e3583f'
),
(
x
'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'
);
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'b047263c9f87233Fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
5
;
...
...
@@ -190,16 +203,20 @@ insert t1 (v) values (x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
(
x
'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'
);
# make sure the graph is loaded
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_cosine
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
--
disable_view_protocol
--
disable_ps2_protocol
flush
session
status
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_cosine
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
show
status
like
'handler_read_rnd_next'
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_cosine
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
use
index
() order by d limit 3
;
show
status
like
'handler_read_rnd_next'
;
flush
session
status
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'B047263c9f87233fcfd27e3eae493e3f0329f43e'
)
d
from
t1
order
by
d
limit
3
;
show
status
like
'handler_read_rnd_next'
;
--
enable_ps2_protocol
...
...
This diff is collapsed.
Click to expand it.
mysql-test/main/vector_innodb.result
View file @
70ff3b66
...
...
@@ -40,18 +40,18 @@ delete from t1 where id=7;
rollback;
select id,vec_distance_euclidean(v, x'c923e33dc0da313fe7c7983e526b3d3fde63963e6eaf3a3f27fa133fe27a583f') d from t1 order by d limit 5;
id d
2 0.87814
74828720093
10 0.88562
08324432373
30 1.01626
43194198608
7 1.02639
72282409668
5 1.03081
60781860352
2 0.87814
10 0.88562
30 1.01626
7 1.02639
5 1.03081
select id,vec_distance_euclidean(v, x'754b5f3ea2312b3fc169f43e4604883e1d20173e8dd7443f421b703fb11e0d3e') d from t1 order by d limit 5;
id d
2 0.94269
04320716858
33 0.94775
54559707642
30 1.11140
54918289185
10 1.11863
0290031433
8 1.14057
3263168335
2 0.94269
33 0.94775
30 1.11140
10 1.11863
8 1.14057
create table t2 (id int auto_increment primary key, v blob not null, vector index (v)) engine=innodb;
insert t2 (v) values
(x'45cf153f830a313f7a0a113fb1ff533f47a1533fcf9e6e3f'),
...
...
@@ -73,16 +73,16 @@ insert t2 values
commit;
select id,vec_distance_euclidean(v, x'1f4d053f7056493f937da03dd8c97a3f220cbb3c926c1c3facca213ec0618a3e') d from t1 order by d limit 5;
id d
6 0.93093
83034706116
5 0.97063
04669380188
30 0.98144
48952674866
50 1.07986
25946044922
2 1.09071
39778137207
6 0.93093
5 0.97063
30 0.98144
50 1.07986
2 1.09071
select id,vec_distance_euclidean(v, x'f618663f256be73e62cd453f8bcdbf3e16ae503c3858313f') d from t2 order by d limit 5;
id d
21 0.43559
178709983826
20 0.64350
5334854126
6 0.69420
00389099121
2 0.79716
22347831726
9 0.82985
88991165161
21 0.43559
20 0.64350
6 0.69420
2 0.79716
9 0.82985
drop table t1, t2;
This diff is collapsed.
Click to expand it.
mysql-test/main/vector_innodb.test
View file @
70ff3b66
...
...
@@ -37,7 +37,9 @@ insert t1 values
delete
from
t1
where
id
=
7
;
rollback
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'c923e33dc0da313fe7c7983e526b3d3fde63963e6eaf3a3f27fa133fe27a583f'
)
d
from
t1
order
by
d
limit
5
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'754b5f3ea2312b3fc169f43e4604883e1d20173e8dd7443f421b703fb11e0d3e'
)
d
from
t1
order
by
d
limit
5
;
### two indexes in one transaction:
...
...
@@ -63,7 +65,9 @@ insert t2 values
(
21
,
x
'35e05d3f18e8513fb81a3d3f8acf7d3e794a1d3c72f9613f'
);
commit
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'1f4d053f7056493f937da03dd8c97a3f220cbb3c926c1c3facca213ec0618a3e'
)
d
from
t1
order
by
d
limit
5
;
--
replace_regex
/
(
\
.
\d
{
5
})
\d
+/
\
1
/
select
id
,
vec_distance_euclidean
(
v
,
x
'f618663f256be73e62cd453f8bcdbf3e16ae503c3858313f'
)
d
from
t2
order
by
d
limit
5
;
drop
table
t1
,
t2
;
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment