Evolution strategy for SQL::Abstract::More : call for feedback
I am preparing a new version of SQL::Abstract::More, aimed principally at solving several long-standing bugs when param ‘quote_char’ is non-empty (i.e when the user wants to generate SQL of shape like "SELECT `Foo`.`col1`, … FROM `Foo` etc.").
While working on this I need some input from users, because the situation is a bit complicated:
- Originally SQL::Abstract::More was designed as an extension of the venerable SQL::Abstract and therefore inherited from it, including some internal undocumented behaviors.
- Then in version 2.0 Matt Trout completely rewrote the internal architecture of SQL::Abstract. Despite the fact that Matt took great pain to preserve compatibility with previous versions, some differences are nevertheless observable.
- Not everybody agreed with the changes, so Peter Rabbitson published a clone of the old version under the name SQL::Abstract::Classic
- Given this situation, SQL::Abstract::More offered the choice to inherit either from SQL::Abstract v2.0 or from SQL::Abstract::Classic, initially defaulting to SQL::Abstract.
- Later, because of some minor problems encountered with SQL::Abstract v2.0, v1.39 of SQL::Abstract::More reverted to SQL::Abstract::Classic as default parent class.
- Currently in 2026, both SQL::Abstract and SQL::Abstract::Classic are no longer maintained
- To my knowledge, users of SQL::Abstract::More
- never use DBIx::Class (because of incompatibilities)
- may perhaps also use DBIx::DataModel (because SQL::Abstract::More was mainly designed as support for DBIx::DataModel – but it can also be used on its own)
- never took advantage of the modern features of SQL::Abstract v2.0
- In the next version, deprecate the “-extends” param that allowed to choose the parent class. The default parent class will still be SQL::Abstract::Classic, and this will be the last version that still offers to opt for SQL::Abstract v2.0 as parent class.
- Then in a future version, also drop inheritance from SQL::Abstract::Classic and clone the relevant code directly into SQL::Abstract::More
Thoughts, objections, suggestions ?
I blog about Perl.
Leave a comment