use crate::types_array::{
ArrayAttrAst, ArrayCellOrderAst, ArrayCoordLiteral, ArrayDimAst, ArrayInsertRow,
ArrayTileOrderAst,
};
#[derive(Debug, Clone, PartialEq)]
pub enum ArrayStatement {
Create(CreateArrayAst),
Drop(DropArrayAst),
Insert(InsertArrayAst),
Delete(DeleteArrayAst),
Alter(AlterArrayAst),
}
#[derive(Debug, Clone, PartialEq)]
pub struct AlterArrayAst {
pub name: String,
pub set: Vec<(String, Option<i64>)>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CreateArrayAst {
pub name: String,
pub dims: Vec<ArrayDimAst>,
pub attrs: Vec<ArrayAttrAst>,
pub tile_extents: Vec<i64>,
pub cell_order: ArrayCellOrderAst,
pub tile_order: ArrayTileOrderAst,
pub prefix_bits: u8,
pub audit_retain_ms: Option<u64>,
pub minimum_audit_retain_ms: Option<u64>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct DropArrayAst {
pub name: String,
pub if_exists: bool,
}
#[derive(Debug, Clone, PartialEq)]
pub struct InsertArrayAst {
pub name: String,
pub rows: Vec<ArrayInsertRow>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct DeleteArrayAst {
pub name: String,
pub coords: Vec<Vec<ArrayCoordLiteral>>,
}