osirisdb 0.7.0

A SQL database engine built from scratch in Rust featuring a custom parser, binder, query planner, optimizer, catalog, and storage engine.
Documentation
use crate::common::symbol::Symbol;

/// Represents a `CREATE EXTENSION` statement in the AST.
///
/// This AST node captures the parameters for loading a new extension into the
/// current database, corresponding to:
/// `CREATE EXTENSION [ IF NOT EXISTS ] extension_name [ WITH ] [ SCHEMA schema_name ] [ VERSION version ] [ CASCADE ]`.
#[derive(Debug, Clone, PartialEq)]
pub struct CreateExtensionStmt {
    /// The name of the extension to be installed.
    pub name: Symbol,
    /// If `true`, suppresses the error that would normally occur if the extension already exists.
    /// The extension is not modified in any way when this flag is set.
    pub if_not_exists: bool,
    /// Optional name of the schema in which to install the extension's objects.
    /// If not specified, the extension's default installation schema is used.
    pub schema: Option<Symbol>,
    /// Optional version of the extension to install.
    /// If not specified, the default version as defined in the extension's control file is used.
    pub version: Option<Symbol>,
    /// If `true`, automatically installs any required extensions that are not already installed.
    /// Dependencies are also installed with `CASCADE` semantics.
    pub cascade: bool,
}