Installer: Fix DB schema initialization on MS SQL Server

pull/318/merge
Aleksander Machniak 8 years ago
parent 065b16df12
commit 72f19c079f

@ -29,6 +29,7 @@ CHANGELOG Roundcube Webmail
- Fix regression in LDAP fuzzy search where it always used prefix search instead (#5713) - Fix regression in LDAP fuzzy search where it always used prefix search instead (#5713)
- Fix bug where namespace prefix could not be truncated on folders list if show_real_foldernames=true (#5695) - Fix bug where namespace prefix could not be truncated on folders list if show_real_foldernames=true (#5695)
- Fix undesired effects when postgres database uses different timezone than PHP host (#5708) - Fix undesired effects when postgres database uses different timezone than PHP host (#5708)
- Installer: Fix DB schema initialization on MS SQL Server
RELEASE 1.3-beta RELEASE 1.3-beta
---------------- ----------------

@ -1326,19 +1326,32 @@ class rcube_db
{ {
$sql = $this->fix_table_names($sql); $sql = $this->fix_table_names($sql);
$buff = ''; $buff = '';
$exec = '';
foreach (explode("\n", $sql) as $line) { foreach (explode("\n", $sql) as $line) {
if (preg_match('/^--/', $line) || trim($line) == '') $trimmed = trim($line);
if ($trimmed == '' || preg_match('/^--/', $trimmed)) {
continue; continue;
}
if ($trimmed == 'GO') {
$exec = $buff;
}
else if ($trimmed[strlen($trimmed)-1] == ';') {
$exec = $buff . substr(rtrim($line), 0, -1);
}
$buff .= $line . "\n"; if ($exec) {
if (preg_match('/(;|^GO)$/', trim($line))) { $this->query($exec);
$this->query($buff);
$buff = ''; $buff = '';
$exec = '';
if ($this->db_error) { if ($this->db_error) {
break; break;
} }
} }
else {
$buff .= $line . "\n";
}
} }
return !$this->db_error; return !$this->db_error;

Loading…
Cancel
Save