[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