Bug u agregačních funkcí v GroupedSelection

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Caine
Člen | 216
+
0
-

Mám následující funkci:

public function isExclusiveInterval(ActiveRow $offer, $startTime, $endTime, $type) {
	$result = $offer->related('modification')
		->where('type', $type)
		->where(
			'(? BETWEEN start_time AND end_time) OR (? BETWEEN start_time AND end_time) OR ' .
			'(start_time BETWEEN ? AND ?) OR (end_time BETWEEN ? AND ?)',
				$startTime, $endTime,
				$startTime, $endTime,
				$startTime, $endTime
			)
			->count('*');

		return $result ? false : true;
}

Pokud onu funkci spustím s různými parametry, používá se stále stejný (první) dotaz s prvními parametry např:

SELECT COUNT(*), `modification`.`id`
FROM `modification`
WHERE (`modification`.`id` IN (11778, 11860, 11861, 11951, 11952, 11990, 11991)) AND (`type` =
1) AND (('2012-05-09 10:41:13' BETWEEN `start_time` AND `end_time`) OR ('2012-05-10 00:00:00' BETWEEN
`start_time` AND `end_time`) OR (`start_time` BETWEEN '2012-05-09 10:41:13' AND '2012-05-10 00:00:00')
OR (`end_time` BETWEEN '2012-05-09 10:41:13' AND '2012-05-10 00:00:00'))
GROUP BY `modification`.`id`

Chybu vidim v tomto řádku https://api.nette.org/…ion.php.html#108, kde se asi cachuje, ale bez hodnot parametrů, takže pokud si tam přidám např. implode('', \Nette\Utils\Arrays::flatten($this->parameters)), už to funguje správně.

hrach
Člen | 1834
+
0
-

Jo, to dáva smysl. Díky za report. Zkusim napsat nejake testy.