Skip to content

Commit

Permalink
Fixed issue #4734: Integrity check fails on PostgreSQL database
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey@9477 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Nov 12, 2010
1 parent a68f133 commit 41544ec
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 8 deletions.
5 changes: 3 additions & 2 deletions admin/integritycheck.php
Expand Up @@ -36,11 +36,12 @@

/***** Check for activate survey tables with missing survey entry **/

$sQuery = "show tables like '{$dbprefix}survey\_%'";
$sQuery = db_select_tables_like("{$dbprefix}survey\_%");
$aResult = db_execute_num($sQuery) or safe_die("Couldn't get list of conditions from database<br />$query<br />".$connect->ErrorMsg());
while ($aRow=$aResult->FetchRow())
{
$tablename=substr($aRow[0],strlen($dbprefix));
if ($tablename=='survey_permissions') continue;
$iSurveyID=substr($tablename,strpos($tablename,'_')+1);
$qquery="SELECT sid FROM {$dbprefix}surveys WHERE sid='{$iSurveyID}'";
$qresult=$connect->Execute($qquery) or safe_die ("Couldn't check questions table for qids<br />$qquery<br />".$connect->ErrorMsg());
Expand Down Expand Up @@ -68,7 +69,7 @@

/***** Check for activate token tables with missing survey entry **/

$sQuery = "show tables like '{$dbprefix}tokens\_%'";
$sQuery = db_select_tables_like("{$dbprefix}tokens\_%");
$aResult = db_execute_num($sQuery) or safe_die("Couldn't get list of token tables from database<br />$query<br />".$connect->ErrorMsg());
while ($aRow=$aResult->FetchRow())
{
Expand Down
2 changes: 1 addition & 1 deletion admin/tokens.php
Expand Up @@ -367,7 +367,7 @@
}
else
{
$query=db_select_tables_like("{$dbprefix}old_tokens_".$surveyid."_%");
$query=db_select_tables_like("{$dbprefix}old\_tokens\_".$surveyid."\_%");
$result=db_execute_num($query) or safe_die("Couldn't get old table list<br />".$query."<br />".$connect->ErrorMsg());
$tcount=$result->RecordCount();
if ($tcount > 0)
Expand Down
2 changes: 1 addition & 1 deletion admin/update/upgrade-mssql.php
Expand Up @@ -519,7 +519,7 @@ function mssql_drop_constraint($fieldname, $tablename)
function upgrade_survey_tables139()
{
global $modifyoutput,$dbprefix;
$surveyidquery = db_select_tables_like($dbprefix."survey_%");
$surveyidquery = db_select_tables_like($dbprefix."survey\_%");
$surveyidresult = db_execute_num($surveyidquery);
if (!$surveyidresult) {return "Database Error";}
else
Expand Down
2 changes: 1 addition & 1 deletion admin/update/upgrade-mssqlnative.php
Expand Up @@ -519,7 +519,7 @@ function mssql_drop_constraint($fieldname, $tablename)
function upgrade_survey_tables139()
{
global $modifyoutput,$dbprefix;
$surveyidquery = db_select_tables_like($dbprefix."survey_%");
$surveyidquery = db_select_tables_like($dbprefix."survey\_%");
$surveyidresult = db_execute_num($surveyidquery);
if (!$surveyidresult) {return "Database Error";}
else
Expand Down
2 changes: 1 addition & 1 deletion admin/update/upgrade-mysql.php
Expand Up @@ -537,7 +537,7 @@ function fix_mysql_collation()
function upgrade_survey_tables139()
{
global $modifyoutput,$dbprefix;
$surveyidquery = db_select_tables_like($dbprefix."survey_%");
$surveyidquery = db_select_tables_like($dbprefix."survey\_%");
$surveyidresult = db_execute_num($surveyidquery);
if (!$surveyidresult) {return "Database Error";}
else
Expand Down
2 changes: 1 addition & 1 deletion admin/update/upgrade-postgres.php
Expand Up @@ -278,7 +278,7 @@ function upgrade_token_tables134()
function upgrade_survey_tables139()
{
global $modifyoutput,$dbprefix;
$surveyidquery = db_select_tables_like($dbprefix."survey_%");
$surveyidquery = db_select_tables_like($dbprefix."survey\_%");
$surveyidresult = db_execute_num($surveyidquery);
if (!$surveyidresult) {return "Database Error";}
else
Expand Down
5 changes: 4 additions & 1 deletion common.php
Expand Up @@ -638,6 +638,8 @@ function db_table_name_nq($name)

/**
* Return a sql statement for finding LIKE named tables
* Be aware that you have to escape underscor chars by using a backslash
* otherwise you might get table names returned you don't want
*
* @param mixed $table
*/
Expand All @@ -654,6 +656,7 @@ function db_select_tables_like($table)
case 'odbc_mssql' :
return "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE' and TABLE_NAME LIKE '$table'";
case 'postgres' :
$table=str_replace('\\','\\\\',$table);
return "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' and table_name like '$table'";
default: safe_die ("Couldn't create 'select tables like' query for connection type 'databaseType'");
}
Expand Down Expand Up @@ -7566,7 +7569,7 @@ function getSubQuestions($sid, $qid, $sLanguage) {
*/
function getXMLWriter() {
if (!extension_loaded('xmlwriter')) {
safe_die('XMLWriter class not compiled into PHP, please contact your system administrator');
safe_die('XMLWriter class not enabled in PHP - please contact your system administrator - http://www.php.net/manual/en/xmlwriter.installation.php');
} else {
$xmlwriter = new XMLWriter();
}
Expand Down

0 comments on commit 41544ec

Please sign in to comment.