From: Randy Baumgarte Date: Tue, 1 Feb 2011 14:28:07 +0000 (-0500) Subject: Correct a problem where searching on an attribute without specifying a word search... X-Git-Tag: version0.1.1~202 X-Git-Url: http://git.sourceforge.jp/view?p=neighbornote%2FNeighborNote.git;a=commitdiff_plain;h=0f8508c8829baad9ae83b9ac21888de3b28f7958;hp=4909aea1fc99ff94e74e5468dd9453f007eadb35 Correct a problem where searching on an attribute without specifying a word search would result in an empty result set. --- diff --git a/src/cx/fbn/nevernote/sql/REnSearch.java b/src/cx/fbn/nevernote/sql/REnSearch.java index 5230b3c..059548e 100644 --- a/src/cx/fbn/nevernote/sql/REnSearch.java +++ b/src/cx/fbn/nevernote/sql/REnSearch.java @@ -689,6 +689,9 @@ public class REnSearch { logger.log(logger.EXTREME, "Inside EnSearch.matchWords()"); boolean subSelect = false; + NoteTable noteTable = new NoteTable(logger, conn); + List validGuids = new ArrayList(); + if (searchWords.size() > 0) subSelect = true; @@ -732,16 +735,14 @@ public class REnSearch { deleteQuery.exec("Delete from SEARCH_RESULTS_MERGE"); } } - } - - NoteTable noteTable = new NoteTable(logger, conn); - List validGuids = new ArrayList(); - query.prepare("Select distinct guid from Note where guid in (Select guid from SEARCH_RESULTS)"); - if (!query.exec()) - logger.log(logger.LOW, "Error merging search results:" + query.lastError()); + + query.prepare("Select distinct guid from Note where guid in (Select guid from SEARCH_RESULTS)"); + if (!query.exec()) + logger.log(logger.LOW, "Error merging search results:" + query.lastError()); - while (query.next()) { - validGuids.add(query.valueString(0)); + while (query.next()) { + validGuids.add(query.valueString(0)); + } } List noteIndex = noteTable.getAllNotes(); @@ -750,7 +751,7 @@ public class REnSearch { Note n = noteIndex.get(i); boolean good = true; - if (!validGuids.contains(n.getGuid())) + if (!validGuids.contains(n.getGuid()) && subSelect) good = false; // Start matching special stuff, like tags & notebooks