drizzle_core/builder/
states.rs1use super::{ClauseAllowed, ExecutableState, clause};
4
5#[derive(Debug, Clone, Copy, Default)]
11pub struct SelectInitial;
12
13#[derive(Debug, Clone, Copy, Default)]
15pub struct SelectFromSet;
16
17#[derive(Debug, Clone, Copy, Default)]
19pub struct SelectJoinSet;
20
21#[derive(Debug, Clone, Copy, Default)]
23pub struct SelectWhereSet;
24
25#[derive(Debug, Clone, Copy, Default)]
27pub struct SelectGroupSet;
28
29#[derive(Debug, Clone, Copy, Default)]
31pub struct SelectOrderSet;
32
33#[derive(Debug, Clone, Copy, Default)]
35pub struct SelectLimitSet;
36
37#[derive(Debug, Clone, Copy, Default)]
39pub struct SelectOffsetSet;
40
41#[derive(Debug, Clone, Copy, Default)]
43pub struct SelectSetOpSet;
44
45impl ExecutableState for SelectFromSet {
46 type Rows<R: crate::row::RowCount> = R;
47}
48impl ExecutableState for SelectWhereSet {
49 type Rows<R: crate::row::RowCount> = R;
50}
51impl ExecutableState for SelectLimitSet {
52 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
53}
54impl ExecutableState for SelectOffsetSet {
55 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
56}
57impl ExecutableState for SelectOrderSet {
60 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
61}
62impl ExecutableState for SelectGroupSet {
63 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
64}
65impl ExecutableState for SelectJoinSet {
66 type Rows<R: crate::row::RowCount> = R;
67}
68impl ExecutableState for SelectSetOpSet {
69 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
70}
71
72impl ClauseAllowed<clause::Where> for SelectFromSet {}
73impl ClauseAllowed<clause::Where> for SelectJoinSet {}
74
75impl ClauseAllowed<clause::GroupBy> for SelectFromSet {}
76impl ClauseAllowed<clause::GroupBy> for SelectJoinSet {}
77impl ClauseAllowed<clause::GroupBy> for SelectWhereSet {}
78
79impl ClauseAllowed<clause::OrderBy> for SelectFromSet {}
80impl ClauseAllowed<clause::OrderBy> for SelectJoinSet {}
81impl ClauseAllowed<clause::OrderBy> for SelectWhereSet {}
82impl ClauseAllowed<clause::OrderBy> for SelectGroupSet {}
83impl ClauseAllowed<clause::Limit> for SelectFromSet {}
87impl ClauseAllowed<clause::Limit> for SelectJoinSet {}
88impl ClauseAllowed<clause::Limit> for SelectWhereSet {}
89impl ClauseAllowed<clause::Limit> for SelectGroupSet {}
90impl ClauseAllowed<clause::Limit> for SelectOrderSet {}
91impl ClauseAllowed<clause::Limit> for SelectSetOpSet {}
92
93impl ClauseAllowed<clause::Offset> for SelectFromSet {}
94impl ClauseAllowed<clause::Offset> for SelectLimitSet {}
95impl ClauseAllowed<clause::Offset> for SelectSetOpSet {}
96
97impl ClauseAllowed<clause::Join> for SelectFromSet {}
98impl ClauseAllowed<clause::Join> for SelectJoinSet {}
99
100impl ClauseAllowed<clause::Having> for SelectGroupSet {}
101
102impl ClauseAllowed<clause::Simple> for SelectFromSet {}
103impl ClauseAllowed<clause::Simple> for SelectJoinSet {}
104impl ClauseAllowed<clause::Simple> for SelectWhereSet {}
105impl ClauseAllowed<clause::Simple> for SelectGroupSet {}
106impl ClauseAllowed<clause::Simple> for SelectOrderSet {}
107impl ClauseAllowed<clause::Simple> for SelectLimitSet {}
108impl ClauseAllowed<clause::Simple> for SelectOffsetSet {}
109
110impl ClauseAllowed<clause::Compound> for SelectFromSet {}
111impl ClauseAllowed<clause::Compound> for SelectJoinSet {}
112impl ClauseAllowed<clause::Compound> for SelectWhereSet {}
113impl ClauseAllowed<clause::Compound> for SelectGroupSet {}
114impl ClauseAllowed<clause::Compound> for SelectOrderSet {}
115impl ClauseAllowed<clause::Compound> for SelectLimitSet {}
116impl ClauseAllowed<clause::Compound> for SelectOffsetSet {}
117impl ClauseAllowed<clause::Compound> for SelectSetOpSet {}
118
119impl ClauseAllowed<clause::Source> for SelectFromSet {}
120impl ClauseAllowed<clause::Source> for SelectJoinSet {}
121impl ClauseAllowed<clause::Source> for SelectWhereSet {}
122impl ClauseAllowed<clause::Source> for SelectGroupSet {}
123impl ClauseAllowed<clause::Source> for SelectOrderSet {}
124impl ClauseAllowed<clause::Source> for SelectLimitSet {}
125impl ClauseAllowed<clause::Source> for SelectOffsetSet {}
126impl ClauseAllowed<clause::Source> for SelectSetOpSet {}
127
128#[derive(Debug, Clone, Copy, Default)]
134pub struct InsertInitial;
135
136#[derive(Debug, Clone, Copy, Default)]
138pub struct InsertValuesSet;
139
140#[derive(Debug, Clone, Copy, Default)]
142pub struct InsertReturningSet;
143
144#[derive(Debug, Clone, Copy, Default)]
146pub struct InsertOnConflictSet;
147
148#[derive(Debug, Clone, Copy, Default)]
150pub struct InsertDoUpdateSet;
151
152impl ExecutableState for InsertValuesSet {
153 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
154}
155impl ExecutableState for InsertReturningSet {
156 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
157}
158impl ExecutableState for InsertOnConflictSet {
159 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
160}
161impl ExecutableState for InsertDoUpdateSet {
162 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
163}
164
165#[derive(Debug, Clone, Copy, Default)]
171pub struct DeleteInitial;
172
173#[derive(Debug, Clone, Copy, Default)]
175pub struct DeleteWhereSet;
176
177#[derive(Debug, Clone, Copy, Default)]
179pub struct DeleteReturningSet;
180
181impl ExecutableState for DeleteWhereSet {
182 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
183}
184impl ExecutableState for DeleteReturningSet {
185 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
186}
187
188#[derive(Debug, Clone, Copy, Default)]
194pub struct UpdateInitial;
195
196#[derive(Debug, Clone, Copy, Default)]
198pub struct UpdateSetClauseSet;
199
200#[derive(Debug, Clone, Copy, Default)]
202pub struct UpdateWhereSet;
203
204#[derive(Debug, Clone, Copy, Default)]
206pub struct UpdateReturningSet;
207
208impl ExecutableState for UpdateWhereSet {
209 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
210}
211impl ExecutableState for UpdateReturningSet {
212 type Rows<R: crate::row::RowCount> = crate::row::ZeroOrMore;
213}