Skip to content

sqlc completely skips over arguments in complex queries with no error messages #3665

Open
@maddsua

Description

@maddsua

Version

1.27.0

What happened?

The generated output lacks any query parameters which yields it completely useless. All the sqlc.arg() are ignored with no errors raised.
When switched annotation to batchexec the following error is encountered: :batch* commands require parameters

Relevant log output

No response

Database schema

CREATE TABLE usage (
  id   BIGSERIAL PRIMARY KEY,
  created_at timestampz not null,
  user_id bigint not null,
  delta  bigint
);

SQL queries

-- name: UpdateUsage :exec
merge into usage using (
	select usage.id
	from (select 1) as dummy
		left join usage
		on user_id = sqlc.arg(user_id)
			and created_at >= now() - interval '1 hour'
	order by id desc
	limit 1
) ref on usage.id = ref.id
when matched then
	update
	set delta = delta + sqlc.arg(delta)
when not matched then
	insert (user_id, delta)
	values (sqlc.arg(user_id), sqlc.arg(delta));

Configuration

{
  "version": "2",
  "sql": [{
    "schema": "schema.sql",
    "queries": "query.sql",
    "engine": "postgresql",
    "gen": {
      "go": {
        "out": "db"
      }
    }
  }]
}

Playground URL

https://play.sqlc.dev/p/b0b005a26fe2667afe52dfe4d229d18d4cde8e426ac83cbf4786ec050749875e

What operating system are you using?

Windows

What database engines are you using?

PostgreSQL

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