Validate WHERE clause for invalid references

This commit is contained in:
Ophir LOJKINE
2026-07-16 11:58:32 +02:00
parent 5449033f7b
commit 099366e4e4
2 changed files with 11 additions and 0 deletions
+10
View File
@@ -604,6 +604,16 @@ mod tests {
assert!(error.to_string().contains("HAVING"));
}
#[test]
fn database_cannot_filter_by_computed_column_in_where() {
let FileStatement::Error(error) =
one("select sqlpage.url_encode(name) as enc from users where enc <> ''")
else {
panic!("expected rewrite error");
};
assert!(error.to_string().contains("WHERE"));
}
#[test]
fn database_cannot_group_by_computed_column_in_expression() {
let FileStatement::Error(error) =
+1
View File
@@ -227,6 +227,7 @@ fn rewrite_top_level_projection(
database_projection.append(&mut rewriter.private_projection);
select.projection = database_projection;
reject_computed_alias_references("WHERE", select.selection.as_ref(), &computed_columns)?;
reject_computed_group_by_references(&select.group_by, &computed_columns)?;
reject_computed_alias_references("HAVING", select.having.as_ref(), &computed_columns)?;
reject_computed_alias_references("QUALIFY", select.qualify.as_ref(), &computed_columns)?;