/
restrict.go
212 lines (183 loc) · 4.67 KB
/
restrict.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
package easydb
// iBuildQueryReturn iBuildQueryReturn
type iBuildQueryReturn interface {
QueryFuncs(funccs ...QueryFunc) iQFuncReturn
Columns(columns ...Column) iColumnsReturn
}
// iQFuncReturn iQFuncReturn
type iQFuncReturn interface {
QueryFuncs(funccs ...QueryFunc) iQFuncReturn
Columns(columns ...Column) iColumnsReturn
Tables(tables ...Table) iFromsReturn
}
// iColumnsReturn iColumnsReturn
type iColumnsReturn interface {
iQFuncReturn
}
// iFromsReturn iFromsReturn
type iFromsReturn interface {
Tables(tables ...Table) iFromsReturn
RightJoin(table Table) iJoinReturn
LeftJoin(table Table) iJoinReturn
Where(where Where) iWheresReturn
GroupBy(group ...string) iGroupByReturn
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iJoinReturn iJoinReturn
type iJoinReturn interface {
On(on On) iOnReturn
}
// iOnReturn iOnReturn
type iOnReturn interface {
RightJoin(table Table) iJoinReturn
LeftJoin(table Table) iJoinReturn
Where(where Where) iWheresReturn
GroupBy(group ...string) iGroupByReturn
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
Gen() (sql string, err error)
Val() []interface{}
And() iAndReturn
Or() iOrReturn
}
// iWheresReturn iWheresReturn
type iWheresReturn interface {
And() iAndReturn
Or() iOrReturn
GroupBy(group ...string) iGroupByReturn
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
EndGroup() iEndGroupReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iGroupByReturn 制约groupby条件 后调用
type iGroupByReturn interface {
Having(having Having) iHavingsReturn
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iHavingsReturn iHavingsReturn
type iHavingsReturn interface {
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
And() iAndReturn
Or() iOrReturn
EndGroup() iEndGroupReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iOrderByReturn iOrderByReturn
type iOrderByReturn interface {
Limit(limit int) iLimitReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iLimitReturn iLimitReturn
type iLimitReturn interface {
Offset(offset int) iOffsetReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iOffsetReturn iOffsetReturn
type iOffsetReturn interface {
Gen() (sql string, err error)
Val() []interface{}
}
// iAndReturn iAndReturn
type iAndReturn interface {
Where(where Where) iWheresReturn
Having(having Having) iHavingsReturn
StartGroup() iStartGroupReturn
On(on On) iOnReturn
}
// iOrReturn iOrReturn
type iOrReturn interface {
iAndReturn
}
// iStartGroupReturn iStartGroupReturn
type iStartGroupReturn interface {
Where(where Where) iWheresReturn
On(on On) iOnReturn
Having(having Having) iHavingsReturn
}
// iEndGroupReturn iEndGroupReturn
type iEndGroupReturn interface {
RightJoin(table Table) iJoinReturn
LeftJoin(table Table) iJoinReturn
Where(where Where) iWheresReturn
GroupBy(group ...string) iGroupByReturn
OrderBy(orders ...Order) iOrderByReturn
Limit(limit int) iLimitReturn
And() iAndReturn
Or() iOrReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iBuildInsertReturn iBuildInsertReturn
type iBuildInsertReturn interface {
Table(table Table) iITableReturn
}
// iITableReturn iITableReturn
type iITableReturn interface {
Values(column ...Column) iIValuesReturn
}
// iIValuesReturn iIValuesReturn
type iIValuesReturn interface {
Gen() (sql string, err error)
Val() []interface{}
}
// iBuildDeleteReturn iBuildDeleteReturn
type iBuildDeleteReturn interface {
Table(table Table) iDTableReturn
}
// iDTableReturn iDTableReturn
type iDTableReturn interface {
Where(where Where) iDWheresReturn
}
// iDWheresReturn iDWheresReturn
type iDWheresReturn interface {
And() iDAndReturn
Or() iDOrReturn
EndGroup() iDEndGroup
Gen() (sql string, err error)
Val() []interface{}
}
// iDAndReturn iDAndReturn
type iDAndReturn interface {
Where(where Where) iDWheresReturn
StartGroup() iDStartGroup
}
// iDOrReturn iDOrReturn
type iDOrReturn interface {
iDAndReturn
}
// iDStartGroup iDStartGroup
type iDStartGroup interface {
Where(where Where) iDWheresReturn
}
// iDEndGroup iDEndGroup
type iDEndGroup interface {
Where(where Where) iDWheresReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iBuildUpdateReturn iBuildUpdateReturn
type iBuildUpdateReturn interface {
Table(table Table) iUTableReturn
}
// iUSetReturn iUSetReturn
type iUSetReturn interface {
Where(where Where) iDWheresReturn
Gen() (sql string, err error)
Val() []interface{}
}
// iUTableReturn iUTableReturn
type iUTableReturn interface {
Set(columns ...Column) iUSetReturn
}