use insta::assert_snapshot;
use pqb::query::Explain;
use pqb::query::Select;
#[test]
fn explain_postgres_select_with_options() {
assert_snapshot!(
Explain::new()
.analyze()
.verbose(false)
.costs(true)
.settings(false)
.generic_plan(true)
.buffers(true)
.serialize_text()
.wal(true)
.timing(false)
.summary(true)
.memory(true)
.format_json()
.statement(Select::new().column("character").from("character"))
.to_sql(),
@r#"EXPLAIN (ANALYZE, VERBOSE 0, COSTS, SETTINGS 0, GENERIC_PLAN, BUFFERS, SERIALIZE TEXT, WAL, TIMING 0, SUMMARY, MEMORY, FORMAT JSON) SELECT "character" FROM "character""#
);
}
#[test]
fn explain_postgres_serialize_text() {
assert_snapshot!(
Explain::new()
.serialize_text()
.statement(Select::new().column("character").from("character"))
.to_sql(),
@r#"EXPLAIN (SERIALIZE TEXT) SELECT "character" FROM "character""#
);
}
#[test]
fn explain_postgres_serialize_binary() {
assert_snapshot!(
Explain::new()
.serialize_binary()
.statement(Select::new().column("character").from("character"))
.to_sql(),
@r#"EXPLAIN (SERIALIZE BINARY) SELECT "character" FROM "character""#
);
}
#[test]
fn explain_postgres_serialize_none() {
assert_snapshot!(
Explain::new()
.serialize_none()
.statement(Select::new().column("character").from("character"))
.to_sql(),
@r#"EXPLAIN (SERIALIZE NONE) SELECT "character" FROM "character""#
);
}