|
20 | 20 | #include "ast/group_by.h" |
21 | 21 | #include "ast/exists.h" |
22 | 22 | #include "ast/set.h" |
| 23 | +#include "ast/match.h" |
23 | 24 |
|
24 | 25 | namespace sqlite_orm { |
25 | 26 |
|
@@ -141,9 +142,19 @@ namespace sqlite_orm { |
141 | 142 | using node_type = binary_operator<L, R, Ds...>; |
142 | 143 |
|
143 | 144 | template<class C> |
144 | | - void operator()(const node_type& binaryOperator, C& lambda) const { |
145 | | - iterate_ast(binaryOperator.lhs, lambda); |
146 | | - iterate_ast(binaryOperator.rhs, lambda); |
| 145 | + void operator()(const node_type& node, C& lambda) const { |
| 146 | + iterate_ast(node.lhs, lambda); |
| 147 | + iterate_ast(node.rhs, lambda); |
| 148 | + } |
| 149 | + }; |
| 150 | + |
| 151 | + template<class L, class R> |
| 152 | + struct ast_iterator<is_equal_with_table_t<L, R>, void> { |
| 153 | + using node_type = is_equal_with_table_t<L, R>; |
| 154 | + |
| 155 | + template<class C> |
| 156 | + void operator()(const node_type& node, C& lambda) const { |
| 157 | + iterate_ast(node.rhs, lambda); |
147 | 158 | } |
148 | 159 | }; |
149 | 160 |
|
@@ -212,6 +223,16 @@ namespace sqlite_orm { |
212 | 223 | } |
213 | 224 | }; |
214 | 225 |
|
| 226 | + template<class T, class X> |
| 227 | + struct ast_iterator<match_t<T, X>, void> { |
| 228 | + using node_type = match_t<T, X>; |
| 229 | + |
| 230 | + template<class L> |
| 231 | + void operator()(const node_type& node, L& lambda) const { |
| 232 | + iterate_ast(node.argument, lambda); |
| 233 | + } |
| 234 | + }; |
| 235 | + |
215 | 236 | template<class T> |
216 | 237 | struct ast_iterator<into_t<T>, void> { |
217 | 238 | using node_type = into_t<T>; |
|
0 commit comments