From e417188cb25e8488fe4c2e0a9846f50389c680de Mon Sep 17 00:00:00 2001 From: PThorpe92 Date: Thu, 16 Oct 2025 12:32:56 -0400 Subject: [PATCH] Fix panic when selecting explicit rowid from FROM clause subquery --- core/translate/expr.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/core/translate/expr.rs b/core/translate/expr.rs index 4f546205e..e66400cb0 100644 --- a/core/translate/expr.rs +++ b/core/translate/expr.rs @@ -3495,14 +3495,18 @@ pub fn bind_and_rewrite_expr<'a>( )); } // only if we haven't found a match, check for explicit rowid reference - } else if let Some(row_id_expr) = parse_row_id( - &normalized_id, - referenced_tables.joined_tables()[0].internal_id, - || referenced_tables.joined_tables().len() != 1, - )? { - *expr = row_id_expr; - - return Ok(WalkControl::Continue); + } else { + let is_btree_table = matches!(joined_table.table, Table::BTree(_)); + if is_btree_table { + if let Some(row_id_expr) = parse_row_id( + &normalized_id, + referenced_tables.joined_tables()[0].internal_id, + || referenced_tables.joined_tables().len() != 1, + )? { + *expr = row_id_expr; + return Ok(WalkControl::Continue); + } + } } }