[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/nepomuk/services/strigi
From:       Vishesh Handa <handa.vish () gmail ! com>
Date:       2010-08-02 8:59:40
Message-ID: 20100802090036.1C050AC7A9 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1158193 by vhanda:

Fix a bug in IndexScheduler::removeOldAndUnwantedEntries() where it would perform \
invalid sparql queries if either the list if file filters or include folders was \
empty.


 M  +17 -6     indexscheduler.cpp  
 M  +1 -1      nepomukindexwriter.cpp  


--- trunk/KDE/kdebase/runtime/nepomuk/services/strigi/indexscheduler.cpp \
#1158192:1158193 @@ -537,6 +537,8 @@
     // be indexed at once.
     //
     QString folderFilter = constructFolderFilter();
+    if( !folderFilter.isEmpty() )
+        folderFilter = QString::fromLatin1("FILTER(%1) .").arg(folderFilter);
 
     //
     // We query all files that should not be in the store
@@ -546,7 +548,7 @@
                                          "?r %1 ?url . "
                                          "?g \
                <http://www.strigi.org/fields#indexGraphFor> ?r . "
                                          "FILTER(REGEX(STR(?url),'^file:/')) . "
-                                         "FILTER(%2) . }" )
+                                         "%2 }" )
                     .arg( Soprano::Node::resourceToN3( \
Nepomuk::Vocabulary::NIE::url() ),  folderFilter );
     kDebug() << query;
@@ -568,20 +570,29 @@
     //
     // Build filter query for all exclude filters
     //
-    QStringList filters;
+    QStringList fileFilters;
     foreach( const QRegExp& re, \
                Nepomuk::StrigiServiceConfig::self()->excludeFilterRegExps() ) {
-        filters << QString::fromLatin1( "REGEX(STR(?fn),\"^%1$\")" ).arg( \
re.pattern().replace( '\\',"\\\\" ) ); +        fileFilters << QString::fromLatin1( \
"REGEX(STR(?fn),\"^%1$\")" ).arg( re.pattern().replace( '\\',"\\\\" ) );  }
+    QString includeExcludeFilters = constructExcludeIncludeFoldersFilter();
+
+    QString filters;
+    if( !includeExcludeFilters.isEmpty() && !fileFilters.isEmpty() )
+        filters = QString::fromLatin1("FILTER((%1) && (%2)) .").arg( \
includeExcludeFilters, fileFilters.join(" || ") ); +    else if( \
!fileFilters.isEmpty() ) +        filters = QString::fromLatin1("FILTER(%1) .").arg( \
fileFilters.join(" || ") ); +    else if( !includeExcludeFilters.isEmpty() )
+        filters = QString::fromLatin1("FILTER(%1) .").arg( includeExcludeFilters );
+    
     query = QString::fromLatin1( "select distinct ?g ?url where { "
                                  "?r %1 ?url . "
                                  "?r %2 ?fn . "
                                  "?g <http://www.strigi.org/fields#indexGraphFor> ?r \
                . "
                                  "FILTER(REGEX(STR(?url),\"^file:/\")) . "
-                                 "FILTER((%3) && (%4)) . }" )
+                                 "%3 }" )
             .arg( Soprano::Node::resourceToN3( Nepomuk::Vocabulary::NIE::url() ),
                   Soprano::Node::resourceToN3( Nepomuk::Vocabulary::NFO::fileName() \
                ),
-                  constructExcludeIncludeFoldersFilter(),
-                  filters.join( " || " ) );
+                  filters );
     kDebug() << query;
     it = ResourceManager::instance()->mainModel()->executeQuery( query, \
Soprano::Query::QueryLanguageSparql );  while ( it.next() ) {
--- trunk/KDE/kdebase/runtime/nepomuk/services/strigi/nepomukindexwriter.cpp \
#1158192:1158193 @@ -603,7 +603,7 @@
             type = LiteralValue::typeFromDataTypeUri( \
prop.literalRangeType().dataTypeUri() );  }
 
-        kDebug() << prop << type;
+        //kDebug() << prop << type;
 
         i->second->setWriterData( new RegisteredFieldData( prop, type ) );
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic