- should fix some Firebird issues ( can't believe that nobody found this until now )

git-svn-id: file:///svn/phpbb/trunk@6954 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
David M 2007-02-01 03:13:08 +00:00
parent 2db7def46a
commit 9a685e7a48
7 changed files with 106 additions and 10 deletions

View file

@ -167,6 +167,7 @@ class acp_database
// Get the table structure // Get the table structure
if ($structure) if ($structure)
{ {
$sql_data .= "\n";
switch ($db->sql_layer) switch ($db->sql_layer)
{ {
case 'mysqli': case 'mysqli':
@ -213,7 +214,18 @@ class acp_database
else else
{ {
// We might wanna empty out all that junk :D // We might wanna empty out all that junk :D
$sql_data .= (($db->sql_layer == 'sqlite') ? 'DELETE FROM ' : 'TRUNCATE TABLE ') . $table_name . ";\n"; switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$sql_data .= 'DELETE FROM ';
break;
default:
$sql_data .= 'TRUNCATE TABLE ';
break;
}
$sql_data .= $table_name . ";\n";
} }
// Now write the data for the first time. :) // Now write the data for the first time. :)
@ -757,7 +769,7 @@ class acp_database
if ($retrieved_data) if ($retrieved_data)
{ {
$sql_data = "\nGO\n"; $sql_data = "GO\n";
if ($ident_set) if ($ident_set)
{ {
$sql_data .= "\nSET IDENTITY_INSERT $table_name OFF\nGO\n"; $sql_data .= "\nSET IDENTITY_INSERT $table_name OFF\nGO\n";

View file

@ -334,7 +334,17 @@ class acp_icons
// The user has already selected a smilies_pak file // The user has already selected a smilies_pak file
if ($current == 'delete') if ($current == 'delete')
{ {
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . $table); switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . $table);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . $table);
break;
}
switch ($mode) switch ($mode)
{ {

View file

@ -147,7 +147,17 @@ class acp_main
break; break;
case 'db_track': case 'db_track':
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . TOPICS_POSTED_TABLE); switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . TOPICS_POSTED_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . TOPICS_POSTED_TABLE);
break;
}
// This can get really nasty... therefore we only do the last six months // This can get really nasty... therefore we only do the last six months
$get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60); $get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);

View file

@ -1983,7 +1983,17 @@ function cache_moderators()
$cache->destroy('sql', MODERATOR_CACHE_TABLE); $cache->destroy('sql', MODERATOR_CACHE_TABLE);
// Clear table // Clear table
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . MODERATOR_CACHE_TABLE); switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . MODERATOR_CACHE_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . MODERATOR_CACHE_TABLE);
break;
}
// We add moderators who have forum moderator permissions without an explicit ACL_NEVER setting // We add moderators who have forum moderator permissions without an explicit ACL_NEVER setting
$hold_ary = $ug_id_ary = $sql_ary = array(); $hold_ary = $ug_id_ary = $sql_ary = array();

View file

@ -1833,7 +1833,17 @@ function update_topics_posted()
{ {
global $db, $config; global $db, $config;
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . TOPICS_POSTED_TABLE); switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . TOPICS_POSTED_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . TOPICS_POSTED_TABLE);
break;
}
// This can get really nasty... therefore we only do the last six months // This can get really nasty... therefore we only do the last six months
$get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60); $get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);

View file

@ -1266,9 +1266,41 @@ class fulltext_native extends search_backend
{ {
global $db; global $db;
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . SEARCH_WORDLIST_TABLE); switch ($db->sql_layer)
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . SEARCH_WORDMATCH_TABLE); {
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . SEARCH_RESULTS_TABLE); case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . SEARCH_WORDLIST_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . SEARCH_WORDLIST_TABLE);
break;
}
switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . SEARCH_WORDMATCH_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . SEARCH_WORDMATCH_TABLE);
break;
}
switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$db->sql_query('DELETE FROM ' . SEARCH_RESULTS_TABLE);
break;
default:
$db->sql_query('TRUNCATE TABLE ' . SEARCH_RESULTS_TABLE);
break;
}
} }
/** /**

View file

@ -545,7 +545,19 @@ class install_convert extends module
// Make some short variables accessible, for easier referencing // Make some short variables accessible, for easier referencing
$convert->convertor_tag = basename($convert->options['tag']); $convert->convertor_tag = basename($convert->options['tag']);
$convert->src_table_prefix = $convert->options['table_prefix']; $convert->src_table_prefix = $convert->options['table_prefix'];
$convert->truncate_statement = ($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ';
switch ($db->sql_layer)
{
case 'sqlite':
case 'firebird':
$convert->truncate_statement = 'DELETE FROM ';
break;
default:
$convert->truncate_statement = 'TRUNCATE TABLE ');
break;
}
$get_info = false; $get_info = false;