$factory = new CRM_Contact_DAO_Factory();
CRM_Core_DAO::setFactory($factory);
if (CRM_Utils_Constant::value('CIVICRM_MYSQL_STRICT', CRM_Utils_System::isDevelopment())) {
- CRM_Core_DAO::executeQuery('SET SESSION sql_mode = STRICT_TRANS_TABLES');
+ if (self::supportsFullGroupBy()) {
+ CRM_Core_DAO::executeQuery("SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES'");
+ }
+ else {
+ CRM_Core_DAO::executeQuery("SET SESSION sql_mode = 'STRICT_TRANS_TABLES'");
+ }
}
CRM_Core_DAO::executeQuery('SET NAMES utf8');
CRM_Core_DAO::executeQuery('SET @uniqueID = %1', array(1 => array(CRM_Utils_Request::id(), 'String')));
}
}
+ /**
+ * Does this System support the MYSQL mode ONLY_FULL_GROUP_BY
+ * @return mixed
+ */
+ public static function supportsFullGroupBy() {
+ return version_compare(CRM_Core_DAO::singleValueQuery('SELECT VERSION()'), '5.7.0', '>=');
+ }
+
/**
* Defines the default key as 'id'.
*