sea_query/extension/mysql/
explain.rs1use crate::{DynIden, IntoTableRef, TableRef};
2
3#[derive(Debug, Clone, PartialEq)]
5pub enum ExplainTable {
6 Table(TableRef),
7 WithColumn(TableRef, DynIden),
8 WithWildcard(TableRef, &'static str),
9}
10
11#[derive(Debug, Clone, PartialEq)]
12pub(crate) enum ExplainTableTarget {
13 Column(DynIden),
14 Wildcard(&'static str),
15}
16
17#[derive(Debug, Clone, PartialEq)]
18pub(crate) enum MySqlExplainSchemaSpec {
19 Schema(DynIden),
20 Database(DynIden),
21}
22
23impl<T> From<T> for ExplainTable
24where
25 T: IntoTableRef,
26{
27 fn from(value: T) -> Self {
28 Self::Table(value.into_table_ref())
29 }
30}
31
32#[derive(Default, Debug, Clone, PartialEq)]
33pub(crate) struct MySqlExplainOptions {
34 pub(crate) into_variable: Option<String>,
35 pub(crate) schema_spec: Option<MySqlExplainSchemaSpec>,
36 pub(crate) table: Option<TableRef>,
37 pub(crate) target: Option<ExplainTableTarget>,
38 pub(crate) for_connection: Option<u64>,
39}