Validate WHERE clause for invalid references
This commit is contained in:
@@ -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) =
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
Reference in New Issue
Block a user