From d70eb6b3d7e0fbb3e63517ce1d0c52713ddd8039 Mon Sep 17 00:00:00 2001 From: jussisaurio Date: Sat, 17 Aug 2024 09:16:24 +0300 Subject: [PATCH] fix seekrowid operator not emitting result when root --- core/translate/emitter.rs | 5 +++++ testing/all.test | 2 +- testing/select.test | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/translate/emitter.rs b/core/translate/emitter.rs index 19480b2b1..98b380218 100644 --- a/core/translate/emitter.rs +++ b/core/translate/emitter.rs @@ -276,6 +276,11 @@ impl Emitter for Operator { program.resolve_label(jump_target_when_true, program.offset()); } } + + if is_root { + return self.result_row(program, referenced_tables, m, None); + } + Ok(true) } Operator::Limit { source, .. } => { diff --git a/testing/all.test b/testing/all.test index 26ee60589..67d07870a 100755 --- a/testing/all.test +++ b/testing/all.test @@ -12,4 +12,4 @@ source $testdir/where.test source $testdir/like.test source $testdir/scalar-functions.test source $testdir/orderby.test -source $testdir/json.test \ No newline at end of file +source $testdir/json.test diff --git a/testing/select.test b/testing/select.test index 1540cd493..3803bfba6 100755 --- a/testing/select.test +++ b/testing/select.test @@ -34,3 +34,7 @@ do_execsql_test table-star { do_execsql_test table-star-2 { select p.*, u.age from users u join products p limit 1; } {1|hat|79.0|94} + +do_execsql_test seekrowid { + select * from users u where u.id = 5; +} {"5|Edward|Miller|christiankramer@example.com|725-281-1033|08522 English Plain|Lake Keith|ID|23283|15"}