- 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
if ($structure)
{
$sql_data .= "\n";
switch ($db->sql_layer)
{
case 'mysqli':
@ -213,7 +214,18 @@ class acp_database
else
{
// 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. :)
@ -757,7 +769,7 @@ class acp_database
if ($retrieved_data)
{
$sql_data = "\nGO\n";
$sql_data = "GO\n";
if ($ident_set)
{
$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
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)
{

View file

@ -147,7 +147,17 @@ class acp_main
break;
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
$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);
// 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
$hold_ary = $ug_id_ary = $sql_ary = array();

View file

@ -1833,7 +1833,17 @@ function update_topics_posted()
{
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
$get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);

View file

@ -1266,9 +1266,41 @@ class fulltext_native extends search_backend
{
global $db;
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . SEARCH_WORDLIST_TABLE);
$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);
switch ($db->sql_layer)
{
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
$convert->convertor_tag = basename($convert->options['tag']);
$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;