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

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.