Open
Description
Version
1.25.0
What happened?
A bug happened!
-- name: TestQuery :many
SELECT *
FROM persons
WHERE sqlc.arg('foo');
correctly produces
const testQuery = `-- name: TestQuery :many
SELECT personid, lastname, firstname, address, city
FROM persons
WHERE ?
`
but
-- name: TestQuery :many
SELECT *
FROM persons
WHERE NOT sqlc.arg('foo');
incorrectly produces
const testQuery = `-- name: TestQuery :many
SELECT personid, lastname, firstname, address, city
FROM persons
WHERE NOT sqlc.arg('foo')
`
Notice that sqlc.arg('foo')
is still present in the second query. Seems like sqlc is confused by NOT
. Same issue with !
.
See live example at https://play.sqlc.dev/p/7a9cbe8fd148f62a3bf7190a87a43e58aef7b2a757c10af19b7ff206b24c0092
Relevant log output
Database schema
CREATE TABLE persons (
personID int,
lastName varchar(255),
firstName varchar(255),
address varchar(255),
city varchar(255)
);
SQL queries
-- name: TestQuery1 :many
SELECT *
FROM persons
WHERE NOT sqlc.arg('foo');
-- name: TestQuery2 :many
SELECT *
FROM persons
WHERE ! sqlc.arg('foo');
Configuration
{
"version": "2",
"sql": [{
"schema": "schema.sql",
"queries": "query.sql",
"engine": "mysql",
"gen": {
"go": {
"out": "db"
}
}
}]
}
Playground URL
https://play.sqlc.dev/p/7a9cbe8fd148f62a3bf7190a87a43e58aef7b2a757c10af19b7ff206b24c0092
What operating system are you using?
Linux
What database engines are you using?
MySQL
What type of code are you generating?
Go