fix when index name is "type", parseFieldIndexes will set index TYPE is "TYPE" (#5155)
* fix index name is type, parseFieldIndexes will set index TYPE is "TYPE" * check TYPE empty
This commit is contained in:
		
							parent
							
								
									f961bf1c14
								
							
						
					
					
						commit
						61b4c31236
					
				| @ -89,11 +89,12 @@ func parseFieldIndexes(field *Field) (indexes []Index) { | ||||
| 			k := strings.TrimSpace(strings.ToUpper(v[0])) | ||||
| 			if k == "INDEX" || k == "UNIQUEINDEX" { | ||||
| 				var ( | ||||
| 					name      string | ||||
| 					tag       = strings.Join(v[1:], ":") | ||||
| 					idx       = strings.Index(tag, ",") | ||||
| 					settings  = ParseTagSetting(tag, ",") | ||||
| 					length, _ = strconv.Atoi(settings["LENGTH"]) | ||||
| 					name       string | ||||
| 					tag        = strings.Join(v[1:], ":") | ||||
| 					idx        = strings.Index(tag, ",") | ||||
| 					tagSetting = strings.Join(strings.Split(tag, ",")[1:], ",") | ||||
| 					settings   = ParseTagSetting(tagSetting, ",") | ||||
| 					length, _  = strconv.Atoi(settings["LENGTH"]) | ||||
| 				) | ||||
| 
 | ||||
| 				if idx == -1 { | ||||
|  | ||||
| @ -18,6 +18,7 @@ type UserIndex struct { | ||||
| 	Age          int64  `gorm:"index:profile,expression:ABS(age),option:WITH PARSER parser_name"` | ||||
| 	OID          int64  `gorm:"index:idx_id;index:idx_oid,unique"` | ||||
| 	MemberNumber string `gorm:"index:idx_id,priority:1"` | ||||
| 	Name7        string `gorm:"index:type"` | ||||
| } | ||||
| 
 | ||||
| func TestParseIndex(t *testing.T) { | ||||
| @ -78,6 +79,11 @@ func TestParseIndex(t *testing.T) { | ||||
| 			Class:  "UNIQUE", | ||||
| 			Fields: []schema.IndexOption{{Field: &schema.Field{Name: "OID"}}}, | ||||
| 		}, | ||||
| 		"type": { | ||||
| 			Name:   "type", | ||||
| 			Type:   "", | ||||
| 			Fields: []schema.IndexOption{{Field: &schema.Field{Name: "Name7"}}}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	indices := user.ParseIndexes() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 labulakalia
						labulakalia