BUGFIX: Converted reindex queries to use DataList/DataQuery instead of deprecated buoldSQL() on DataObject

This commit is contained in:
Russell Michell 2012-05-14 12:11:18 +12:00
parent 48e95637cd
commit 9ac7502394
2 changed files with 13 additions and 16 deletions

View File

@ -67,7 +67,7 @@ abstract class SearchVariant {
$concrete = array();
foreach ($classes as $variantclass) {
foreach(self::$dependentClasses as $dependency) {
// Rather relies on variants being named similalrly to their dependencies
// Rather relies on variants being named similarly to their dependencies
if(preg_match("#$dependency#i",$variantclass) && class_exists($dependency)) {
$ref = new ReflectionClass($variantclass);
if ($ref->isInstantiable()) $concrete[$variantclass] = singleton($variantclass);

View File

@ -90,7 +90,7 @@ class Solr_Configure extends BuildTask {
case 'file':
$local = $index['path'];
$remote = isset($index['remotepath']) ? $index['remotepath'] : $local;
foreach (Solr::get_indexes() as $index => $instance) {
$confdir = "$local/$index/conf";
if (!is_dir($confdir)) mkdir($confdir, 0770, true);
@ -101,7 +101,7 @@ class Solr_Configure extends BuildTask {
if (is_file($file)) copy($file, $confdir.'/'.basename($file));
}
}
break;
case 'webdav':
@ -111,7 +111,7 @@ class Solr_Configure extends BuildTask {
Solr::$solr_options['host'] . ':' . Solr::$solr_options['port'],
$index['path']
));
$remote = $index['remotepath'];
foreach (Solr::get_indexes() as $index => $instance) {
@ -127,7 +127,7 @@ class Solr_Configure extends BuildTask {
if (is_file($file)) WebDAV::upload_from_file($file, $confdir.'/'.basename($file));
}
}
break;
default:
@ -162,20 +162,17 @@ class Solr_Reindex extends BuildTask {
foreach ($instance->getClasses() as $class => $options) {
$includeSubclasses = $options['include_children'];
foreach (SearchVariant::reindex_states($class, $includeSubclasses) as $state) {
SearchVariant::activate_state($state);
$filter = $includeSubclasses ? "" : '"ClassName" = \''.$class."'";
$singleton = singleton($class);
$query = $singleton->buildSQL($filter);
$query->select('COUNT("'.$class.'"."ID")');
$query->orderby = null;
$singleton->extend('augmentSQL', $query);
$total = $query->execute()->value();
$query = $singleton->get($class,$filter,null);
$dtaQuery = $query->dataQuery();
$sqlQuery = $dtaQuery->getFinalisedQuery();
$singleton->extend('augmentSQL',$sqlQuery,$dtaQuery);
$total = $query->count();
$statevar = json_encode($state);
echo "Class: $class, total: $total in state $statevar\n";
@ -185,7 +182,7 @@ class Solr_Reindex extends BuildTask {
for ($offset = 0; $offset < $total; $offset += $this->stat('recordsPerRequest')) {
echo "$offset..";
$res = `php $script dev/tasks/$self index=$index class=$class start=$offset variantstate=$statevar`;
if (isset($_GET['verbose'])) echo "\n ".preg_replace('/\r\n|\n/', '$0 ', $res)."\n";