MDEV-35186 IGNORED attribute has no effect on vector keys
This commit is contained in:
parent
55d1f6c229
commit
2b17265ae2
@ -423,4 +423,16 @@ show warnings;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
Warning 1292 Incorrect inet6 value: '' for column ``.``.`a` at row 0
|
Warning 1292 Incorrect inet6 value: '' for column ``.``.`a` at row 0
|
||||||
Error 1067 Invalid default value for 'a'
|
Error 1067 Invalid default value for 'a'
|
||||||
|
#
|
||||||
|
# MDEV-35186 IGNORED attribute has no effect on vector keys
|
||||||
|
#
|
||||||
|
create table t (a vector(1) not null, vector(a) ignored);
|
||||||
|
show index in t;
|
||||||
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
|
||||||
|
t 1 a 1 a A NULL NULL NULL VECTOR YES
|
||||||
|
insert into t values (0x00000000),(0x00000000);
|
||||||
|
explain select vec_totext(a) from t order by vec_distance_euclidean(a,0x00000000) limit 1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t ALL NULL NULL NULL NULL 2 Using filesort
|
||||||
|
drop table t;
|
||||||
# End of 11.7 tests
|
# End of 11.7 tests
|
||||||
|
@ -309,4 +309,12 @@ show warnings;
|
|||||||
create table t (a inet6 not null default '');
|
create table t (a inet6 not null default '');
|
||||||
show warnings;
|
show warnings;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-35186 IGNORED attribute has no effect on vector keys
|
||||||
|
--echo #
|
||||||
|
create table t (a vector(1) not null, vector(a) ignored);
|
||||||
|
show index in t;
|
||||||
|
insert into t values (0x00000000),(0x00000000);
|
||||||
|
explain select vec_totext(a) from t order by vec_distance_euclidean(a,0x00000000) limit 1;
|
||||||
|
drop table t;
|
||||||
--echo # End of 11.7 tests
|
--echo # End of 11.7 tests
|
||||||
|
@ -32,7 +32,8 @@ key_map Item_func_vec_distance_common::part_of_sortkey() const
|
|||||||
Field *f= item->field;
|
Field *f= item->field;
|
||||||
KEY *keyinfo= f->table->s->key_info;
|
KEY *keyinfo= f->table->s->key_info;
|
||||||
for (uint i= f->table->s->keys; i < f->table->s->total_keys; i++)
|
for (uint i= f->table->s->keys; i < f->table->s->total_keys; i++)
|
||||||
if (keyinfo[i].algorithm == HA_KEY_ALG_VECTOR && f->key_start.is_set(i)
|
if (!keyinfo[i].is_ignored && keyinfo[i].algorithm == HA_KEY_ALG_VECTOR
|
||||||
|
&& f->key_start.is_set(i)
|
||||||
&& mhnsw_uses_distance(f->table, keyinfo + i, this))
|
&& mhnsw_uses_distance(f->table, keyinfo + i, this))
|
||||||
map.set_bit(i);
|
map.set_bit(i);
|
||||||
}
|
}
|
||||||
|
@ -2214,7 +2214,7 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
|
|||||||
if (extra2.index_flags.str)
|
if (extra2.index_flags.str)
|
||||||
extra_index_flags_present= TRUE;
|
extra_index_flags_present= TRUE;
|
||||||
|
|
||||||
for (uint i= 0; i < share->keys; i++, keyinfo++)
|
for (uint i= 0; i < share->total_keys; i++, keyinfo++)
|
||||||
{
|
{
|
||||||
if (extra_index_flags_present)
|
if (extra_index_flags_present)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user