@@ -28,6 +28,7 @@ import (
2828 "github.com/milvus-io/milvus/internal/metastore/model"
2929 "github.com/milvus-io/milvus/internal/util/indexparamcheck"
3030 "github.com/milvus-io/milvus/internal/util/vecindexmgr"
31+ pkgcommon "github.com/milvus-io/milvus/pkg/common"
3132 "github.com/milvus-io/milvus/pkg/log"
3233 "github.com/milvus-io/milvus/pkg/metrics"
3334 "github.com/milvus-io/milvus/pkg/proto/datapb"
@@ -385,8 +386,33 @@ func (s *Server) AlterIndex(ctx context.Context, req *indexpb.AlterIndexRequest)
385386 return merr .Status (merr .WrapErrParameterInvalidMsg ("cannot provide both DeleteKeys and ExtraParams" )), nil
386387 }
387388
389+ collInfo , err := s .handler .GetCollection (ctx , req .GetCollectionID ())
390+ if err != nil {
391+ log .Warn ("failed to get collection" , zap .Error (err ))
392+ return merr .Status (err ), nil
393+ }
394+ schemaHelper , err := typeutil .CreateSchemaHelper (collInfo .Schema )
395+ if err != nil {
396+ log .Warn ("failed to create schema helper" , zap .Error (err ))
397+ return merr .Status (err ), nil
398+ }
399+
400+ reqIndexParamMap := funcutil .KeyValuePair2Map (req .GetParams ())
401+
388402 for _ , index := range indexes {
389403 if len (req .GetParams ()) > 0 {
404+ fieldSchema , err := schemaHelper .GetFieldFromID (index .FieldID )
405+ if err != nil {
406+ log .Warn ("failed to get field schema" , zap .Error (err ))
407+ return merr .Status (err ), nil
408+ }
409+ isVecIndex := typeutil .IsVectorType (fieldSchema .DataType )
410+ err = pkgcommon .ValidateAutoIndexMmapConfig (Params .AutoIndexConfig .Enable .GetAsBool (), isVecIndex , reqIndexParamMap )
411+ if err != nil {
412+ log .Warn ("failed to validate auto index mmap config" , zap .Error (err ))
413+ return merr .Status (err ), nil
414+ }
415+
390416 // update user index params
391417 newUserIndexParams := UpdateParams (index , index .UserIndexParams , req .GetParams ())
392418 log .Info ("alter index user index params" ,
@@ -425,7 +451,7 @@ func (s *Server) AlterIndex(ctx context.Context, req *indexpb.AlterIndexRequest)
425451 }
426452 }
427453
428- err : = s .meta .indexMeta .AlterIndex (ctx , indexes ... )
454+ err = s .meta .indexMeta .AlterIndex (ctx , indexes ... )
429455 if err != nil {
430456 log .Warn ("failed to alter index" , zap .Error (err ))
431457 return merr .Status (err ), nil
0 commit comments