I'm pleased to announce the first alpha version of
SQL::Statement-0.2001. This is a pure perl module based on Jochen
Wiedmann's SQL::Statement-0.1x series of XS and perl modules.
When used with the current version of DBD::CSV or other modules based on
SQL::Statement-0.1x it should behave like the 0.1x version with the
exception that it produces much more verbose and informative error
statements. No changes to DBD::CSV or other subclasses should be
needed.
When used with DBD::AnyData-0.05 or higher, or with other modules using
optional 0.2x flags passed to the SQL::Statement->new(), it should
behave like the 0.1x version with these differences:
* supports alphabetic comparison (e.g. where col < 'c')
0.1x returns 0 rows when alphabetic comparison is specified
regardless of how many rows match the comparison
0.2x returns rows as specified in the alphabetic comparison
* supports number-like text in ORDER BY (e.g. 2001-11-09 or 15.3.1)
0.1x throws warnings about non-numeric comparison and
fails to sort on the column if the column contains text
that looks (vaguely) like a number
0.2x performs a string sort on strings and a numeric
sort on numbers
* supports case-folding in ORDER BY
0.1x sorts on UNIX order - caps first, e.g 'Dog cat dog'
0.2x sorts with case folding, e.g. 'cat Dog dog'
* supports LIMIT clause (similar to MySQL)
* supports RLIKE operator (use regex as comparison in WHERE clause)
Any of these features can be turned on or off by subclassers if the 0.1x
style is preferred.
Many more new features, including support for joins, aggregate functions
(COUNT,MAX,etc), string and numeric functions (TRIM,SUBSTR,etc) will be
added in the coming months. Eventually data type support will be added.
Since this is an ALPHA version it is strongly recommended that you copy
it into a private directory and call it with "use lib" rather than
replacing your current version of SQL::Statement.
A tarball may be found at:
http://www.spiritone.com/~jzucker/SQL-Statement-0.2001.tar.gz
To install, just unpack the tarball into a private lib directory and put
a "use lib" statement referencing that directory at the top of scripts.
There is currently no makefile.
Enjoy!
--
Jeff