Oznámení
SQLite3 – Row count is not available for unbuffered queries
před 8 lety
- Chbox
- Člen | 125
$data = $this->connection->query('
SELECT *
FROM [table]
');
- sqlite3.php Line: 334 Row count is not available for unbuffered queries
co je špatně?
ještě nastavení v config.neon
driver: sqlite3
database: %appDir%/db/database.sqlite
lazy: true
profiler: true
result:
detectTypes: TRUE
formatDateTime: TRUE
před 8 lety
- Chbox
- Člen | 125
…tak problém, dělá profiler: TRUE, pokud ho zakomentuji, tak je to v pořádku a dotaz proběhne..
před 8 lety
- Chbox
- Člen | 125
Jedná se o chybu SQLite3 driveru?
před 8 lety
- Milo
- Nette Core | 1119
To není chyba driveru, ale vlastnost SQLite3. Používá pouze nebuferované
selecty, tj. nelze po selectu spočítat počet řádků, ale pouze seekovat
dopředu, dokud jsou nějaké k dispozici. Driver pouze vyhodí
NotSupportedException
.
Řeší se to jako:
$cnt = dibi::query('SELECT COUNT(*) FROM (SELECT x,y,z FROM table)')->fetchSingle();
Nicméně profiler by s tím měl počítat a bug to
tedy je.
Editoval Milo (1. 6. 2011 9:00)
před 8 lety
- Milo
- Nette Core | 1119
Kouknul jsem zběžně do zdrojáků a tam to ošetřené je. Jakou verzi dibi používáš?
před 8 lety
- Chbox
- Člen | 125
1.5rc z 21.4.11
před 8 lety
- Milo
- Nette Core | 1119
A jaký je backtrace?
před 8 lety
- Chbox
- Člen | 125
ehm, s debug_backtrace() nemám zkušenosti, tak snad jsem správně
pochopil.
Hodil jsem backtrace před tu Exception sqlite3.php Line: 334: http://server.czskcup.info/backtrace.zip
Laděnka s chybou tady: http://server.czskcup.info/error.htm
Editoval Chbox (2. 6. 2011 11:20)
před 8 lety
- Milo
- Nette Core | 1119
Tahle chyba je ale způsobena tím, že neexistuje třída
NotSupportedException
. Kompatibilita dibi s namespacovaným Nette
asi není úplně odladěná. Zkus tady
odstranit podmínku, aby se ty třídy vyjímek nadefinovali vždy.
Dám pak issue na GitHub.
EDIT: Jo a k tomu backtrace stačí většinou laděnka, resp. kudy ta vyjímka protekla. 70 tis. řádků je moc ;) Ale měl jsem to popsat líp…
Editoval Milo (2. 6. 2011 15:16)
před 8 lety
- Chbox
- Člen | 125
pomohlo to, díky.