Hi, I have a text column, which fastbit converted into a category column when building indexes due to the relatively low cardinality. I am trying to access the data through the table interface, iterating the results with a cursor object. However, the cursor returns only the integer representation instead of the original text value. Executing the same query with the ibis tool seems to be working fine.
I tried to understand the issue and here's what I found, please correct me if I got this wrong. I construct the table myself using the bord class. The constructor goes through the select clause and creates the columns for the table. In case of a category column (starting from bord.cpp:186) it converts the column to UINT and sets the dictionary for conversion. The data is then appended to the table. When I want to iterate through the results, I create a cursor object and use fetch method to populate a row. However, in cursor::fillRow the loop only finds the UINT column and fills in the integer value (bord.cpp:11148). The ibis tool seems to work, because the column::dump checks if a dictionary is present and uses that if available (bord.cpp:2301). How could this be fixed? Is it fine to fill the catsnames and catsvalues if the column is UINT and a dictionary is present, or is there other uses for the dictionary as well? Thank you. Best regards Patrik Nisen
_______________________________________________ FastBit-users mailing list [email protected] https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
