Commit ce2ecbe3bec63a950b6434d79ae6474c6e54f72d

Authored by Conrad Vermeulen
1 parent 8cfec2f1

KTS-3754

"Doing a search for anything via the Search text box at the top of the browser page results in a DB error."
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@9466 c91229c3-7414-0410-bfa2-8a42b809f60b
search2/indexing/indexerCore.inc.php
@@ -1069,13 +1069,13 @@ abstract class Indexer @@ -1069,13 +1069,13 @@ abstract class Indexer
1069 $docsInIndex = $index->getDocumentsInIndex(); 1069 $docsInIndex = $index->getDocumentsInIndex();
1070 1070
1071 // we are only interested in documents that are active 1071 // we are only interested in documents that are active
1072 - $sql = "SELECT count(*) as docsInQueue FROM index_files"; 1072 + $sql = "SELECT count(*) as docsInQueue FROM index_files i inner join documents d on i.document_id = d.id where d.status_id=1";
1073 $docsInQueue = DBUtil::getOneResultKey($sql, 'docsInQueue'); 1073 $docsInQueue = DBUtil::getOneResultKey($sql, 'docsInQueue');
1074 1074
1075 - $sql = "SELECT count(*) as errorsInQueue FROM index_files where status_msg is not null or status_msg <> ''"; 1075 + $sql = "SELECT count(*) as errorsInQueue FROM index_files i inner join documents d on i.document_id = d.id where (i.status_msg is not null or i.status_msg <> '') and d.status_id=1";
1076 $errorsInQueue = DBUtil::getOneResultKey($sql, 'errorsInQueue'); 1076 $errorsInQueue = DBUtil::getOneResultKey($sql, 'errorsInQueue');
1077 1077
1078 - $sql = "SELECT count(*) as docsInRepository FROM documents"; 1078 + $sql = "SELECT count(*) as docsInRepository FROM documents where status_id=1";
1079 $docsInRepository = DBUtil::getOneResultKey($sql, 'docsInRepository'); 1079 $docsInRepository = DBUtil::getOneResultKey($sql, 'docsInRepository');
1080 1080
1081 if ($docsInRepository == 0) 1081 if ($docsInRepository == 0)
search2/search/expr.inc.php
@@ -1176,7 +1176,7 @@ class SQLQueryBuilder implements QueryBuilder @@ -1176,7 +1176,7 @@ class SQLQueryBuilder implements QueryBuilder
1176 if (count($this->metadata) + count($this->db) == 0) 1176 if (count($this->metadata) + count($this->db) == 0)
1177 { 1177 {
1178 // return empty result set 1178 // return empty result set
1179 - return 'select 1 from documents where false'; 1179 + return '';
1180 } 1180 }
1181 1181
1182 $sql = 1182 $sql =
@@ -1361,13 +1361,14 @@ class SQLQueryBuilder implements QueryBuilder @@ -1361,13 +1361,14 @@ class SQLQueryBuilder implements QueryBuilder
1361 $this->exploreExprs($expr); 1361 $this->exploreExprs($expr);
1362 1362
1363 $sql = $this->buildCoreSQL(); 1363 $sql = $this->buildCoreSQL();
1364 -  
1365 - $expr = $this->buildCoreSQLExpr($expr);  
1366 - if ($expr != 'false') 1364 + if (empty($sql))
1367 { 1365 {
1368 - $sql .= $expr; 1366 + return '';
1369 } 1367 }
1370 1368
  1369 + $expr = $this->buildCoreSQLExpr($expr);
  1370 + $sql .= $expr;
  1371 +
1371 return $sql; 1372 return $sql;
1372 } 1373 }
1373 1374
@@ -2142,8 +2143,12 @@ class OpExpr extends Expr @@ -2142,8 +2143,12 @@ class OpExpr extends Expr
2142 $sql = $exprbuilder->buildSimpleQuery($op, $group); 2143 $sql = $exprbuilder->buildSimpleQuery($op, $group);
2143 } 2144 }
2144 2145
2145 - $results = array(); 2146 + if (empty($sql))
  2147 + {
  2148 + return array();
  2149 + }
2146 2150
  2151 + $results = array();
2147 global $default; 2152 global $default;
2148 $default->log->debug("SEARCH SQL: $sql"); 2153 $default->log->debug("SEARCH SQL: $sql");
2149 $rs = DBUtil::getResultArray($sql); 2154 $rs = DBUtil::getResultArray($sql);
@@ -2192,6 +2197,11 @@ class OpExpr extends Expr @@ -2192,6 +2197,11 @@ class OpExpr extends Expr
2192 $query = $exprbuilder->buildSimpleQuery($op, $group); 2197 $query = $exprbuilder->buildSimpleQuery($op, $group);
2193 } 2198 }
2194 2199
  2200 + if (empty($query))
  2201 + {
  2202 + return array();
  2203 + }
  2204 +
2195 $indexer = Indexer::get(); 2205 $indexer = Indexer::get();
2196 global $default; 2206 global $default;
2197 $default->log->debug("SEARCH LUCENE: $query"); 2207 $default->log->debug("SEARCH LUCENE: $query");