diff --git a/administrator/components/com_config/forms/application.xml b/administrator/components/com_config/forms/application.xml index 0e1f2f654aabd..c4b98bd726b7f 100644 --- a/administrator/components/com_config/forms/application.xml +++ b/administrator/components/com_config/forms/application.xml @@ -279,6 +279,20 @@ showon="dbtype:mysql,mysqli[AND]dbencryption:2" /> + + + + + +
get('dbtype'), ['mysql', 'mysqli'])) { + $sqlbigselects = (int) $conf->get('dbsqlbigselects'); + + // Only set option if enforced by configuration + if ($sqlbigselects !== 0) { + $options['sqlBigSelects'] = $sqlbigselects === 2; + } + } + try { $db = DatabaseDriver::getInstance($options); } catch (\RuntimeException $e) { diff --git a/libraries/src/Service/Provider/Database.php b/libraries/src/Service/Provider/Database.php index b12828f246019..5b2d058953ac6 100644 --- a/libraries/src/Service/Provider/Database.php +++ b/libraries/src/Service/Provider/Database.php @@ -115,6 +115,16 @@ function (Container $container) { $options['charset'] = 'utf8mb4'; } + // Set sql_big_selects variable for mysql adapters + if (in_array(strtolower($dbtype), ['mysql', 'mysqli'])) { + $sqlbigselects = (int) $conf->get('dbsqlbigselects'); + + // Only set option if enforced by configuration + if ($sqlbigselects !== 0) { + $options['sqlBigSelects'] = $sqlbigselects === 2; + } + } + if (JDEBUG) { $options['monitor'] = new \Joomla\Database\Monitor\DebugMonitor(); }