From b99c3826ce9ab9391e4742d9d6896a3cfb9a8f3d Mon Sep 17 00:00:00 2001 From: Krchi <997054144@qq.com> Date: Wed, 20 Aug 2025 01:20:24 +0800 Subject: [PATCH] checker: fix sql insert expr propagate result (fix #24833) (#25136) --- vlib/orm/orm_result_test.v | 6 ++++++ vlib/v/checker/orm.v | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/vlib/orm/orm_result_test.v b/vlib/orm/orm_result_test.v index 8d05f4da9f..06b64c628d 100644 --- a/vlib/orm/orm_result_test.v +++ b/vlib/orm/orm_result_test.v @@ -61,6 +61,12 @@ fn test_print_results() { insert account into Account }! + i := sql db { + insert account into Account + }! + + println(i) + count := sql db { select count from Account }! diff --git a/vlib/v/checker/orm.v b/vlib/v/checker/orm.v index f437cc1a00..b3ef3667d7 100644 --- a/vlib/v/checker/orm.v +++ b/vlib/v/checker/orm.v @@ -190,17 +190,13 @@ fn (mut c Checker) sql_expr(mut node ast.SqlExpr) ast.Type { } c.expr(mut node.db_expr) if node.is_insert { - node.typ = ast.int_type + node.typ = ast.int_type.set_flag(.result) } last_cur_or_expr := c.cur_or_expr c.cur_or_expr = &node.or_expr c.check_orm_or_expr(mut node) c.cur_or_expr = last_cur_or_expr - if node.is_insert { - return ast.int_type - } - return node.typ.clear_flag(.result) }