From c75b1ec866cd6b7773d930d8af5aa1e0795e7449 Mon Sep 17 00:00:00 2001 From: Nikhil Benesch Date: Sat, 7 Jan 2023 20:47:10 -0500 Subject: [PATCH] Don't run EXPLAIN nullability analysis on Materialize Materialize [0] is a PostgreSQL-like database that, similar to CockroachDB, does not support PostgreSQL's `EXPLAIN` output. Extend the fix from PR #1248 to Materialize, too, so that sqlx can still be used with Materialize. See #1248. [0]: https://materialize.com --- sqlx-postgres/src/connection/describe.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sqlx-postgres/src/connection/describe.rs b/sqlx-postgres/src/connection/describe.rs index 1adbd18dfe..bcc1e4b8f7 100644 --- a/sqlx-postgres/src/connection/describe.rs +++ b/sqlx-postgres/src/connection/describe.rs @@ -399,8 +399,10 @@ WHERE rngtypid = $1 .fetch_all(&mut *self) .await?; - // if it's cockroachdb skip this step #1248 - if !self.stream.parameter_statuses.contains_key("crdb_version") { + // If the server is CockroachDB or Materialize, skip this step (#1248). + if !self.stream.parameter_statuses.contains_key("crdb_version") + && !self.stream.parameter_statuses.contains_key("mz_version") + { // patch up our null inference with data from EXPLAIN let nullable_patch = self .nullables_from_explain(stmt_id, meta.parameters.len())