NDB subselect, pokud není záznam v tabulce vrací offset

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

Ahoj,
nevím jestli to je bug nebo správné chování. Používám Nette 2.0.13.

Potřebuju udělat subselect dotaz, který vytvářím takhle:

$return = $this->_db->table('tabulka')
	->where('id IN ? && id IN ?',
		$this->_db->table('tabulka_tags')->select('tabulka_id')->where('tag_id = ?', $filter[0]),
		$this->_db->table('tabulka_tags')->select('tabulka_id')->where('tag_id = ?', $filter[1])
);

To se přeloží na tohle:

SELECT `id`, `gallery_id`, `slug`, `attribute_top`, `date_publish`, `author_id`, `title`, `perex`
FROM `tabulka`
WHERE (
`id` IN (SELECT `tabulka_id` FROM `tabulka_tags` WHERE (`tag_id` = 232))
&& `id` IN (SELECT `tabulka_id` FROM `tabulka_tags` WHERE (`tag_id` = 242)))

V admineru to napíše správně Žádné řádky. V Nette ale…
Pokud oba subselecty naplní data, tak je všechno v pohodě a vrátí se správný počet výsledků. Pokud ale jeden z nich vrátí nulový počet řádků, tak celej dotaz vrátí notice Undefined offset: 1.

Pokud mám jen jeden subselect, kterej mě vrátí nulovej počet řádků, tak je to v pohodě.

Jak tohle řešíte? Jde to nějak obejít nebo to používám špatně? Díky!

hrach
Člen | 1844
+
0
-

Mohl bys prosim nahrat nekam ladenku?

Oli
Člen | 1215
+
0
-

Jasně, laděnka.

hrach
Člen | 1844
+
0
-

Co testuju, tak je to v 2.1 fixle ;) prejdi!

hrach
Člen | 1844
+
0
-

Nebo jinak, nedari se mi to nasimulovat, muzes to pls na 2.1 vyzkouset? Imo to bude fixle.

Oli
Člen | 1215
+
0
-

V neděli zkusím. Databáze pro 2.0.14 vyvíjíš taky? Budeš to tam taky fixovat nebo to necháš až na 2.1?Respektive měl by jsi nějakou okliku jak to vyřešit na 2.0 bez fixu db? :-)

Díky

hrach
Člen | 1844
+
0
-

Jako oficialne nevyvijim nic, neoficialne vyvojim db. Nicmene release managment nedelam a moc nevim, v jakem stavu je 2.0, protoze neco je tam portovane, neco ne, neco nemuze, neco by mohlo, ale uz zavisy na tom, co nemuze, takze tak… s vetsi pravdepodobnosti spis moc nechystam, ale zatim ani nevim, kde presne ta chyba je, protoze ta cast kodu, kde se to zlobi , je stejna.

Oli
Člen | 1215
+
0
-

Dobře, zítra to vyzkouším a dám vědět… díky

hrach
Člen | 1844
+
0
-

Pls, nejaky progress?

Oli
Člen | 1215
+
0
-

Promiň, tenhle týden jsem toho měl hrozně moc a myslel jsem, že to stihnu. No nestihl. V sobotu nebo v neděli na 100% vyzkouším ;-)

Oli
Člen | 1215
+
0
-

Tak jsem to teď testoval a v Nette 2.0.14 RC2 to stále stejně padá. V 2.1 RC4 to je v pohodě. Nevim jestli budu moct upgradovat na 2.1, bylo by možný se zkusit aspoň v rychlosti kouknout na 2.0? Nebo už to je uplně překopaný a zbytečný? Nebo jde to nějak obejít? Například konvertovat tu notice na exception?