Hi,
there's a bug in the row-wise access to the table-interface. The
row-struct stores data of different types and column names in their own
vectors. However, when using a cursor to access the rows, column names
for unsigned columns are inserted into the signed name vector in
ibis::bord::cursor::fillRow. Please see the attached diff for the
details.
Best regards
Patrik Nisen
Index: src/bord.cpp
===================================================================
--- src/bord.cpp (revision 605)
+++ src/bord.cpp (working copy)
@@ -11102,7 +11102,7 @@
}
break;}
case ibis::UBYTE: {
- res.bytesnames.push_back(buffer[j].cname);
+ res.ubytesnames.push_back(buffer[j].cname);
if (buffer[j].cval) {
res.ubytesvalues.push_back
((* static_cast<const array_t<const unsigned char>*>
@@ -11124,7 +11124,7 @@
}
break;}
case ibis::USHORT: {
- res.shortsnames.push_back(buffer[j].cname);
+ res.ushortsnames.push_back(buffer[j].cname);
if (buffer[j].cval) {
res.ushortsvalues.push_back
((* static_cast<const array_t<const uint16_t>*>
@@ -11146,7 +11146,7 @@
}
break;}
case ibis::UINT: {
- res.intsnames.push_back(buffer[j].cname);
+ res.uintsnames.push_back(buffer[j].cname);
if (buffer[j].cval) {
res.uintsvalues.push_back
((* static_cast<const array_t<const uint32_t>*>
@@ -11168,7 +11168,7 @@
}
break;}
case ibis::ULONG: {
- res.longsnames.push_back(buffer[j].cname);
+ res.ulongsnames.push_back(buffer[j].cname);
if (buffer[j].cval) {
res.ulongsvalues.push_back
((* static_cast<const array_t<const uint64_t>*>
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users