diff --git a/Userland/Libraries/LibSQL/AST/Select.cpp b/Userland/Libraries/LibSQL/AST/Select.cpp index c350ffee65..56d7d0be26 100644 --- a/Userland/Libraries/LibSQL/AST/Select.cpp +++ b/Userland/Libraries/LibSQL/AST/Select.cpp @@ -34,9 +34,15 @@ RefPtr Select::execute(ExecutionContext& context) const } context.result = SQLResult::construct(); AK::NonnullRefPtr descriptor = AK::adopt_ref(*new TupleDescriptor); + Tuple tuple(descriptor); for (auto& row : context.database->select_all(*table)) { context.current_row = &row; - Tuple tuple(descriptor); + if (where_clause()) { + auto where_result = where_clause()->evaluate(context); + if (!where_result) + continue; + } + tuple.clear(); for (auto& col : columns) { auto value = col.expression()->evaluate(context); tuple.append(value);