The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 1.17

  • New features
  • Now the {op} parameter is an array reference, containing pairs of operator/column, so that now it is possible to perform [ ['COUNT', 'id'], ['SUM', 'salary'], ['AVG', 'expenses'] ] in one query.
  • Deprecations
  • usage of {col_op} and {add_op} (and {op} as a scalar) are now DEPRECATED.
  • Bugs fixed
  • operator names may cause a syntax error when they become column headers. Fixed.
  • Changed functionality
  • changed operator names (when they become column headers) to "x"operator (xcount, xsum, xavg, etc.) to avoid a name conflict with some DBMS engines. Thanks to Cyril DrĂ©no for reporting this bug.
  • changed crosstab column names from "fldXXX" to "xfldXXX" to avoid possible clashes with some other SQL generators.
  • the main example ( now creates multi-operation tables to test and demonstrate the above change.
  • Examples and Documentation
    • Changed example create_crosstab.sqlite to create_crosstab.sql92
    • (it should work on any ANSI-SQL92 compliant DBMS)
  • Changed example table names to "xtab_*", so that users allowed to a single database can easily add these tables without affecting existing ones.
  • Added drop_crosstab.sql to remove the example tables easily. (Thanks to Mark Stosberg for all these ideas on the SQL examples)
  • New documentation available: an article at OnLamp and one at PerlMonks


creates a server-side cross tabulation from a database
Formats results created by DBIx::SQLCrosstab