sqlc
sqlc copied to clipboard
Not recognizing sqlc.arg after ON CONFLICT.
Version
1.26.0
What happened?
Input:
-- name: Insert :exec
INSERT INTO authors (name)
VALUES (sqlc.arg(name))
ON CONFLICT (name) DO UPDATE SET data = sqlc.arg(data);
Output:
const insert = `-- name: Insert :exec
INSERT INTO authors (name)
VALUES (?1)
ON CONFLICT (name) DO UPDATE SET data = sqlc.arg(data)
`
sqlc.arg(name) is recognized, but sqlc.arg(data) is not recognized.
Relevant log output
No response
Database schema
CREATE TABLE authors (
name TEXT NOT NULL UNIQUE,
data BLOB NOT NULL
);
SQL queries
-- name: Insert :exec
INSERT INTO authors (name)
VALUES (sqlc.arg(name))
ON CONFLICT (name) DO UPDATE SET data = sqlc.arg(data);
Configuration
{
"version": "2",
"sql": [{
"schema": "schema.sql",
"queries": "query.sql",
"engine": "sqlite",
"gen": {
"go": {
"out": "db"
}
}
}]
}
Playground URL
https://play.sqlc.dev/p/499d67e9cbdb4e01b7b2be3310bdc5d48e1e2154afc581eb48018e001f05beaf
What operating system are you using?
Windows
What database engines are you using?
SQLite
What type of code are you generating?
Go
I can confirm this also happens with @fieldname notation:
https://play.sqlc.dev/p/a7c029d7cc3ae678861021056b1f50cc85b2b85f431cbefeead9db529be7bfbc
-- name: SetLastRendered :exec
INSERT INTO last_rendereds (id, created_at, updated_at, job_id)
VALUES (1, @created_at, @updated_at, @job_id)
ON CONFLICT DO UPDATE SET updated_at=@updated_at, job_id=@job_id;
creates code:
const setLastRendered = `-- name: SetLastRendered :exec
INSERT INTO last_rendereds (id, created_at, updated_at, job_id)
VALUES (1, ?1, ?2, ?3)
ON CONFLICT DO UPDATE SET updated_at=@updated_at, job_id=@job_id
`