Skip to content

Commit fffc66c

Browse files
Tests: Cover OPTION FOR Display propagation and non-identifier REVOKE
1 parent 35854c9 commit fffc66c

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

‎tests/sqlparser_common.rs‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22636,4 +22636,33 @@ fn parse_revoke_role_option_for() {
2263622636
.unwrap_err(),
2263722637
ParserError::ParserError("Expected: FROM, found: TO".to_string())
2263822638
);
22639+
assert_eq!(
22640+
all_dialects()
22641+
.parse_sql_statements("REVOKE 1 FROM anon")
22642+
.unwrap_err(),
22643+
ParserError::ParserError("Expected: a privilege keyword, found: 1".to_string())
22644+
);
22645+
}
22646+
22647+
#[test]
22648+
fn display_revoke_role_option_for_propagates_write_errors() {
22649+
use core::fmt::{self, Write};
22650+
22651+
struct RejectingWriter<'a>(&'a str);
22652+
22653+
impl Write for RejectingWriter<'_> {
22654+
fn write_str(&mut self, value: &str) -> fmt::Result {
22655+
if value.contains(self.0) {
22656+
Err(fmt::Error)
22657+
} else {
22658+
Ok(())
22659+
}
22660+
}
22661+
}
22662+
22663+
let statement = all_dialects().verified_stmt("REVOKE ADMIN OPTION FOR bypasser FROM anon");
22664+
for rejected in ["REVOKE ", "ADMIN", " OPTION FOR "] {
22665+
let mut writer = RejectingWriter(rejected);
22666+
assert_eq!(write!(writer, "{statement}"), Err(fmt::Error));
22667+
}
2263922668
}

0 commit comments

Comments
 (0)