mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	
							
								
								
									
										16
									
								
								vendor/github.com/go-xorm/core/column.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-xorm/core/column.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -32,7 +32,6 @@ type Column struct { | ||||
| 	IsDeleted       bool | ||||
| 	IsCascade       bool | ||||
| 	IsVersion       bool | ||||
| 	fieldPath       []string | ||||
| 	DefaultIsEmpty  bool | ||||
| 	EnumOptions     map[string]int | ||||
| 	SetOptions      map[string]int | ||||
| @@ -59,7 +58,6 @@ func NewColumn(name, fieldName string, sqlType SQLType, len1, len2 int, nullable | ||||
| 		IsDeleted:       false, | ||||
| 		IsCascade:       false, | ||||
| 		IsVersion:       false, | ||||
| 		fieldPath:       nil, | ||||
| 		DefaultIsEmpty:  false, | ||||
| 		EnumOptions:     make(map[string]int), | ||||
| 	} | ||||
| @@ -121,12 +119,10 @@ func (col *Column) ValueOf(bean interface{}) (*reflect.Value, error) { | ||||
|  | ||||
| func (col *Column) ValueOfV(dataStruct *reflect.Value) (*reflect.Value, error) { | ||||
| 	var fieldValue reflect.Value | ||||
| 	if col.fieldPath == nil { | ||||
| 		col.fieldPath = strings.Split(col.FieldName, ".") | ||||
| 	} | ||||
| 	fieldPath := strings.Split(col.FieldName, ".") | ||||
|  | ||||
| 	if dataStruct.Type().Kind() == reflect.Map { | ||||
| 		keyValue := reflect.ValueOf(col.fieldPath[len(col.fieldPath)-1]) | ||||
| 		keyValue := reflect.ValueOf(fieldPath[len(fieldPath)-1]) | ||||
| 		fieldValue = dataStruct.MapIndex(keyValue) | ||||
| 		return &fieldValue, nil | ||||
| 	} else if dataStruct.Type().Kind() == reflect.Interface { | ||||
| @@ -134,19 +130,19 @@ func (col *Column) ValueOfV(dataStruct *reflect.Value) (*reflect.Value, error) { | ||||
| 		dataStruct = &structValue | ||||
| 	} | ||||
|  | ||||
| 	level := len(col.fieldPath) | ||||
| 	fieldValue = dataStruct.FieldByName(col.fieldPath[0]) | ||||
| 	level := len(fieldPath) | ||||
| 	fieldValue = dataStruct.FieldByName(fieldPath[0]) | ||||
| 	for i := 0; i < level-1; i++ { | ||||
| 		if !fieldValue.IsValid() { | ||||
| 			break | ||||
| 		} | ||||
| 		if fieldValue.Kind() == reflect.Struct { | ||||
| 			fieldValue = fieldValue.FieldByName(col.fieldPath[i+1]) | ||||
| 			fieldValue = fieldValue.FieldByName(fieldPath[i+1]) | ||||
| 		} else if fieldValue.Kind() == reflect.Ptr { | ||||
| 			if fieldValue.IsNil() { | ||||
| 				fieldValue.Set(reflect.New(fieldValue.Type().Elem())) | ||||
| 			} | ||||
| 			fieldValue = fieldValue.Elem().FieldByName(col.fieldPath[i+1]) | ||||
| 			fieldValue = fieldValue.Elem().FieldByName(fieldPath[i+1]) | ||||
| 		} else { | ||||
| 			return nil, fmt.Errorf("field  %v is not valid", col.FieldName) | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										8
									
								
								vendor/github.com/go-xorm/xorm/engine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-xorm/xorm/engine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -521,6 +521,14 @@ func (engine *Engine) dumpTables(tables []*core.Table, w io.Writer, tp ...core.D | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// FIXME: Hack for postgres | ||||
| 		if string(dialect.DBType()) == core.POSTGRES && table.AutoIncrColumn() != nil { | ||||
| 			_, err = io.WriteString(w, "SELECT setval('table_id_seq', COALESCE((SELECT MAX("+table.AutoIncrColumn().Name+") FROM "+dialect.Quote(table.Name)+"), 1), false);\n") | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user