MySqlModeFlags

Struct MySqlModeFlags 

Source
pub struct MySqlModeFlags {
    pub pipes_as_concat: bool,
    pub ansi_quotes: bool,
    pub strict_mode: bool,
    pub sqlite_division_semantics: bool,
}
Expand description

MySQL-specific mode flags (similar to MySQL’s sql_mode variable)

These flags control various MySQL-specific behaviors that differ from standard SQL or other database implementations.

§References

Fields§

§pipes_as_concat: bool

Whether || acts as string concat (vs OR operator)

Corresponds to MySQL PIPES_AS_CONCAT mode.

  • true: 'a' || 'b' returns 'ab' (string concatenation)
  • false (default): 'a' || 'b' returns 1 or 0 (logical OR)
§ansi_quotes: bool

Whether “ acts as identifier quote (vs string literal)

Corresponds to MySQL ANSI_QUOTES mode.

  • true: "col" is an identifier (like backticks)
  • false (default): "col" is a string literal (like single quotes)
§strict_mode: bool

Strict mode for type coercion and errors

Corresponds to MySQL STRICT_TRANS_TABLES.

  • true: Strict type checking, errors on invalid data
  • false (default): Permissive mode with warnings
§sqlite_division_semantics: bool

Use SQLite division semantics (INTEGER / INTEGER → INTEGER)

This flag is used when MySQL syntax is needed (e.g., CAST...AS SIGNED) but SQLite division semantics are required for compatibility with test suites that were generated using SQLite.

  • true: 5 / 2 = 2 (truncated integer division, SQLite behavior)
  • false (default): 5 / 2 = 2.5 (exact decimal division, MySQL behavior)

This is particularly useful for SQLLogicTest compatibility where tests are tagged onlyif mysql for syntax reasons but expect SQLite division results.

Implementations§

Source§

impl MySqlModeFlags

Source

pub fn new() -> Self

Create MySqlModeFlags with all default settings

Source

pub fn with_pipes_as_concat() -> Self

Create MySqlModeFlags with PIPES_AS_CONCAT enabled

Source

pub fn with_ansi_quotes() -> Self

Create MySqlModeFlags with ANSI_QUOTES enabled

Source

pub fn with_strict_mode() -> Self

Create MySqlModeFlags with STRICT_MODE enabled

Source

pub fn ansi() -> Self

Create MySqlModeFlags with ANSI mode (combination of ANSI_QUOTES and PIPES_AS_CONCAT)

Source

pub fn with_sqlite_division_semantics() -> Self

Create MySqlModeFlags with SQLite division semantics enabled

This is useful for SQLLogicTest compatibility where MySQL syntax is needed but division should behave like SQLite (INTEGER / INTEGER → INTEGER).

Trait Implementations§

Source§

impl Clone for MySqlModeFlags

Source§

fn clone(&self) -> MySqlModeFlags

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 Debug for MySqlModeFlags

Source§

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

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

impl Default for MySqlModeFlags

Source§

fn default() -> MySqlModeFlags

Returns the “default value” for a type. Read more
Source§

impl Hash for MySqlModeFlags

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for MySqlModeFlags

Source§

fn eq(&self, other: &MySqlModeFlags) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for MySqlModeFlags

Source§

impl StructuralPartialEq for MySqlModeFlags

Auto Trait Implementations§

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> 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.