Struct AlterTable

Source
pub struct AlterTable<'a> {
    pub alter_span: Span,
    pub online: Option<Span>,
    pub ignore: Option<Span>,
    pub table_span: Span,
    pub if_exists: Option<Span>,
    pub table: QualifiedName<'a>,
    pub alter_specifications: Vec<AlterSpecification<'a>>,
}
Expand description

Represent an alter table statement

let options = ParseOptions::new().dialect(SQLDialect::MariaDB);

let sql = "ALTER TABLE `t1`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,
    ADD CONSTRAINT `t1_t2` FOREIGN KEY (`two`) REFERENCES `t2` (`id`);";

let mut issues = Issues::new(sql);
let mut stmts = parse_statements(sql, &mut issues, &options);

let alter: AlterTable = match stmts.pop() {
    Some(Statement::AlterTable(a)) => a,
    _ => panic!("We should get an alter table statement")
};

assert!(alter.table.identifier.as_str() == "t1");
println!("{:#?}", alter.alter_specifications);

let options = ParseOptions::new().dialect(SQLDialect::PostgreSQL);
let sql = "ALTER TABLE t1
    ALTER COLUMN id DROP NOT NULL,
    ALTER COLUMN id SET NOT NULL,
    ALTER COLUMN id SET DEFAULT 47,
    ALTER COLUMN id DROP DEFAULT,
    ALTER COLUMN id TYPE int;";

let mut issues = Issues::new(sql);
let mut stmts = parse_statements(sql, &mut issues, &options);

let alter: AlterTable = match stmts.pop() {
    Some(Statement::AlterTable(a)) => a,
    _ => panic!("We should get an alter table statement")
};

Fields§

§alter_span: Span

Span of “ALTER”

§online: Option<Span>

Span of “ONLINE” if specified

§ignore: Option<Span>

Span of “IGNORE” if specified

§table_span: Span

Span of “TABLE”

§if_exists: Option<Span>

Span of “IF EXISTS” if specified

§table: QualifiedName<'a>

The identifier of the table to alter

§alter_specifications: Vec<AlterSpecification<'a>>

List of alterations to do

Trait Implementations§

Source§

impl<'a> Clone for AlterTable<'a>

Source§

fn clone(&self) -> AlterTable<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for AlterTable<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Spanned for AlterTable<'a>

Source§

fn span(&self) -> Span

Compute byte span of an ast fragment
Source§

fn join_span(&self, other: &impl OptSpanned) -> Span

Compute the minimal span containing both self and other

Auto Trait Implementations§

§

impl<'a> Freeze for AlterTable<'a>

§

impl<'a> RefUnwindSafe for AlterTable<'a>

§

impl<'a> Send for AlterTable<'a>

§

impl<'a> Sync for AlterTable<'a>

§

impl<'a> Unpin for AlterTable<'a>

§

impl<'a> UnwindSafe for AlterTable<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OptSpanned for T
where T: Spanned,

Source§

fn opt_span(&self) -> Option<Range<usize>>

Compute an optional byte span of an ast fragment
Source§

fn opt_join_span(&self, other: &impl OptSpanned) -> Option<Span>

Compute the minimal span containing both self and other if either is missing return the other
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.