o /õ¬jŒã@sdZgd¢ZdS)z}Benchmark queries: (name, feature, SQL). The same text runs with provsql.active off (plain SQL over the same tables) and on.))Úscanzscan of a tracked tablezSELECT id, v FROM r)Ú select_1pctzselection, 1% of the rowszSELECT id, v FROM r WHERE b = 7)Úexprztarget-list expressionszXSELECT id, CASE WHEN v > 500 THEN 'hi' ELSE 'lo' END, v * 2 + 1, coalesce(t, '-') FROM r)Újoin_untrackedz)join with an untracked relation (no gate)z7SELECT r.id, p.label FROM r JOIN d_plain p ON r.a = p.a)Újoin_2z+two-way join, one times gate per output rowz/SELECT r.id, d.label FROM r JOIN d ON r.a = d.a)Újoin_3z5three-way join, one 3-child times gate per output rowz`SELECT r.id, s.id, d.label FROM r, s, d WHERE r.a = s.a AND r.a = d.a AND r.b < 10 AND s.w < 100)Úselfjoinz self-joinzOSELECT x.id, y.id FROM r x JOIN r y ON x.a = y.a AND x.id < y.id WHERE x.b < 20)Ú from_subqueryzFROM subquery over a joinz[SELECT q.id, q.w FROM (SELECT r.id, s.w, r.b FROM r JOIN s ON r.id = s.id) q WHERE q.b < 50)Údistinct_small_groupszDISTINCT, groups of 10 rowszSELECT DISTINCT a FROM r)Údistinct_big_groupsz"DISTINCT, 100 groups of N/100 rowszSELECT DISTINCT b FROM r)Ú union_allz UNION ALLz)SELECT a FROM r UNION ALL SELECT a FROM s)ÚunionÚUNIONz%SELECT a FROM r UNION SELECT a FROM s)ÚexceptÚEXCEPTz4SELECT a FROM r EXCEPT SELECT a FROM s WHERE w < 500)Úcount_small_groupszcount(*), groups of 10 rowsz$SELECT a, count(*) FROM r GROUP BY a)Úsum_small_groupszsum, groups of 10 rowsz"SELECT a, sum(v) FROM r GROUP BY a)Úsum_big_groupszsum, 100 groups of N/100 rowsz"SELECT b, sum(v) FROM r GROUP BY b)Ú multi_aggz"four aggregates, groups of 10 rowsz