uqa_sql/ast/
identity_sequence.rs1use super::{RelationPersistence, SequenceDeclaration};
10use crate::SQLError;
11use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
15pub struct IdentitySequenceDeclaration {
16 pub name: Option<IdentitySequenceName>,
18 pub persistence: Option<RelationPersistence>,
20 pub sequence: SequenceDeclaration,
22 pub error: Option<DeferredSQLError>,
24}
25
26#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
28pub struct IdentitySequenceName {
29 pub schema: Option<String>,
30 pub name: String,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub struct DeferredSQLError {
36 pub sqlstate: String,
37 pub message: String,
38}
39
40impl From<&SQLError> for DeferredSQLError {
41 fn from(error: &SQLError) -> Self {
42 Self {
43 sqlstate: error.sqlstate().unwrap_or("XX000").to_string(),
44 message: error.to_string(),
45 }
46 }
47}
48
49impl From<DeferredSQLError> for SQLError {
50 fn from(error: DeferredSQLError) -> Self {
51 Self::Routine {
52 sqlstate: error.sqlstate,
53 message: error.message,
54 }
55 }
56}