From 7bfd9e94ce5206777f3ab5704d090e619bb1014a Mon Sep 17 00:00:00 2001 From: Svetlin Ralchev Date: Fri, 9 Oct 2026 21:20:04 +0400 Subject: [PATCH] fix(template): cast the update_mask argument to text[] The UPDATE queries test each column with '' = any(sqlc.arg(update_mask)). Some sqlc plugins (sqlc-gen-sqlx, used by grpc-rust-template) cannot infer the parameter's type there and need the explicit text[] cast; Go's pgx accepts it either way. Casting in the template lets every downstream template use the generated queries unchanged instead of patching them. --- internal/sqlc/template/template.sql.tmpl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/sqlc/template/template.sql.tmpl b/internal/sqlc/template/template.sql.tmpl index c60244b..c1d9fa3 100644 --- a/internal/sqlc/template/template.sql.tmpl +++ b/internal/sqlc/template/template.sql.tmpl @@ -78,7 +78,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.GetNonPrimaryKeyColumns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -98,7 +98,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.GetNonPrimaryKeyColumns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -117,7 +117,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.GetNonPrimaryKeyColumns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -137,7 +137,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.GetNonPrimaryKeyColumns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -352,7 +352,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.Columns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -375,7 +375,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.Columns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -397,7 +397,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.Columns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END @@ -420,7 +420,7 @@ UPDATE {{$.Table.Name}} SET {{ range $i, $column := $.Table.Columns}}{{if $i}}, {{end}} {{$column.Name}} = CASE - WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)) + WHEN '{{$column.Name}}' = any(sqlc.arg(update_mask)::text[]) THEN {{query_argument $column}} ELSE {{$column.Name}} END