@@ -140,6 +140,20 @@ pub enum ColumnRef {
140
140
TableAsterisk ( DynIden ) ,
141
141
}
142
142
143
+ impl ColumnRef {
144
+ #[ doc( hidden) ]
145
+ /// Returns the column name if it's not an asterisk.
146
+ pub fn column ( & self ) -> Option < & DynIden > {
147
+ match self {
148
+ ColumnRef :: Column ( column) => Some ( column) ,
149
+ ColumnRef :: TableColumn ( _, column) => Some ( column) ,
150
+ ColumnRef :: SchemaTableColumn ( _, _, column) => Some ( column) ,
151
+ ColumnRef :: Asterisk => None ,
152
+ ColumnRef :: TableAsterisk ( _) => None ,
153
+ }
154
+ }
155
+ }
156
+
143
157
pub trait IntoColumnRef {
144
158
fn into_column_ref ( self ) -> ColumnRef ;
145
159
}
@@ -169,6 +183,38 @@ pub enum TableRef {
169
183
FunctionCall ( FunctionCall , DynIden ) ,
170
184
}
171
185
186
+ impl TableRef {
187
+ #[ doc( hidden) ]
188
+ pub fn table ( & self ) -> & DynIden {
189
+ match self {
190
+ TableRef :: Table ( tbl)
191
+ | TableRef :: SchemaTable ( _, tbl)
192
+ | TableRef :: DatabaseSchemaTable ( _, _, tbl)
193
+ | TableRef :: TableAlias ( tbl, _)
194
+ | TableRef :: SchemaTableAlias ( _, tbl, _)
195
+ | TableRef :: DatabaseSchemaTableAlias ( _, _, tbl, _)
196
+ | TableRef :: SubQuery ( _, tbl)
197
+ | TableRef :: ValuesList ( _, tbl)
198
+ | TableRef :: FunctionCall ( _, tbl) => tbl,
199
+ }
200
+ }
201
+
202
+ #[ doc( hidden) ]
203
+ pub fn table_alias ( & self ) -> Option < & DynIden > {
204
+ match self {
205
+ TableRef :: Table ( _)
206
+ | TableRef :: SchemaTable ( _, _)
207
+ | TableRef :: DatabaseSchemaTable ( _, _, _)
208
+ | TableRef :: SubQuery ( _, _)
209
+ | TableRef :: ValuesList ( _, _) => None ,
210
+ TableRef :: TableAlias ( _, alias)
211
+ | TableRef :: SchemaTableAlias ( _, _, alias)
212
+ | TableRef :: DatabaseSchemaTableAlias ( _, _, _, alias)
213
+ | TableRef :: FunctionCall ( _, alias) => Some ( alias) ,
214
+ }
215
+ }
216
+ }
217
+
172
218
pub trait IntoTableRef {
173
219
fn into_table_ref ( self ) -> TableRef ;
174
220
}
0 commit comments