Index: devel.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/devel/devel.module,v retrieving revision 1.258.2.48 diff -u -r1.258.2.48 devel.module --- devel.module 16 Mar 2009 19:44:34 -0000 1.258.2.48 +++ devel.module 25 Mar 2009 18:16:15 -0000 @@ -443,6 +443,11 @@ // kickoff all our tricks. put here all code which must run for ached pages too. called from both hook_boot and hook_init. function devel_start() { + if (in_array($GLOBALS['db_type'], array('mysql', 'mysqli')) && !variable_get('dev_sql_mode_server_default', 1)) { + $sql_modes = implode(',', variable_get('dev_sql_mode_override', array())); + db_query("SET SESSION sql_mode='%s'", array($sql_modes)); + } + if (variable_get('dev_mem', 0) && function_exists('memory_get_usage')) { global $memory_init; $memory_init = memory_get_usage(); @@ -941,6 +946,65 @@ '#size' => 4, '#description' => t('If storing query statistics, only store every nth page view. 1 means every page view, 2 every second, and so on.')); + global $db_type; + if (in_array($db_type, array('mysql', 'mysqli'))) { + $sql_modes = drupal_map_assoc( + array( + 'ANSI', + 'STRICT_TRANS_TABLES', + 'TRADITIONAL', + 'ALLOW_INVALID_DATES', + 'ANSI_QUOTES', + 'ERROR_FOR_DIVISION_BY_ZERO', + 'HIGH_NOT_PRECEDENCE', + 'IGNORE_SPACE', + 'NO_AUTO_CREATE_USER', + 'NO_AUTO_VALUE_ON_ZERO', + 'NO_BACKSLASH_ESCAPES ', + 'NO_DIR_IN_CREATE', + 'NO_ENGINE_SUBSTITUTION', + 'NO_FIELD_OPTIONS', + 'NO_KEY_OPTIONS', + 'NO_TABLE_OPTIONS', + 'NO_UNSIGNED_SUBTRACTION', + 'NO_ZERO_DATE', + 'NO_ZERO_IN_DATE', + 'ONLY_FULL_GROUP_BY', + 'PIPES_AS_CONCAT', + 'REAL_AS_FLOAT', + 'STRICT_ALL_TABLES', + 'DB2', + 'MAXDB', + 'MSSQL', + 'MYSQL323', + 'MYSQL40', + 'ORACLE', + 'POSTGRESQL' + ) + ); + asort($sql_modes, SORT_STRING); + $form['sql_mode'] = array( + '#type' => 'fieldset', + '#title' => t('SQL Mode'), + '#description' => t('Switch the SQL mode supported by MySQL.'), + '#collapsible' => FALSE + ); + $form['sql_mode']['dev_sql_mode_server_default'] = array( + '#type' => 'checkbox', + '#title' => t('Use server default'), + '#default_value' => variable_get('dev_sql_mode_server_default', 1), + '#description' => t('Enabling this option ignores any SQL mode selections') + ); + $form['sql_mode']['dev_sql_mode_override'] = array( + '#type' => 'select', + '#title' => t('SQL modes to enable'), + '#options' => $sql_modes, + '#multiple' => TRUE, + '#size' => 6, + '#default_value' => variable_get('dev_sql_mode_override', array()) + ); + } + $form['devel_api_url'] = array('#type' => 'textfield', '#title' => t('API Site'), '#default_value' => variable_get('devel_api_url', 'api.drupal.org'),