use crate::SQLImplementation;
use super::create::CreateDataTypes;
pub mod implement;
pub mod sql_implementations;
#[derive(Debug)]
pub struct AlterProps {
pub connect: SQLImplementation,
}
#[derive(Debug)]
pub struct AlterTable {
pub connect: SQLImplementation,
pub query: String,
pub table_name: String,
}
#[derive(Debug)]
pub struct AlterColumns {
pub name: String,
pub data_type: CreateDataTypes,
pub default: Option<String>,
pub not_null: bool,
}
#[derive(Debug)]
pub struct Altered {
pub connect: SQLImplementation,
pub query: String,
}
pub trait AlterBuilder {
fn table(self, table_name: &str) -> AlterTable;
}
pub trait AlterTableBuilder {
fn add(self, columns: Vec<AlterColumns>) -> Altered;
fn modify(self, columns: Vec<AlterColumns>) -> Altered;
fn drop(self, column: &str) -> Altered;
fn rename_column(self, column: &str, new_name: &str) -> Altered;
fn rename(self, new_table_name: &str) -> Altered;
}