Hi, Andreas,

Thanks for your interest in FastBit.  Regarding the Null values, the 
documentation about it needs some clarification.  In particular, the 
fact a value is Null is recorded in a bit vector -- not recorded as a 
specific value.  The particular note on null value left this most 
important idea at the end, which I will move to the beginning to give 
it more emphasis.

If you import data through ardea.cpp (which does its actual work 
through the function ibis::tablex::readCSV), then everything in the 
CSV file is assumed to be valid (i.e., not Null), even if the int 
value is 2^32-1.  In your application, if you have a particular value 
you want to treat as Null, you need to handle the logical your self. 
If you use the functions ibis::tablex::append and 
ibis::tablex::appendRow, the rows you neglected to assign values will 
be assumed to be Null.

The function ibis::tablex::readCVS currently does not handle Null 
values.  In the next release, we will treat empty fields as Null 
values for numerical values.  This still leaves the users without a 
way of expression Null values for strings, but it should address your 
concern.

Happy Holidays.

John


On 12/23/2009 5:06 AM, Andreas Streichardt wrote:
> Hi,
>
> i am wondering how (and if?) Fastbit handles NULL values. I only found a few
> references in the documentation about NULL values.
>
> This is one of them:
>
> https://sdm.lbl.gov/fastbit/doc/html/classibis_1_1tafel.html#8bfb87b836ec0e5b10a6f0c8a32fa6e6
>
> To me that sounds as if the NULL value for a "int" should be 2^31-1. I can
> load these values via ardea. However when querying via ibis: How are these
> null values handled?
>
> /home/mop/fastbit/bin/ibis -d null_test -n -q "SELECT x WHERE 1=1"
> x (with counts)
> 2147483647,     1
>
> This is fine.
>
> /home/mop/fastbit/bin/ibis -d null_test -n -q "SELECT COUNT(x) WHERE 1=1"
> tableSelect -- select(COUNT(x), 1=1) on table T-null_test produced a table
> with 1 row and 1 column
> tableSelect -- the result table (1 x 1) for "SELECT COUNT(x) FROM T-null_test
> WHERE 1=1"
> 1
>
> I would fastbit to omit the NULL value here. Same for AVG() and the other
> aggregate functions. Are NULL values even implemented or am i badly
> misunderstanding something here? :S
>
> Kind regards,
>
>       Andreas Streichardt
> _______________________________________________
> 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