From 4d46567dc0948cc5edb50b2acf365a3bc3aa9078 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 23 Jul 2013 19:55:47 +0200 Subject: [PATCH] Revert "Oracle compat: enable appconfig.configvalue to store empty strings" This reverts commit 6c1e68acd8fbb98f8fbd54a38860481b4971bc28. --- db_structure.xml | 2 +- lib/db.php | 66 ++++++++++-------------------------------------- lib/util.php | 4 +-- 3 files changed, 16 insertions(+), 56 deletions(-) diff --git a/db_structure.xml b/db_structure.xml index 6f4e3288907..a292f69ce04 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -32,7 +32,7 @@ configvalue clob - false + true diff --git a/lib/db.php b/lib/db.php index 17e28ffd82d..2dc20001d1f 100644 --- a/lib/db.php +++ b/lib/db.php @@ -185,7 +185,7 @@ class OC_DB { } else { $dsn='sqlsrv:Server='.$host.';Database='.$name; } - break; + break; default: return false; } @@ -365,12 +365,12 @@ class OC_DB { $query = self::processQuery( $query ); self::connect(); - + if ($isManipulation === null) { //try to guess, so we return the number of rows on manipulations $isManipulation = self::isManipulation($query); } - + // return the result if(self::$backend==self::BACKEND_MDB2) { // differentiate between query and manipulation @@ -401,11 +401,11 @@ class OC_DB { } return $result; } - + /** * tries to guess the type of statement based on the first 10 characters * the current check allows some whitespace but does not work with IF EXISTS or other more complex statements - * + * * @param string $sql */ static public function isManipulation( $sql ) { @@ -427,7 +427,7 @@ class OC_DB { } return false; } - + /** * @brief gets last value of autoincrement * @param string $table The optional table name (will replace *PREFIX*) and add sequence suffix @@ -583,25 +583,10 @@ class OC_DB { $CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" ); self::connectScheme(); - + if(OC_Config::getValue('dbtype', 'sqlite')==='oci') { //set dbname, it is unset because oci uses 'service' to connect self::$schema->db->database_name=self::$schema->db->dsn['username']; - - $installedVersion = \OC_Config::getValue('version', '0.0.0'); - if (version_compare('5.0.15', $installedVersion, '<=')) { - //configvalue in oc_appconfig must be allowed to contain NULL - //because it is a CLOB, we need to move heaven and earth a bit - //i.e. rename it and copy values - $ociHandleAppconfig = true; - $query = \OCP\DB::prepare('ALTER TABLE `*PREFIX*appconfig` - RENAME COLUMN `configvalue` TO `configvalue_tmp`'); - $result = $query->execute(); - if(\OCP\DB::isError($result)) { - OC_Log::write('core', 'Could not alter appconfig.'. - ', DB upgrade may fail.', OC_Log::WARN); - } - } } // read file @@ -651,31 +636,6 @@ class OC_DB { OC_Log::write('core', $message, OC_Log::FATAL); throw new Exception($message); } - - if(isset($ociHandleAppconfig)) { - $query = \OCP\DB::prepare(' - INSERT INTO `*PREFIX*appconfig` - (`appid`, `configkey`, `configvalue`) - SELECT `appid`, `configkey`, `configvalue_tmp` AS `configvalue` - FROM `*PREFIX*appconfig`'); - $result = $query->execute(); - if(\OCP\DB::isError($result)) { - OC_Log::write('core', 'Could not transfer appconfig.'. - 'You may neet to copy values from appconfig.'. - 'configvalue_tmp to appconfig.configvalue.', OC_Log::ERROR); - } else { - $query = \OCP\DB::prepare('ALTER TABLE `*PREFIX*appconfig` - DROP COLUMN `configvalue_tmp`'); - $result = $query->execute(); - if(\OCP\DB::isError($result)) { - OC_Log::write('core', 'Could not drop appconfig.'. - 'configvalue_tmp, you can remove it by hand or just.'. - ' leave it.', OC_Log::INFO); - } - - } - } - return true; } @@ -839,11 +799,11 @@ class OC_DB { private static function fixLimitClauseForMSSQL($query) { $limitLocation = stripos ($query, "LIMIT"); - + if ( $limitLocation === false ) { return $query; - } - + } + // total == 0 means all results - not zero results // // First number is either total or offset, locate it by first space @@ -890,7 +850,7 @@ class OC_DB { } return $query; } - + /** * @brief drop a table * @param string $tableName the table to drop @@ -1072,7 +1032,7 @@ class PDOStatementWrapper{ } else { $result = $this->statement->execute(); } - + if ($result === false) { return false; } @@ -1172,7 +1132,7 @@ class PDOStatementWrapper{ die ($entry); } } - + /** * provide numRows */ diff --git a/lib/util.php b/lib/util.php index 3920d0f900f..86f3a7cac01 100755 --- a/lib/util.php +++ b/lib/util.php @@ -76,7 +76,7 @@ class OC_Util { public static function getVersion() { // hint: We only can count up. Reset minor/patchlevel when // updating major/minor version number. - return array(5, 00, 15, 1); + return array(5, 00, 15); } /** @@ -824,7 +824,7 @@ class OC_Util { $theme = OC_Config::getValue("theme", ''); if($theme === '') { - + if(is_dir(OC::$SERVERROOT . '/themes/default')) { $theme = 'default'; } -- 2.39.5