#781·sqlc

Override query return type

Author: reddecCreated Nov 13, 2020Updated Sep 8, 2026
Labelsenhancement

Let's assume that we have two tables (postgres)

sql
CREATE TABLE foo (
   id BIGSERIAL NOT NULL,
   value TEXT NOT NULL;
);

CREATE TABLE bar (
   id BIGSERIAL NOT NULL,
   value2 TEXT NOT NULL;
);

Problem is that queries

sql
-- name: GetByFooValue :many
SELECT foo.id, bar.id, foo.value FROM foo INNER JOIN bar ON foo.id = bar.id WHERE value = $1

and

sql
-- name: GetByBarValue :many
SELECT foo.id, bar.id, foo.value FROM foo INNER JOIN bar ON foo.id = bar.id WHERE value2 = $1

will generate different response structs (something like GetByBarValueRow and GetByFooValueRow), however by meaning it's the same objects.

I tried to use rename field in configuration but it didn't help. I quickly checked the source code and looks like there is no way to set the output type.

Is it possible to add something like:

  • use rename also for queries types or
  • (IMHO it's better) add an annotation to queries like name: GetByVarValue :type FooBar :many

Thanks!