aboutsummaryrefslogtreecommitdiff
path: root/odb/mssql/query-dynamic.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-17 14:16:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-17 14:16:53 +0200
commitf25ff0d1163ea65abd709b6037098f6a2199a238 (patch)
treea8327bec7150de21ca22877fff24d42033ffe7b2 /odb/mssql/query-dynamic.cxx
parent4af2971bac6d6214301f1b6002e27db071d9590b (diff)
Handle empty query::in_range() case
Diffstat (limited to 'odb/mssql/query-dynamic.cxx')
-rw-r--r--odb/mssql/query-dynamic.cxx24
1 files changed, 15 insertions, 9 deletions
diff --git a/odb/mssql/query-dynamic.cxx b/odb/mssql/query-dynamic.cxx
index f65e83a..6638dd6 100644
--- a/odb/mssql/query-dynamic.cxx
+++ b/odb/mssql/query-dynamic.cxx
@@ -94,20 +94,26 @@ namespace odb
}
case part::op_in:
{
- size_t b (p - x.data);
+ if (x.data != 0)
+ {
+ size_t b (p - x.data);
- translate (q, s, b - 1); // column
- q += "IN (";
+ translate (q, s, b - 1); // column
+ q += "IN (";
- for (size_t i (b); i != p; ++i)
- {
- if (i != b)
- q += ",";
+ for (size_t i (b); i != p; ++i)
+ {
+ if (i != b)
+ q += ",";
- translate (q, s, i);
+ translate (q, s, i);
+ }
+
+ q += ")";
}
+ else
+ q.append (false);
- q += ")";
break;
}
case part::op_like: