Thanks, Zhongbo,

Your patch has been applied and included as part of FastBit revision 711.

John


On 4/10/14, 7:27 PM, 田忠博(Zhongbo Tian) wrote:
> Hi John,
> 
> The patch is attached here.
> 
> 
> 2014-04-11 4:24 GMT+08:00 K. John Wu <[email protected] <mailto:[email protected]>>:
> 
>     Thanks, 忠博.
> 
>     Would you mind resend the patch to bord.cpp as a separate file so that
>     I can more easily apply it?
> 
>     John
> 
> 
>     On 4/10/14, 4:16 AM, 田忠博 wrote:
>     > Hi,
>     >
>     > I'm building an in-memory system to analyse real-time  logs and
>     > events, and find Fastbit an excellent fit. I use a ibis::tablex as
>     > insert buffer, then transfer the tablex as a ibis::part using
>     toTable.
>     > As parts generated, oldest ones will be discarded to save memory.
>     > Queries are performed as an ibis::liga of the parts list. I wrap
>     these
>     > routines as a python package, and thank to Fastbit, it works
>     like a charm.
>     >
>     > I find several minor issues, and try to fix with the following
>     patches:
>     >
>     > 1. Segfault with getColumnsAsStrings
>     >
>     > diff --git a/src/mensa.cpp b/src/mensa.cpp
>     > index 6ebe74d..71eb143 100755
>     > --- a/src/mensa.cpp
>     > +++ b/src/mensa.cpp
>     > @@ -2283,8 +2283,6 @@ int64_t ibis::mensa::getColumnAsStrings(const
>     > char* cn,
>     >                 const ibis::column* col = dp.getColumn(cn);
>     >                 if (col == 0)
>     >                     return -3;
>     > -               if (col->getValuesArray(&tmp) < 0)
>     > -                   return -4;
>     >
>     >                 size_t i0 = (begin > irow ? begin - irow : 0);
>     >                 const size_t i1 = (end>=irow+dp.nRows() ?
>     dp.nRows() :
>     >
>     > tmp will be cast as a pointer of vector and finally crash system, I
>     > think these should be a typo.
>     >
>     > 2. When using toTable method, the category fields do not have a
>     > dictionary with them. And when process LIKE queries, system crash.
>     >
>     > diff --git a/src/bord.cpp b/src/bord.cpp
>     > index 44d328d..441a954 100755
>     > --- a/src/bord.cpp
>     > +++ b/src/bord.cpp
>     > @@ -6242,6 +6242,19 @@ long ibis::bord::column::patternSearch(const
>     > char* pat,
>     >         return -2;
>     >      }
>     >
>     > +    if (0 == dic) {
>     > +       ibis::util::timer mytimer(evt.c_str(), 3);
>     > +       const std::vector<std::string>&
>     > +           vals(*static_cast<const
>     std::vector<std::string>*>(buffer));
>     > +
>     > +       hits.clear();
>     > +       for (size_t j = 0; j < vals.size(); ++ j) {
>     > +           if (ibis::util::strMatch(vals[j].c_str(), pat))
>     > +               hits.setBit(j, 1);
>     > +       }
>     > +       hits.adjustSize(0, thePart ? thePart->nRows() :
>     vals.size());
>     > +    }
>     > +    else {
>     >      const array_t<uint32_t>&vals(*static_cast<const
>     > array_t<uint32_t>*>(buffer));
>     >
>     >      if (pat == 0) { // null string can not match any thing
>     > @@ -6269,6 +6282,7 @@ long ibis::bord::column::patternSearch(const
>     > char* pat,
>     >      }
>     >
>     >      hits.adjustSize(0, thePart ? thePart->nRows() : vals.size());
>     > +    }
>     >      return hits.cnt();
>     >  } // ibis::bord::column::patternSearch
>     >
>     > So, when dic is NULL, a walk-through match should be good enough.
>     >
>     > And finally, thanks for the excellent library.
>     >
>     >
>     > _______________________________________________
>     > FastBit-users mailing list
>     > [email protected] <mailto:[email protected]>
>     > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
>     >
>     _______________________________________________
>     FastBit-users mailing list
>     [email protected] <mailto:[email protected]>
>     https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
> 
> 
> 
> 
> _______________________________________________
> FastBit-users mailing list
> [email protected]
> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
> 
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to