Ajout de la liste des paramètres en utilisant l'instruction PRAGMA

This commit is contained in:
guillaume 2015-03-03 15:21:14 +01:00
parent 8de170bfc2
commit e4edafd42a

View File

@ -1183,15 +1183,37 @@ class DoliDBSqlite extends DoliDB
function getServerParametersValues($filter='') function getServerParametersValues($filter='')
{ {
$result=array(); $result=array();
static $pragmas;
if (! isset($pragmas)) {
$pragmas = array(
'application_id', 'auto_vacuum', 'automatic_index', 'busy_timeout', 'cache_size',
'cache_spill', 'case_sensitive_like', 'checkpoint_fullsync', 'collation_list',
'compile_options', 'data_version', /*'database_list',*/
'defer_foreign_keys', 'encoding', 'foreign_key_check', 'freelist_count',
'full_column_names', 'fullsync', 'ingore_check_constraints', 'integrity_check',
'journal_mode', 'journal_size_limit', 'legacy_file_format', 'locking_mode',
'max_page_count', 'page_count', 'page_size', 'parser_trace',
'query_only', 'quick_check', 'read_uncommitted', 'recursive_triggers',
'reverse_unordered_selects', 'schema_version', 'user_version',
'secure_delete', 'short_column_names', 'shrink_memory', 'soft_heap_limit',
'synchronous', 'temp_store', /*'temp_store_directory',*/ 'threads',
'vdbe_addoptrace', 'vdbe_debug', 'vdbe_listing', 'vdbe_trace',
'wal_autocheckpoint',
// TODO poursuivre la liste cf. http://www.sqlite.org/pragma.html
);
}
$sql='SHOW VARIABLES'; // TODO prendre en compte le filtre
if ($filter) $sql.=" LIKE '".$this->escape($filter)."'"; foreach($pragmas as $var) {
$resql=$this->query($sql); $sql = "PRAGMA $var";
if ($resql) $resql=$this->query($sql);
{ if ($resql)
while ($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value; {
} $obj = $this->fetch_row($resql);
//dol_syslog(get_class($this)."::select_db getServerParametersValues $var=". print_r($obj, true), LOG_DEBUG);
$result[$var] = $obj[0];
}
}
return $result; return $result;
} }
@ -1204,7 +1226,7 @@ class DoliDBSqlite extends DoliDB
function getServerStatusValues($filter='') function getServerStatusValues($filter='')
{ {
$result=array(); $result=array();
/*
$sql='SHOW STATUS'; $sql='SHOW STATUS';
if ($filter) $sql.=" LIKE '".$this->escape($filter)."'"; if ($filter) $sql.=" LIKE '".$this->escape($filter)."'";
$resql=$this->query($sql); $resql=$this->query($sql);
@ -1212,6 +1234,7 @@ class DoliDBSqlite extends DoliDB
{ {
while ($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value; while ($obj=$this->fetch_object($resql)) $result[$obj->Variable_name]=$obj->Value;
} }
*/
return $result; return $result;
} }
@ -1333,7 +1356,7 @@ class DoliDBSqlite extends DoliDB
} else { } else {
$calc_year = 0; $calc_year = 0;
switch ($char) { switch ($char) {
case 'j': // day of the year 001 - OK case 'j': // day of the year 001
$char = sprintf("%03d", $yday+1); $char = sprintf("%03d", $yday+1);
break; break;
case 'U': // mode 0: semaine 0 = premiere semaine complète qui commence un dimanche case 'U': // mode 0: semaine 0 = premiere semaine complète qui commence un dimanche
@ -1342,10 +1365,10 @@ class DoliDBSqlite extends DoliDB
case 'u': // mode 1: semaine 0 = première semaine de 4 jours. Début le dimanche case 'u': // mode 1: semaine 0 = première semaine de 4 jours. Début le dimanche
$char = sprintf("%02d", self::calc_week($year, $month, $day, 1, $calc_year)); $char = sprintf("%02d", self::calc_week($year, $month, $day, 1, $calc_year));
break; break;
case 'V': // mode 2: semaine 1 = premiere semaine complète qui commence un dimanche - KO case 'V': // mode 2: semaine 1 = premiere semaine complète qui commence un dimanche
$char = sprintf("%02d", self::calc_week($year, $month, $day, 6, $calc_year)); $char = sprintf("%02d", self::calc_week($year, $month, $day, 6, $calc_year));
break; break;
case 'v': // mode 3: semaine 1 = premiere semaine de 4 jours. Début le lundi - OK case 'v': // mode 3: semaine 1 = premiere semaine de 4 jours. Début le lundi
$char = sprintf("%02d", self::calc_week($year, $month, $day, 3, $calc_year)); $char = sprintf("%02d", self::calc_week($year, $month, $day, 3, $calc_year));
break; break;
case 'X': case 'X':