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
