Skip to content

SQLC panics when generating query for aggregating the result of a UNION #3942

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
eattoe-ctoken opened this issue Apr 23, 2025 · 0 comments
Labels

Comments

@eattoe-ctoken
Copy link

eattoe-ctoken commented Apr 23, 2025

Version

1.29.0

What happened?

sqlc generate will panic when trying to generate the following sql query:

-- name: AllThingsTrue :one
WITH t AS (
    SELECT thing, bool_thing FROM things
    WHERE things.thing = $1
), ot AS (
    SELECT thing, bool_thing FROM other_things
    WHERE other_things.thing = $1
)
SELECT 
    thing, -- This column is TEXT
    bool_and(bool_thing)
FROM (
  SELECT thing, bool_thing FROM t
  UNION
  SELECT thing, bool_thing FROM ot
)
GROUP BY thing;

Relevant log output

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x105448320]

goroutine 5 [running]:
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).sourceTables(0x14000127408, 0x140008f0750, {0x10624d1e0?, 0x140008f8000?})
        github.com/sqlc-dev/sqlc/internal/compiler/output_columns.go:601 +0x920
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).outputColumns(0x14000127408, 0x140008f0750, {0x10624d1e0, 0x140008f8000})
        github.com/sqlc-dev/sqlc/internal/compiler/output_columns.go:55 +0x34
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler)._analyzeQuery(0x14000127408, 0x140006127e0, {0x1400015aa00, 0xb84}, 0x1)
        github.com/sqlc-dev/sqlc/internal/compiler/analyze.go:180 +0x9a8
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).analyzeQuery(...)
        github.com/sqlc-dev/sqlc/internal/compiler/analyze.go:110
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).parseQuery(0x14000127408, {0x10624d3a0, 0x140006127e0}, {0x1400015aa00, 0x13f9}, {{0x0, 0x0, {0x0, 0x0}, 0x0, ...}})
        github.com/sqlc-dev/sqlc/internal/compiler/parse.go:103 +0x480
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).parseQueries(0x14000127408, {{0x0, 0x0, {0x0, 0x0}, 0x0, 0x0, 0x0, 0x0}})
        github.com/sqlc-dev/sqlc/internal/compiler/compile.go:81 +0x3b0
github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).ParseQueries(...)
        github.com/sqlc-dev/sqlc/internal/compiler/engine.go:72
github.com/sqlc-dev/sqlc/internal/cmd.parse({_, _}, {_, _}, {_, _}, {{0x0, 0x0}, {0x1400011adc0, 0xa}, ...}, ...)
        github.com/sqlc-dev/sqlc/internal/cmd/generate.go:322 +0x234
github.com/sqlc-dev/sqlc/internal/cmd.processQuerySets.func1()
        github.com/sqlc-dev/sqlc/internal/cmd/process.go:107 +0x660
golang.org/x/sync/errgroup.(*Group).Go.func1()
        golang.org/x/sync@v0.8.0/errgroup/errgroup.go:78 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
        golang.org/x/sync@v0.8.0/errgroup/errgroup.go:75 +0x98

Database schema

SQL queries

Configuration

Playground URL

No response

What operating system are you using?

macOS

What database engines are you using?

PostgreSQL

What type of code are you generating?

Go

@eattoe-ctoken eattoe-ctoken added the bug Something isn't working label Apr 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant