diff options
Diffstat (limited to 'odb/query-dynamic.txx')
-rw-r--r-- | odb/query-dynamic.txx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/odb/query-dynamic.txx b/odb/query-dynamic.txx index 521ab86..95bddf3 100644 --- a/odb/query-dynamic.txx +++ b/odb/query-dynamic.txx @@ -4,8 +4,10 @@ namespace odb { + // // query_base // + template <typename T> void query_base:: append_val (const T& val, const native_column_info* c) @@ -21,8 +23,12 @@ namespace odb p.data = reinterpret_cast<std::size_t> (qp); } + // // query_column // + + // in + // template <typename T> query_base query_column<T>:: in (const T& v1, const T& v2) const @@ -87,4 +93,48 @@ namespace odb q.append (query_base::clause_part::op_in, n); return q; } + + // like + // + template <typename T> + query_base query_column<T>:: + like (val_bind<T> p) const + { + query_base q (native_info); + q.append_val (p.val, native_info); + q.append (query_base::clause_part::op_like, 0); + return q; + } + + template <typename T> + query_base query_column<T>:: + like (ref_bind<T> p) const + { + query_base q (native_info); + q.append_ref (p.ptr (), native_info); + q.append (query_base::clause_part::op_like, 0); + return q; + } + + template <typename T> + query_base query_column<T>:: + like (val_bind<T> p, const T& e) const + { + query_base q (native_info); + q.append_val (p.val, native_info); + q.append_val (e, native_info); + q.append (query_base::clause_part::op_like_escape, 0); + return q; + } + + template <typename T> + query_base query_column<T>:: + like (ref_bind<T> p, const T& e) const + { + query_base q (native_info); + q.append_ref (p.ptr (), native_info); + q.append_val (e, native_info); + q.append (query_base::clause_part::op_like_escape, 0); + return q; + } } |