DBIx::Class::SQLA2 - SQL::Abstract v2 support in DBIx::Class
$schema->connect_call_rebase_sqlmaker('DBIx::Class::SQLA2');
This is a work in progress for simplifying using SQLA2 with DBIC. This is for using w/ the most recent version of DBIC.
For a simple way of using this, take a look at DBIx::Class::Schema::SQLA2Support.
In order to have inserts passthru SQLA2 keys, you should use the
DBIx::Class::Row::SQLA2Support component, which allows you to add a -sqla2
key w/ a
hashref containing your passthroughs.
In order to support SQLA2 keys for bulk inserts (populate
), use the
DBIx::Class::ResultSet::SQLA2Support component. It adds a second arg to populate
which
allows you to add things to the final query (though you may get undefined behavior if
you're creating deep relationships - real world experience would be nice here). In
addition, it adds an upsert
method to simplify the case of update on a primary
key conflict (see there for more details).
EXPERIMENTAL
This role itself will add handling of hashref-refs to select lists + group by clauses, which will render the inner hashref as if it had been passed through to SQLA2 rather than doing the recursive function rendering that DBIC does.
This will add the following SQLA2 plugins:
-
SQL::Abstract::Plugin::ExtraClauses
Adds support for CTEs, and other fun new SQL syntax
-
SQL::Abstract::Plugin::WindowFunctions
Adds support for window functions and advanced aggregates.
-
Adds support for Upserts (ON CONFLICT clause)
-
SQL::Abstract::Plugin::BangOverrides
Adds some hacky stuff so you can bypass/supplement DBIC's handling of certain clauses
Copyright (c) 2022-24 Veesh Goldman [email protected]
This module is free software; you may copy this under the same terms as perl itself (either the GNU General Public License or the Artistic License)