sqlc icon indicating copy to clipboard operation
sqlc copied to clipboard

allow renaming function Params structs

Open skandragon opened this issue 8 months ago • 2 comments

I have a case where I want to wrap some of the database calls in some internal layers, and would like to have a single params structure that is exposed between my hand-rolled wrapped code and the generated names.

Specifically, I am making a function called UpsertFooUncached using code gen and I want a cached version:

func (q *Queries) UpsertFoo(ctx context.Context, args UpsertFooParams) (uuid.UUID, error) {
  // caching would go here
  id, err := q.UpsertFooUncached(ctx, args)
  if err != nil {
    return uuid.Nil, err
  }
  // cache the result
  return id, nil
}

In this case, I could use type UpsertFooParams UpsertFooUncachedParams but this doesn't work well for users as it doesn't always expand with VSCode, so the internals are a mystery. I could recreate the structure, but then I need to keep it in sync. I could embed the Uncached version, but then using it is a pain.

I'd like to rename, and this change seems to do the trick.

skandragon avatar Mar 11 '25 02:03 skandragon