8000 No optional return for fetchrow on insert/upsert · sqlc-dev/sqlc-gen-python@746594d · GitHub
[go: up one dir, main page]

Skip to content
10000

Commit 746594d

Browse files
committed
No optional return for fetchrow on insert/upsert
1 parent 554bc94 commit 746594d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

internal/gen.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -888,9 +888,11 @@ func buildQueryTree(ctx *pyTmplCtx, i *importer, source string) *pyast.Node {
888888
switch q.Cmd {
889889
case ":one":
890890
fetchrow := connMethodNode("fetchrow", q.ConstantName, q.ArgNodes()...)
891-
f.Body = append(f.Body,
892-
assignNode("row", poet.Await(fetchrow)),
893-
poet.Node(
891+
f.Body = append(f.Body, assignNode("row", poet.Await(fetchrow)))
892+
if strings.HasPrefix(q.ConstantName, "INSERT") || strings.HasPrefix(q.ConstantName, "UPSERT") {
893+
f.Returns = q.Ret.Annotation()
894+
} else {
895+
f.Body = append(f.Body, poet.Node(
894896
&pyast.If{
895897
Test: poet.Node(
896898
&pyast.Compare{
@@ -909,10 +911,10 @@ func buildQueryTree(ctx *pyTmplCtx, i *importer, source string) *pyast.Node {
909911
),
910912
},
911913
},
912-
),
913-
poet.Return(q.Ret.RowNode("row")),
914-
)
915-
f.Returns = subscriptNode("Optional", q.Ret.Annotation())
914+
))
915+
f.Returns = subscriptNode("Optional", q.Ret.Annotation())
916+
}
917+
f.Body = append(f.Body, poet.Return(q.Ret.RowNode("row")))
916918
case ":many":
917919
cursor := connMethodNode("cursor", q.ConstantName, q.ArgNodes()...)
918920
f.Body = append(f.Body,

0 commit comments

Comments
 (0)
0