Skip to content

Commit 50e9e91

Browse files
Test table inheritance markers and formatter errors
1 parent da8e662 commit 50e9e91

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎tests/sqlparser_postgres.rs‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11790,3 +11790,31 @@ fn parse_table_inheritance_markers() {
1179011790
}
1179111791
}
1179211792
}
11793+
11794+
#[test]
11795+
fn display_table_inheritance_propagates_write_errors() {
11796+
use core::fmt::{self, Write};
11797+
11798+
struct RejectingWriter(&'static str);
11799+
11800+
impl Write for RejectingWriter {
11801+
fn write_str(&mut self, value: &str) -> fmt::Result {
11802+
if value == self.0 {
11803+
Err(fmt::Error)
11804+
} else {
11805+
Ok(())
11806+
}
11807+
}
11808+
}
11809+
11810+
for (sql, rejected) in [
11811+
("SELECT * FROM ONLY (t)", "ONLY ("),
11812+
("SELECT * FROM ONLY t", "ONLY "),
11813+
("SELECT * FROM t *", " *"),
11814+
("SELECT * FROM t", "t"),
11815+
] {
11816+
let stmt = pg_and_generic().verified_stmt(sql);
11817+
let mut writer = RejectingWriter(rejected);
11818+
assert_eq!(write!(writer, "{stmt}"), Err(fmt::Error), "{sql}");
11819+
}
11820+
}

0 commit comments

Comments
 (0)