Skip to content

Commit 774880d

Browse files
authored
cockroachdb fix for macro (#1386)
1 parent 38435ca commit 774880d

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

sqlx-core/src/postgres/connection/describe.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -399,13 +399,16 @@ SELECT oid FROM pg_catalog.pg_type WHERE typname ILIKE $1
399399
.fetch_all(&mut *self)
400400
.await?;
401401

402-
// patch up our null inference with data from EXPLAIN
403-
let nullable_patch = self
404-
.nullables_from_explain(stmt_id, meta.parameters.len())
405-
.await?;
402+
// if it's cockroachdb skip this step #1248
403+
if !self.stream.parameter_statuses.contains_key("crdb_version") {
404+
// patch up our null inference with data from EXPLAIN
405+
let nullable_patch = self
406+
.nullables_from_explain(stmt_id, meta.parameters.len())
407+
.await?;
406408

407-
for (nullable, patch) in nullables.iter_mut().zip(nullable_patch) {
408-
*nullable = patch.or(*nullable);
409+
for (nullable, patch) in nullables.iter_mut().zip(nullable_patch) {
410+
*nullable = patch.or(*nullable);
411+
}
409412
}
410413

411414
Ok(nullables)

sqlx-core/src/postgres/message/parameter_status.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,16 @@ fn bench_decode_parameter_status(b: &mut test::Bencher) {
4747
ParameterStatus::decode(test::black_box(Bytes::from_static(DATA))).unwrap();
4848
});
4949
}
50+
51+
#[test]
52+
fn test_decode_parameter_status_response() {
53+
const PARAMETER_STATUS_RESPONSE: &[u8] = b"crdb_version\0CockroachDB CCL v21.1.0 (x86_64-unknown-linux-gnu, built 2021/05/17 13:49:40, go1.15.11)\0";
54+
55+
let message = ParameterStatus::decode(Bytes::from(PARAMETER_STATUS_RESPONSE)).unwrap();
56+
57+
assert_eq!(message.name, "crdb_version");
58+
assert_eq!(
59+
message.value,
60+
"CockroachDB CCL v21.1.0 (x86_64-unknown-linux-gnu, built 2021/05/17 13:49:40, go1.15.11)"
61+
);
62+
}

0 commit comments

Comments
 (0)