Skip to content

Multiple identical slices in one query are not handled properly #3556

Open
@leodeim

Description

@leodeim

Version

1.27.0

What happened?

Consider this query:

SELECT * 
FROM table1 AS t1 JOIN table2 AS t2
ON t1.fk = t2.fk
AND t1.fk IN (sqlc.slice('IDs')) OR t2.fk IN (sqlc.slice('IDs'));

The code which is generated for it have only one line for handling slice:

query = strings.Replace(query, "/*SLICE:IDs*/?", strings.Repeat(",?", len(ids))[1:], 1)

strings.Replace is called with last argument 1, so only one of two slices is handled.

Playground URL

https://play.sqlc.dev/p/69da31c00c3be911650469be15b8b0d12fb5f99d7be81e34e9208471bf0488fe

What operating system are you using?

Windows

What database engines are you using?

SQLite

What type of code are you generating?

Go

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions