From 832244faba4870c3af7c9afd8d8afe377bdcdd08 Mon Sep 17 00:00:00 2001 From: congqixia Date: Thu, 14 Aug 2025 17:01:45 +0800 Subject: [PATCH] enhance: [2.5] Refine error message for restful default value check (#43842) (#43860) Cherry-pick from master pr: #43842 Related to #43818 Signed-off-by: Congqi Xia --- .../distributed/proxy/httpserver/handler_v2_test.go | 12 ++++++------ internal/distributed/proxy/httpserver/utils.go | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/distributed/proxy/httpserver/handler_v2_test.go b/internal/distributed/proxy/httpserver/handler_v2_test.go index 9a1c8add0b..7e7cd0454a 100644 --- a/internal/distributed/proxy/httpserver/handler_v2_test.go +++ b/internal/distributed/proxy/httpserver/handler_v2_test.go @@ -1346,7 +1346,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=bool][actual=10]", + errMsg: "convert defaultValue fail, err:cannot use \"10\"(type: float64) as bool default value: invalid parameter", errCode: 1100, }) @@ -1360,7 +1360,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=string][actual=true]", + errMsg: "convert defaultValue fail, err:cannot use \"true\"(type: bool) as string default value: invalid parameter", errCode: 1100, }) @@ -1374,7 +1374,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=number][actual=10]", + errMsg: "convert defaultValue fail, err:cannot use \"\"10\"(type: string) as int default value: invalid parameter", errCode: 1100, }) @@ -1388,7 +1388,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=number][actual=10]", + errMsg: "convert defaultValue fail, err:cannot use \"10\"(type: string) as long default value: invalid parameter", errCode: 1100, }) @@ -1402,7 +1402,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=number][actual=10]", + errMsg: "convert defaultValue fail, err:cannot use \"10\"(type: string) as float default value: invalid parameter", errCode: 1100, }) @@ -1416,7 +1416,7 @@ func TestCreateCollection(t *testing.T) { {"fieldName": "book_intro", "dataType": "SparseFloatVector", "elementTypeParams": {"dim": 2}} ] }, "indexParams": [{"fieldName": "book_intro", "indexName": "book_intro_vector", "metricType": "L2"}]}`), - errMsg: "convert defaultValue fail, err:Wrong defaultValue type: invalid parameter[expected=number][actual=10]", + errMsg: "convert defaultValue fail, err:cannot use \"10\"(type: string) as float default value: invalid parameter", errCode: 1100, }) postTestCases = append(postTestCases, requestBodyTestCase{ diff --git a/internal/distributed/proxy/httpserver/utils.go b/internal/distributed/proxy/httpserver/utils.go index 998db7a33a..b05693122d 100644 --- a/internal/distributed/proxy/httpserver/utils.go +++ b/internal/distributed/proxy/httpserver/utils.go @@ -1512,7 +1512,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema case schemapb.DataType_Bool: v, ok := value.(bool) if !ok { - return nil, merr.WrapErrParameterInvalid("bool", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use "%v"(type: %T) as bool default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_BoolData{ @@ -1525,7 +1525,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema // all passed number is float64 type v, ok := value.(float64) if !ok { - return nil, merr.WrapErrParameterInvalid("number", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use ""%v"(type: %T) as int default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_IntData{ @@ -1537,7 +1537,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema case schemapb.DataType_Int64: v, ok := value.(float64) if !ok { - return nil, merr.WrapErrParameterInvalid("number", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use "%v"(type: %T) as long default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_LongData{ @@ -1549,7 +1549,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema case schemapb.DataType_Float: v, ok := value.(float64) if !ok { - return nil, merr.WrapErrParameterInvalid("number", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use "%v"(type: %T) as float default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_FloatData{ @@ -1561,7 +1561,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema case schemapb.DataType_Double: v, ok := value.(float64) if !ok { - return nil, merr.WrapErrParameterInvalid("number", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use "%v"(type: %T) as float default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_DoubleData{ @@ -1573,7 +1573,7 @@ func convertDefaultValue(value interface{}, dataType schemapb.DataType) (*schema case schemapb.DataType_String, schemapb.DataType_VarChar: v, ok := value.(string) if !ok { - return nil, merr.WrapErrParameterInvalid("string", value, "Wrong defaultValue type") + return nil, merr.WrapErrParameterInvalidMsg(`cannot use "%v"(type: %T) as string default value`, value, value) } data := &schemapb.ValueField{ Data: &schemapb.ValueField_StringData{