* v3.2 - March 12, 1998 TWO VERY IMPORTANT CHANGES: * Columns are no longer returned as a null-delimited string, but as an array reference. However, you have the option of asking Sprite to return the _records_ either as an array or a reference. * A relaxed copyright notice. Fixed some major bugs in all aspects of parsing queries, especially in the parse_expression method. I bet it's _almost_ bug free now :-) Also added the ability to specify !~ when performing queries that involve regular expressions. Added the 'add column' statement. Also added support for 8-bit chars. in field names and also in the database path. Added the 'set_db_dir' method, which allows you to set a default directory where Sprite will look for database files. Please see the documentation for more information. Specifying a platform with the set_os method is optional, but recommended. Sprite determines the platform by looking at $^O. Modified the update method so that columns are modified (or updated) in the order you specify. This allows you to pass queries like so: update my_db set AllStar = (AllStar + 1), Years = (AllStar) where (Player =~ /Jordan\$/); where the second reference to 'AllStar' reflects the updated (incremented) value. In prior versions, database locking wasn't implemented properly, causing occasional race conditions. This is fixed! In addition, Sprite now creates a 'loose' locking mechanism for systems that don't support flock, namely the Mac, Windows 95 and VMS. However, this mechanism is NOT fully reliable, but is better than no lock at all. BTW, Windows NT _does_ support flock! Sprite is approximately 25-30% faster than previous versions when dealing with larger databases because the parsing and evaluation has been optimized. Benchmark, FWIW: Sprite processed a relatively complex query on a 1000 record database with 6 fields on a lightly loaded Sparc 20 with 64 MB RAM in 2.3 seconds! ... and more.