// file : odb/sqlite/query.txx // author : Boris Kolpackov // copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb { namespace sqlite { // query // template query:: query (const query_column& c) : clause_ (c.name ()), parameters_ (new (details::shared) query_params) { // Cannot use IS TRUE here since database type can be a non- // integral type. // clause_ += " = "; append (val_bind (true)); } // query_column // template query query_column:: in (const T& v1, const T& v2) const { query q (name_); q += "IN ("; q.append (val_bind (v1)); q += ","; q.append (val_bind (v2)); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3) const { query q (name_); q += "IN ("; q.append (val_bind (v1)); q += ","; q.append (val_bind (v2)); q += ","; q.append (val_bind (v3)); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3, const T& v4) const { query q (name_); q += "IN ("; q.append (val_bind (v1)); q += ","; q.append (val_bind (v2)); q += ","; q.append (val_bind (v3)); q += ","; q.append (val_bind (v4)); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3, const T& v4, const T& v5) const { query q (name_); q += "IN ("; q.append (val_bind (v1)); q += ","; q.append (val_bind (v2)); q += ","; q.append (val_bind (v3)); q += ","; q.append (val_bind (v4)); q += ","; q.append (val_bind (v5)); q += ")"; return q; } template template query query_column:: in_range (I begin, I end) const { query q (name_); q += "IN ("; for (I i (begin); i != end; ++i) { if (i != begin) q += ","; q.append (val_bind (*i)); } q += ")"; return q; } } }