Here are some modification introduced in this 1.2 version:
- new TSynBigTableString class to store data indexed from a UTF-8 encoded string ID instead of a numerical ID;
- added caching for last Get() items (may speed up next Get() a little bit);
- custom Get() method for range retrieval into a dynamic array;
- TSynBigTable modified in order to handle custom data in header (used to store string IDs for TSynBigTableString for instance);
- whole engine more robust against any file corruption or type mismatch;
- fix: Count property returned an incorrect value (including deleted values);
- added timing (in 1/10 ms) for test steps.
- string ID are case-sensitive (important warning);
- string ID are of UTF8String type, so you must make explicit conversion in your program to the native generic string type - you can use our Utf8ToString() and StringToUtf8() function provided in the same unit, which work for all version of Delphi (Unicode aware or not);
- because of string ID, this class is a bit slower than TSynBigTable (but bottleneck is in OS disk access, not in our string ID implementation) - but in all cases, the engine is very fast;
- each string ID maximum length is 65535 (to save some disk space);
- string ID are stored in alphabetical order, and can be accessed directly from StringID and NumericalID properties.
The source files (and the compiled test exe) can be downloaded from http://synopse.info/files/SynBigTable.zip