mirror of https://github.com/milvus-io/milvus.git
				
				
				
			enhance: Disallow the keywords as a field name or dynamic field name (#36101)
issue: #35873 Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>pull/36284/head
							parent
							
								
									a61668c77e
								
							
						
					
					
						commit
						e486442ca6
					
				| 
						 | 
					@ -276,6 +276,10 @@ func validateFieldName(fieldName string) error {
 | 
				
			||||||
			return merr.WrapErrFieldNameInvalid(fieldName, msg)
 | 
								return merr.WrapErrFieldNameInvalid(fieldName, msg)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if _, ok := common.FieldNameKeywords[fieldName]; ok {
 | 
				
			||||||
 | 
							msg := invalidMsg + fmt.Sprintf("%s is keyword in milvus.", fieldName)
 | 
				
			||||||
 | 
							return merr.WrapErrFieldNameInvalid(fieldName, msg)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -174,6 +174,10 @@ func TestValidateFieldName(t *testing.T) {
 | 
				
			||||||
		"",
 | 
							"",
 | 
				
			||||||
		string(longName),
 | 
							string(longName),
 | 
				
			||||||
		"中文",
 | 
							"中文",
 | 
				
			||||||
 | 
							"True",
 | 
				
			||||||
 | 
							"array_contains",
 | 
				
			||||||
 | 
							"json_contains_any",
 | 
				
			||||||
 | 
							"ARRAY_LENGTH",
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, name := range invalidNames {
 | 
						for _, name := range invalidNames {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					package common
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var FieldNameKeywords = map[string]struct{}{
 | 
				
			||||||
 | 
						"$meta":              {},
 | 
				
			||||||
 | 
						"like":               {},
 | 
				
			||||||
 | 
						"exists":             {},
 | 
				
			||||||
 | 
						"EXISTS":             {},
 | 
				
			||||||
 | 
						"and":                {},
 | 
				
			||||||
 | 
						"or":                 {},
 | 
				
			||||||
 | 
						"not":                {},
 | 
				
			||||||
 | 
						"in":                 {},
 | 
				
			||||||
 | 
						"json_contains":      {},
 | 
				
			||||||
 | 
						"JSON_CONTAINS":      {},
 | 
				
			||||||
 | 
						"json_contains_all":  {},
 | 
				
			||||||
 | 
						"JSON_CONTAINS_ALL":  {},
 | 
				
			||||||
 | 
						"json_contains_any":  {},
 | 
				
			||||||
 | 
						"JSON_CONTAINS_ANY":  {},
 | 
				
			||||||
 | 
						"array_contains":     {},
 | 
				
			||||||
 | 
						"ARRAY_CONTAINS":     {},
 | 
				
			||||||
 | 
						"array_contains_all": {},
 | 
				
			||||||
 | 
						"ARRAY_CONTAINS_ALL": {},
 | 
				
			||||||
 | 
						"array_contains_any": {},
 | 
				
			||||||
 | 
						"ARRAY_CONTAINS_ANY": {},
 | 
				
			||||||
 | 
						"array_length":       {},
 | 
				
			||||||
 | 
						"ARRAY_LENGTH":       {},
 | 
				
			||||||
 | 
						"true":               {},
 | 
				
			||||||
 | 
						"True":               {},
 | 
				
			||||||
 | 
						"TRUE":               {},
 | 
				
			||||||
 | 
						"false":              {},
 | 
				
			||||||
 | 
						"False":              {},
 | 
				
			||||||
 | 
						"FALSE":              {},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue