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
Given all this, I’m considering the following evolution strategy for SQL::Abstract::More :
  • 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 ?

Leave a comment

About dami

user-pic I blog about Perl.