Skip to content

Commit dd953e0

Browse files
committed
Treat deferred ODBC metadata generically
1 parent eabd148 commit dd953e0

1 file changed

Lines changed: 2 additions & 20 deletions

File tree

  • sqlx-core/src/odbc/connection

sqlx-core/src/odbc/connection/mod.rs

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ use crate::odbc::{OdbcStatement, OdbcStatementMetadata};
1313
use futures_core::future::BoxFuture;
1414
use futures_util::future;
1515
use odbc_api::ConnectionTransitions;
16-
use odbc_api::Error as OdbcApiError;
17-
use odbc_api::{
18-
handles::{slice_to_cow_utf8, StatementConnection},
19-
Prepared, ResultSetMetadata, SharedConnection,
20-
};
16+
use odbc_api::{handles::StatementConnection, Prepared, ResultSetMetadata, SharedConnection};
2117
use odbc_bridge::{establish_connection, execute_sql};
2218
use std::borrow::Cow;
2319
use std::sync::{Arc, Mutex};
@@ -39,11 +35,7 @@ fn collect_columns(
3935
) -> Result<CollectedColumns, Error> {
4036
let count = match prepared.num_result_cols() {
4137
Ok(count) => count,
42-
Err(error)
43-
if allow_deferred_result_columns
44-
&& parameter_count > 0
45-
&& is_unbound_parameter_metadata_error(&error) =>
46-
{
38+
Err(error) if allow_deferred_result_columns && parameter_count > 0 => {
4739
log::debug!("ODBC prepare deferred result columns until execution: {error}");
4840
return Ok(CollectedColumns {
4941
columns: Vec::new(),
@@ -80,16 +72,6 @@ fn collect_statement_metadata(
8072
))
8173
}
8274

83-
fn is_unbound_parameter_metadata_error(error: &OdbcApiError) -> bool {
84-
match error {
85-
OdbcApiError::Diagnostics { record, .. } if record.state.as_str() == "01000" => {
86-
let message = slice_to_cow_utf8(&record.message).to_ascii_lowercase();
87-
message.contains("parameter") && message.contains("bound")
88-
}
89-
_ => false,
90-
}
91-
}
92-
9375
pub(super) fn describe_column<S>(stmt: &mut S, index: u16) -> Result<OdbcColumn, Error>
9476
where
9577
S: ResultSetMetadata,

0 commit comments

Comments
 (0)