uqa_sql/ast/
type_lifecycle.rs1use serde::{Deserialize, Serialize};
10
11use super::RoleSpecification;
12
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
15pub enum TypeObjectKind {
16 Type,
17 Domain,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct AlterTypeObject {
23 pub kind: TypeObjectKind,
24 pub name: String,
26 pub action: AlterTypeObjectAction,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub enum AlterTypeObjectAction {
31 RenameTo(String),
33 SetSchema(String),
35 OwnerTo(RoleSpecification),
36 RenameAttribute {
38 from: String,
39 to: String,
40 },
41 AddAttributes(Vec<super::CompositeAttributeAddition>),
43 AlterAttributes {
45 removals: Vec<super::CompositeAttributeRemoval>,
46 #[serde(default)]
47 type_changes: Vec<super::CompositeAttributeDefinition>,
48 additions: Vec<super::CompositeAttributeAddition>,
49 },
50}