//PRECONDITION: getCombinedFilter() does not return null
	/** @throws PntError */
	function getFilterResult($rowCount=20) {
		if (isSet($this->result)) return $this->result;
		
		$size = $this->getAllItemsSize();
		if ($size && !(is_numeric($size) && $size == (int) $size) ) 
			throw new PntValidationException('All items size no integer: '. $size);
		$offset = $this->getPageItemOffset();
		if ($offset && !(is_numeric($offset) && $offset == (int) $offset) ) 
			throw new PntValidationException('Page item offset no integer: '. $offset);
		
		$filter = $this->getCombinedFilter();
		$sort = $this->getSort($filter);

		$clsDes = $this->whole->getTypeClassDescriptor();
		$qh = $clsDes->getSimpleQueryHandler();
		
		if (!($rowCount == 'All' || $size || $qh->supportsSelectRowCount())) {
			$tableName = $clsDes->getTableName();
			$qh->query = "SELECT count(DISTINCT($tableName.id)) FROM $tableName";
			if ($clsDes->polymorphismPropName) 
				$qh->joinAllById($clsDes->getTableMap(), $tableName);
			
			$qh->addSqlFromSpec($filter, false);
			$this->allItemsSize = $qh->getSingleValue(null, 'Error counting search result');
		}
		
		$qh = $clsDes->getSelectQueryHandler(); //zonder SELECT .. getSimpleQueryHandler
		$qh->addSqlFromSpec($sort);
//print $qh->query;
		if ($rowCount == 'All') {
			$result = $clsDes->getPeanutsRunQueryHandler($qh);
			$this->allItemsSize = count($result);
		} elseif (is_numeric($this->getAllItemsSize())) {
			$qh->limit($rowCount, $offset);
			$result = $clsDes->getPeanutsRunQueryHandler($qh);
		} else {
			$result = $this->runQhStoreAllItemsSize_getItemsLimitedTo($qh, $rowCount);
		}

		$this->result = $result;
		return $result;
	}