Database – pri zapnutej cache sa vykoná jeden dotaz navyše

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

NetteFramework-2.0rc2 z 1.2.2012

Nette\Database

Ak vypisujem knihy a k nim autora, tak pri zapnutej cache sa vykonáva jeden SQL dotaz navyše (namiesto 2 dotazov sa vykonávajú 3 dotazy).

$books = $database->table('book');

foreach ($books as $book) {
	echo $book->title;
	echo $book->author->name;
}

SQL dotazy

SELECT `id`, `title`, `author_id` FROM `book`
SELECT * FROM `book` // tento dotaz je navyše
SELECT `id`, `name` FROM `author` WHERE (`author`.`id` IN (11, 12))
David Grudl
Nette Core | 8228
+
0
-

To se stát může. Nemělo by se to ale opakovat při dalším refreshi.

dakota
Člen | 148
+
0
-

Tieto tri SQL dotazy sa vykonavaju aj pri opakovanom refreshi. Chyba sa prejavuje ked vypisujem údaje z cudzej tabuľky (v tomto príklade autora knihy).

David Grudl
Nette Core | 8228
+
0
-

Potvrzuji chybu, důvod je ten, že mu chybí sloupec „author“, který pochopitelně v tabulce není. Vznikla tímto https://github.com/…8e7fe617c3d4

hrach
Člen | 1838
+
0
-

fixed