Conversation
| name := t.Type.Name() | ||
| index := strings.Index(name, "[") | ||
| if index > 0 { | ||
| name = name[:index] | ||
| } | ||
| t.zeroStruct = reflect.New(t.Type).Elem() | ||
| t.TypeName = internal.ToExported(t.Type.Name()) | ||
| t.ModelName = internal.Underscore(t.Type.Name()) | ||
| t.TypeName = internal.ToExported(name) | ||
| t.ModelName = internal.Underscore(name) |
There was a problem hiding this comment.
Wouldn't an easier way to do this be to just define the name directly on the thing?
Like this:
type File struct {
tableName string `pg:"files"`
...This way even if its a generic, the table name stays the same? With how you have it written, you're throwing out the generic argument entirely, so it would never be considered for the table name.
There was a problem hiding this comment.
Directly defining the name works in some models without nested structure, but in some cases, it does not work.
Sometimes, we forget to use an alias.
example: https://go.dev/play/p/VJpB_c3cLkt
There was a problem hiding this comment.
Oh interesting, that is definitely a bug in my eyes then, the way table names are built should be consistent. Let me mess around a bit here.
Thank you very much for the code reproduction!
There was a problem hiding this comment.
I see now what is happening, the way we generate the alias is different than how we derive the actual table name. Thus why it is only affecting select queries oddly.
I think there is a more elegant solution to this, but let me mess around some more.
There was a problem hiding this comment.
Have you found a better solution?
generics model support