winterbaume_redshiftdata/
types.rs1use chrono::{DateTime, Utc};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum StatementStatus {
6 Submitted,
7 Started,
8 Finished,
9 Failed,
10 Aborted,
11}
12
13impl StatementStatus {
14 pub fn as_str(&self) -> &str {
15 match self {
16 Self::Submitted => "SUBMITTED",
17 Self::Started => "STARTED",
18 Self::Finished => "FINISHED",
19 Self::Failed => "FAILED",
20 Self::Aborted => "ABORTED",
21 }
22 }
23}
24
25#[derive(Debug, Clone)]
27pub struct StatementParameter {
28 pub name: String,
29 pub value: String,
30}
31
32#[derive(Debug, Clone)]
34pub struct Statement {
35 pub id: String,
36 pub sql: String,
37 pub cluster_identifier: Option<String>,
38 pub workgroup_name: Option<String>,
39 pub database: String,
40 pub db_user: Option<String>,
41 pub secret_arn: Option<String>,
42 pub status: StatementStatus,
43 pub created_at: DateTime<Utc>,
44 pub updated_at: DateTime<Utc>,
45 pub result_rows: i64,
46 pub result_size: i64,
47 pub has_result_set: bool,
48 pub query_string: String,
49 pub parameters: Vec<StatementParameter>,
50 pub sqls: Vec<String>,
51 pub statement_name: Option<String>,
52 pub is_batch: bool,
53 pub result_columns: Vec<(String, String)>,
55 pub result_data: Vec<Vec<Option<String>>>,
57 pub error_message: Option<String>,
59}