- Notifications
You must be signed in to change notification settings - Fork 966
Closed
Labels
Description
Version
1.28.0
What happened?
When generating a query with a delete statement that uses a join, sqlc returns this error:
panic: expected range var
The code itself works in my database if I run it native. I've made a simplified version of my database and query to show the issue.
Relevant log output
panic: expected range var goroutine 7 [running]: github.com/sqlc-dev/sqlc/internal/engine/dolphin.convertToRangeVarList(0xc00006aa40?, 0xc0004bb3b0) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/engine/dolphin/utils.go:68 +0x328 github.com/sqlc-dev/sqlc/internal/engine/dolphin.(*cc).convertDeleteStmt(0xc00006aa40, 0xc000b93cc0) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/engine/dolphin/convert.go:302 +0x90 github.com/sqlc-dev/sqlc/internal/engine/dolphin.(*cc).convert(0xc00006aa40, {0x1e8c7e0?, 0xc000b93cc0?}) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/engine/dolphin/convert.go:1557 +0x3e5 github.com/sqlc-dev/sqlc/internal/engine/dolphin.(*Parser).Parse(0xc0000a70f8, {0x1e692e0?, 0xc0007f14c0?}) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/engine/dolphin/parse.go:63 +0x205 github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).parseQueries(0xc000474008, {{0x0, 0x0, {0x0, 0x0}, 0x0, 0x0, 0x0, 0x0}}) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/compiler/compile.go:75 +0x24e github.com/sqlc-dev/sqlc/internal/compiler.(*Compiler).ParseQueries(...) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/compiler/engine.go:72 github.com/sqlc-dev/sqlc/internal/cmd.parse({_, _}, {_, _}, {_, _}, {{0x0, 0x0}, {0xc000438866, 0x5}, ...}, ...) /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/cmd/generate.go:322 +0x2dc github.com/sqlc-dev/sqlc/internal/cmd.processQuerySets.func1() /home/wout/go/pkg/mod/github.com/sqlc-dev/sqlc@v1.28.0/internal/cmd/process.go:107 +0x81a golang.org/x/sync/errgroup.(*Group).Go.func1() /home/wout/go/pkg/mod/golang.org/x/sync@v0.10.0/errgroup/errgroup.go:78 +0x50 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1 /home/wout/go/pkg/mod/golang.org/x/sync@v0.10.0/errgroup/errgroup.go:75 +0x96Database schema
CREATE TABLE `conflicts` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `currency_id` int(10) unsigned NOT NULL, `blockchain_id` int(10) unsigned NOT NULL, `reference` varchar(255) NOT NULL, PRIMARY KEY (`id`) );SQL queries
-- name: DeleteConflicts :execrows DELETE conflicts FROM conflicts JOIN ( SELECT blockchain_id, reference FROM conflicts GROUP BY blockchain_id, reference HAVING COUNT(DISTINCT currency_id) = 1 ) AS resolved_conflicts ON conflicts.blockchain_id = resolved_conflicts.blockchain_id AND conflicts.reference = resolved_conflicts.reference;Configuration
version: "2" cloud: organization: "" project: "" hostname: "" sql: - schema: ./sql/schema.sql queries: ./sql/queries engine: mysql gen: go: package: sqlc out: ./_sqlc emit_json_tags: true emit_prepared_queries: false emit_interface: false emit_exact_table_names: true overrides: go: null plugins: [] rules: [] options: {}Playground URL
https://play.sqlc.dev/p/8b36238bfbc667bc2478394d370938fdaad11bd2c82df63a5e59f17b699b24f0
What operating system are you using?
Linux
What database engines are you using?
MySQL
What type of code are you generating?
Go
Jille and gwillem