Skip to content

select * from a subquery selects all columns for all tables in the subquery #2569

Closed
@JakeCapra

Description

@JakeCapra

Version

1.20.0

What happened?

When selecting * from a subquery, the generated query selects all columns from all tables referenced in the subquery, not all fields selected by the subquery.

With the example provided below, the following query is generated:

SELECT t.id, authors.id, name, bio FROM (select id from authors) t

The generated query should be:

SELECT t.id FROM (select id from authors) t

If you modify the query to be:

SELECT t.* FROM (select id from authors) t;

then the generated query is correct.

Relevant log output

No response

Database schema

CREATE TABLE authors (
  id   BIGSERIAL PRIMARY KEY,
  name text      NOT NULL,
  bio  text
);

SQL queries

SELECT * FROM (select id from authors) t;

Configuration

{
  "version": "1",
  "packages": [
    {
      "path": "db",
      "engine": "postgresql",
      "schema": "query.sql",
      "queries": "query.sql"
    }
  ]
}

Playground URL

https://play.sqlc.dev/p/40aa4c5ab1bd5efb90024e9b35a08cdc83d28237ba2bfdc2f3ecf4ec47da4c68

What operating system are you using?

Linux

What database engines are you using?

PostgreSQL

What type of code are you generating?

Go

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageNew issues that hasn't been reviewed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions