Issue tracker is used for reporting bugs and discussing new features. Please use
stackoverflow for supporting issues.
Expected Behavior
type MyHash struct {
Key1 string `redis:"key1"`;
Key2 time.Time `redis:"key2,omitempty"`
}
should be
Current Behavior
hset myhash key1 value1 key2 0001-01-01T00:00:00Z
Possible Solution
https://github.com/redis/go-redis/blob/master/commands.go#L142
func isEmptyValue(v reflect.Value) bool {
switch v.Kind() {
case reflect.Array, reflect.Map, reflect.Slice, reflect.String:
return v.Len() == 0
case reflect.Bool:
return !v.Bool()
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
return v.Int() == 0
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
return v.Uint() == 0
case reflect.Float32, reflect.Float64:
return v.Float() == 0
case reflect.Interface, reflect.Pointer:
return v.IsNil()
++++++++++++++++++++++++++++++++++++++++++++++
case reflect.Struct:
return v.IsZero()
++++++++++++++++++++++++++++++++++++++++++++++
}
return false
}
Steps to Reproduce
type MyHash struct {
Key1 string `redis:"key1"`;
Key2 time.Time `redis:"key2,omitempty"`
}
data := MyHash{
Key1 : "value1",
Key2 : time.Time{},
}
if err := rdb.HSet(ctx, "key", model1).Err(); err != nil {
panic(err)
}
Context (Environment)
Detailed Description
omitempty tag does not work for empty time.Time struct field when using HSet
Possible Implementation
If you agree with the proposal I made in the title "Possible Solution," I can proceed to complete this PR.
Issue tracker is used for reporting bugs and discussing new features. Please use
stackoverflow for supporting issues.
Expected Behavior
should be
Current Behavior
Possible Solution
https://github.com/redis/go-redis/blob/master/commands.go#L142
Steps to Reproduce
Context (Environment)
Detailed Description
omitempty tag does not work for empty time.Time struct field when using HSet
Possible Implementation
If you agree with the proposal I made in the title "Possible Solution," I can proceed to complete this PR.