NAME
DBIO::MySQL::SQLMaker::MariaDB - Deprecated alias of DBIO::MySQL::SQLMaker
VERSION
version 0.900004
DESCRIPTION
Deprecated. This class adds nothing and exists only so that an explicit sql_maker_class => 'DBIO::MySQL::SQLMaker::MariaDB' in existing configuration keeps working. Use DBIO::MySQL::SQLMaker; a connection made through either of this dist's schema components already does.
It used to exist for one thing: MariaDB has no FOR SHARE, so it overrode _lock_select to spell for => 'share' as LOCK IN SHARE MODE, and DBIO::MySQL::Storage::MariaDB selected it as its sql_maker_class.
That put an engine question on a DBD class, and got two of the four DBD/engine combinations wrong (this dist's ADR 0003). DBD::MariaDB connects to MySQL servers, where the override then produced LOCK IN SHARE MODE OF `t` NOWAIT -- rejected, because on MySQL the legacy spelling is exactly the one that carries neither OF nor a modifier. And DBD::mysql connects to MariaDB servers, which do not reach this class: a schema declares its driver, and one that loads the MySQL component keeps DBIO::MySQL::Storage. They were handed the FOR SHARE that MariaDB has in no version.
The decision now belongs to the server: "_lock_dialect" in DBIO::MySQL::Storage reads the product and version and hands the answer to "_lock_select" in DBIO::MySQL::SQLMaker, which renders it. So this subclass overrides nothing -- and a configuration still naming it inherits the correct, server-keyed behaviour instead of the old fixed one.
SEE ALSO
DBIO::MySQL::SQLMaker - the class this one is now an empty alias of
DBIO::MySQL::Storage - decides the lock dialect from the server
DBIO::MySQL::Storage::MariaDB - the DBD::MariaDB binding, and nothing else
AUTHOR
DBIO & DBIx::Class Authors
COPYRIGHT AND LICENSE
Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.