Skip to content

Commit 5727c0e

Browse files
authored
feat: Remove experimental flags for IVF and FullText indexes main (#23175)
This PR removes the control logic for experimental_ivf_index and experimental_fulltext_index. Both features are now always enabled. Approved by: @ouyuanning, @heni02
1 parent ec9b004 commit 5727c0e

File tree

76 files changed

+140
-378
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+140
-378
lines changed

pkg/sql/compile/ddl.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2062,12 +2062,6 @@ func (s *Scope) handleVectorIvfFlatIndex(
20622062
originalTableDef *plan.TableDef,
20632063
indexInfo *plan.CreateTable,
20642064
) error {
2065-
if ok, err := s.isExperimentalEnabled(c, ivfFlatIndexFlag); err != nil {
2066-
return err
2067-
} else if !ok {
2068-
return moerr.NewInternalErrorNoCtx("IVF index is not enabled")
2069-
}
2070-
20712065
// 1. static check
20722066
if len(indexDefs) != 3 {
20732067
return moerr.NewInternalErrorNoCtx("invalid ivf index table definition")

pkg/sql/compile/ddl_index_algo.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ import (
3434
)
3535

3636
const (
37-
ivfFlatIndexFlag = "experimental_ivf_index"
38-
fulltextIndexFlag = "experimental_fulltext_index"
39-
hnswIndexFlag = "experimental_hnsw_index"
37+
hnswIndexFlag = "experimental_hnsw_index"
4038
)
4139

4240
func (s *Scope) handleUniqueIndexTable(
@@ -135,12 +133,6 @@ func (s *Scope) handleFullTextIndexTable(
135133
originalTableDef *plan.TableDef,
136134
indexInfo *plan.CreateTable,
137135
) (err error) {
138-
if ok, err := s.isExperimentalEnabled(c, fulltextIndexFlag); err != nil {
139-
return err
140-
} else if !ok {
141-
return moerr.NewInternalErrorNoCtx("FullText index is not enabled")
142-
}
143-
144136
// create hidden tables
145137
if indexInfo != nil {
146138
if len(indexInfo.GetIndexTables()) != 1 {
@@ -476,10 +468,9 @@ func (s *Scope) logTimestamp(c *Compile, qryDatabase, metadataTableName, metrics
476468
}
477469

478470
func (s *Scope) isExperimentalEnabled(c *Compile, flag string) (bool, error) {
479-
480471
if s.Magic == TableClone {
481472
skipFlags := []string{
482-
fulltextIndexFlag, ivfFlatIndexFlag, hnswIndexFlag,
473+
hnswIndexFlag,
483474
}
484475

485476
// if the scope is a table clone means we are trying to

pkg/sql/compile/ddl_test.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -780,15 +780,7 @@ func TestPitrDupError(t *testing.T) {
780780
func TestIsExperimentalEnabled(t *testing.T) {
781781
s := newScope(TableClone)
782782

783-
enabled, err := s.isExperimentalEnabled(nil, fulltextIndexFlag)
784-
assert.NoError(t, err)
785-
assert.True(t, enabled)
786-
787-
enabled, err = s.isExperimentalEnabled(nil, ivfFlatIndexFlag)
788-
assert.NoError(t, err)
789-
assert.True(t, enabled)
790-
791-
enabled, err = s.isExperimentalEnabled(nil, hnswIndexFlag)
783+
enabled, err := s.isExperimentalEnabled(nil, hnswIndexFlag)
792784
assert.NoError(t, err)
793785
assert.True(t, enabled)
794786
}

pkg/sql/compile/util.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -425,19 +425,12 @@ func (s *Scope) checkTableWithValidIndexes(c *Compile, relation engine.Relation)
425425
if idxdef, ok := constraint.(*engine.IndexDef); ok && len(idxdef.Indexes) > 0 {
426426
for _, idx := range idxdef.Indexes {
427427
if idx.TableExist {
428-
var indexflag string
428+
// Only check hnswIndexFlag
429429
if catalog.IsHnswIndexAlgo(idx.IndexAlgo) {
430-
indexflag = hnswIndexFlag
431-
} else if catalog.IsIvfIndexAlgo(idx.IndexAlgo) {
432-
indexflag = ivfFlatIndexFlag
433-
} else if catalog.IsFullTextIndexAlgo(idx.IndexAlgo) {
434-
indexflag = fulltextIndexFlag
435-
}
436-
437-
if len(indexflag) > 0 {
430+
indexflag := hnswIndexFlag
438431
if ok, err := s.isExperimentalEnabled(c, indexflag); err != nil {
439432
return err
440-
} else if !ok && !c.ignoreCheckExperimental {
433+
} else if !ok {
441434
return moerr.NewInternalError(c.proc.Ctx, fmt.Sprintf("%s is not enabled", indexflag))
442435
}
443436
}

test/distributed/cases/array/array_index.result

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
SET experimental_ivf_index = 1;
21
drop database if exists vecdb2;
32
create database vecdb2;
43
use vecdb2;
@@ -658,5 +657,4 @@ count(*)
658657
select count(*) from mo_catalog.mo_tables where reldatabase = "vecdb3"; -- rag_table + 0 ivf index tables
659658
count(*)
660659
1
661-
SET experimental_ivf_index = 0;
662660
drop database vecdb3;

test/distributed/cases/array/array_index.sql

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
SET experimental_ivf_index = 1;
2-
31
-- pre
42
drop database if exists vecdb2;
53
create database vecdb2;
@@ -719,5 +717,4 @@ select count(*) from mo_catalog.mo_indexes as i join mo_catalog.mo_tables as t o
719717

720718
select count(*) from mo_catalog.mo_tables where reldatabase = "vecdb3"; -- rag_table + 0 ivf index tables
721719

722-
SET experimental_ivf_index = 0;
723720
drop database vecdb3;

test/distributed/cases/array/array_index_1.result

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
SET experimental_ivf_index = 1;
21
drop database if exists vecdb2;
32
create database vecdb2;
43
use vecdb2;
@@ -634,5 +633,4 @@ a b c d
634633
9776 [10, 3, 8, 5, 48, 26, 5, 16, 17, 0, 0, 2, 132, 53, 1, 16, 112, 6, 0, 0, 7, 2, 1, 48, 48, 15, 18, 31, 3, 0, 0, 9, 6, 10, 19, 27, 50, 46, 17, 9, 18, 1, 4, 48, 132, 23, 3, 5, 132, 9, 4, 3, 11, 0, 2, 46, 84, 12, 10, 10, 1, 0, 12, 76, 26, 22, 16, 26, 35, 15, 3, 16, 15, 1, 51, 132, 125, 8, 1, 2, 132, 51, 67, 91, 8, 0, 0, 30, 126, 39, 32, 38, 4, 0, 1, 12, 24, 2, 2, 2, 4, 7, 2, 19, 93, 19, 70, 92, 2, 3, 1, 21, 36, 58, 132, 94, 0, 0, 0, 0, 21, 25, 57, 48, 1, 0, 0, 1] 3 [0, 0, 0]
635634
9777 [16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13] 4 [0, 0, 0]
636635
9778 [41, 0, 0, 7, 1, 1, 20, 67, 9, 0, 0, 0, 0, 31, 120, 61, 25, 0, 0, 0, 0, 10, 120, 90, 32, 0, 0, 1, 13, 11, 22, 50, 4, 0, 2, 93, 40, 15, 37, 18, 12, 2, 2, 19, 8, 44, 120, 25, 120, 5, 0, 0, 0, 2, 48, 97, 102, 14, 3, 3, 11, 9, 34, 41, 0, 0, 4, 120, 56, 3, 4, 5, 6, 15, 37, 116, 28, 0, 0, 3, 120, 120, 24, 6, 2, 0, 1, 28, 53, 90, 51, 11, 11, 2, 12, 14, 8, 6, 4, 30, 9, 1, 4, 22, 25, 79, 120, 66, 5, 0, 0, 6, 42, 120, 91, 43, 15, 2, 4, 39, 12, 9, 9, 12, 15, 5, 24, 36] 4 [0, 0, 0]
637-
SET experimental_ivf_index = 0;
638636
drop database vecdb2;

test/distributed/cases/array/array_index_1.sql

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
SET experimental_ivf_index = 1;
2-
31
-- pre
42
drop database if exists vecdb2;
53
create database vecdb2;
@@ -694,5 +692,4 @@ alter table vector_index_08 add column d vecf32(3) not null after c;
694692
select * from vector_index_08;
695693

696694
-- post
697-
SET experimental_ivf_index = 0;
698695
drop database vecdb2;

test/distributed/cases/array/array_index_knn.result

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
SET experimental_ivf_index = 1;
21
SET probe_limit = 1;
32
drop database if exists vecdb3;
43
create database vecdb3;
@@ -11,11 +10,9 @@ insert into t6 values(3, "[3,0,0,0]", "3");
1110
insert into t6 values(4, "[11,11,0,0]", "4");
1211
insert into t6 values(5, "[12,12,0,0]", "5");
1312
insert into t6 values(6, "[13,13,0,0]", "6");
14-
SET experimental_ivf_index = 0;
1513
create index idx6 using ivfflat on t6(b) lists=2 op_type "vector_l2_ops";
16-
internal error: IVF index is not enabled
17-
SET experimental_ivf_index = 1;
1814
create index idx6 using ivfflat on t6(b) lists=2 op_type "vector_l2_ops";
15+
duplicate key name 'idx6'
1916
select a, b from t6 order by l2_distance(b, "[1,0,0,0]") limit 4;
2017
a b
2118
1 [1, 0, 0, 0]
@@ -267,6 +264,5 @@ a b
267264
7 [111, 111, 111, 0]
268265
8 [112, 112, 112, 0]
269266
11 [114, 114, 114, 0]
270-
SET experimental_ivf_index = 0;
271267
SET probe_limit = 5;
272268
drop database vecdb3;

test/distributed/cases/array/array_index_knn.sql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
SET experimental_ivf_index = 1;
21
SET probe_limit = 1;
32

43
-- pre
@@ -15,10 +14,8 @@ insert into t6 values(3, "[3,0,0,0]", "3");
1514
insert into t6 values(4, "[11,11,0,0]", "4");
1615
insert into t6 values(5, "[12,12,0,0]", "5");
1716
insert into t6 values(6, "[13,13,0,0]", "6");
18-
SET experimental_ivf_index = 0;
1917

2018
create index idx6 using ivfflat on t6(b) lists=2 op_type "vector_l2_ops";
21-
SET experimental_ivf_index = 1;
2219

2320
create index idx6 using ivfflat on t6(b) lists=2 op_type "vector_l2_ops";
2421
select a, b from t6 order by l2_distance(b, "[1,0,0,0]") limit 4;
@@ -184,6 +181,5 @@ insert into t5 values(11, "[114,114,114,0]", "11");
184181
select a, b from t5 order by l2_distance(b, "[111,111,111,0]") limit 7;
185182

186183
-- post
187-
SET experimental_ivf_index = 0;
188184
SET probe_limit = 5;
189185
drop database vecdb3;

0 commit comments

Comments
 (0)