]> source.dussan.org Git - nextcloud-server.git/commitdiff
use to_char to allow comparing string to CLOB cloumns in oracle
authorJörn Friedrich Dreyer <jfd@butonic.de>
Mon, 10 Jun 2013 08:33:02 +0000 (10:33 +0200)
committerJörn Friedrich Dreyer <jfd@butonic.de>
Mon, 10 Jun 2013 08:33:02 +0000 (10:33 +0200)
lib/app.php
lib/connector/sabre/locks.php

index c6f6e92e60e255d67ece010cf26e432788f70da2..3e6cadfe2c926431417fea165532e072a5865b97 100644 (file)
@@ -174,7 +174,8 @@ class OC_App{
                $apps=array('files');
                $sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
                        .' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'';
-               if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') { //FIXME oracle hack
+               if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
+                       //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
                        $sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
                        .' WHERE `configkey` = \'enabled\' AND to_char(`configvalue`)=\'yes\'';
                }
index e58e584fb4117594c5602b12604e5fde497e8cba..745523c7a5b356bab24fa532c6907722dc532a35 100644 (file)
@@ -45,7 +45,12 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract {
                // but otherwise reading locks from SQLite Databases will return
                // nothing
                $query = 'SELECT * FROM `*PREFIX*locks`'
-                       .' WHERE `userid` = ? AND (`created` + `timeout`) > '.time().' AND (( `uri` = ?)';
+                          .' WHERE `userid` = ? AND (`created` + `timeout`) > '.time().' AND (( `uri` = ?)';
+               if (OC_Config::getValue( "dbtype") === 'oci') {
+                       //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
+                       $query = 'SELECT * FROM `*PREFIX*locks`'
+                                  .' WHERE `userid` = ? AND (`created` + `timeout`) > '.time().' AND (( to_char(`uri`) = ?)';
+               }
                $params = array(OC_User::getUser(), $uri);
 
                // We need to check locks for every part in the uri.
@@ -60,15 +65,24 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract {
 
                        if ($currentPath) $currentPath.='/';
                        $currentPath.=$part;
-
-                       $query.=' OR (`depth` != 0 AND `uri` = ?)';
+                       //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
+                       if (OC_Config::getValue( "dbtype") === 'oci') {
+                               $query.=' OR (`depth` != 0 AND to_char(`uri`) = ?)';
+                       } else {
+                               $query.=' OR (`depth` != 0 AND `uri` = ?)';
+                       }
                        $params[] = $currentPath;
 
                }
 
                if ($returnChildLocks) {
 
-                       $query.=' OR (`uri` LIKE ?)';
+                       //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
+                       if (OC_Config::getValue( "dbtype") === 'oci') {
+                               $query.=' OR (to_char(`uri`) LIKE ?)';
+                       } else {
+                               $query.=' OR (`uri` LIKE ?)';
+                       }
                        $params[] = $uri . '/%';
 
                }