rbdc_oracle/statement/
mod.rs1use crate::{OracleColumn, OracleTypeInfo};
2use either::Either;
3use std::sync::Arc;
4
5mod handle;
6mod r#virtual;
7
8pub(crate) use handle::OracleStatementHandle;
9pub(crate) use r#virtual::VirtualStatement;
10
11#[derive(Debug, Clone)]
12pub struct OracleStatement {
13 pub(crate) sql: String,
14 pub(crate) parameters: usize,
15 pub(crate) columns: Arc<Vec<OracleColumn>>,
16}
17
18impl OracleStatement {
19 pub fn to_owned(&self) -> OracleStatement {
20 OracleStatement {
21 sql: self.sql.clone(),
22 parameters: self.parameters,
23 columns: Arc::clone(&self.columns),
24 }
25 }
26
27 pub fn sql(&self) -> &str {
28 &self.sql
29 }
30
31 pub fn parameters(&self) -> Option<Either<&[OracleTypeInfo], usize>> {
32 Some(Either::Right(self.parameters))
33 }
34
35 pub fn columns(&self) -> &[OracleColumn] {
36 &self.columns
37 }
38}