Prosím o otestování Nette Database 3.x s performance fixem

David Grudl
Nette Core | 8239
+
+9
-

Ahoj,

připravuji vydání nové verze Nette Database 3.2 (a také 3.1) a rád bych vás požádal o pomoc s otestováním. Můžete ji vyzkoušet pomocí:

composer require nette/database:^3.2.x-dev

Nejzajímavější změnou je potenciální zrychlení Database Exploreru. Je až neuvěřitelné, že stačila změna jediného řádku kódu (viz issue #312) a při výpisu tisíců záznamů může být Explorer rychlejší o několik řádů. Rád bych věděl, jestli je fix OK.

Další novinkou je vylepšení podmínek WHERE. Jednou ze skvělých vlastností Database je, že automaticky volí správný operátor podle typu hodnoty:

$db->query(['SELECT * FROM tbl WHERE', [
    'foo' => $foo,
]]);
// SELECT * FROM tbl WHERE foo = 123  když je $foo hodnota
// SELECT * FROM tbl WHERE foo IS NULL   když je $foo null
// SELECT * FROM tbl WHERE foo IN (1, 2, 3)   když je pole

A nově to funguje takto i s operátorem NOT:

$db->query(['SELECT * FROM tbl WHERE', [
    'foo NOT' => $foo,
]]);
// SELECT * FROM tbl WHERE foo != 123
// SELECT * FROM tbl WHERE foo IS NOT NULL
// SELECT * FROM tbl WHERE foo NOT IN (1, 2, 3)

A opraveno je i chování s prázdným polem:

$db->query(['SELECT * FROM tbl WHERE', [
    'foo NOT' => [],
]]);
// SELECT * FROM tbl WHERE 1=1

Mimochodem, kompletně jsem přepracoval dokumentaci a přidal novou stránku o bezpečnosti.