digedag/rn_base — pull request #9 by rengaw83 (2014-09-25 08:14:15+00:00)
Title: count for queries with groubby, having ord count in custom what.

Bisher ist es über die Option `count` nicht möglich gewesen, die Anzahl der Datansätze zu ermitteln, wenn die Optionen `groupby` oder `having` gesetzt wurden.
Auch funktioniert das ganze nicht mehr, wenn über die Optionen ein eigenes `what` gesetzt wurde, wleches bereits einen COUNT enthält.

Bisher wurde die Option `count` einfach ignoriert, womit es zu PHP-Fehlern und Fehlverhalten des Programms kommt.

Das ganze lässt sich allerdings vermeiden, indem die eigentliche Query in ein Subselect gepackt, und der COUNT un den Wrap gesetzt wird.

Beispielquery, um die Anzahl an Nutzern zu ermitteln, welche den einzelnen Nutzergruppen zugewiesen Sind, dabei aber nur Gruppen ausgeben, die mehr als 20 Nutzer enthalten (nicht auf die Sinnhaftigkeit schauen):

```sql
SELECT FEUSER.*, COUNT(FEUSER.uid) as usercount
FROM fe_users AS FEUSER
WHERE FEUSER.uid > 0
GROUP BY FEUSER.usergroup
HAVING usercount > 20
```

Mit dem aktuellem Searcher und der zusätzlichen Option `count`, wird genau das selbe Statement gebildet, das unter umständen große Item-Array gebaut und dann lediglich `$result[0]['cnt']` zurückgegeben, was schief geht.

Mit den Änderungen aus diesem Branch wird die option `count` nicht mehr ignoriert, und die Query in einem Subselect abgesendet, wleches wiefolgt aussieht:
```sql
SELECT COUNT(COUNTWRAP.uid) AS cnt
FROM (
SELECT FEUSER.*, COUNT(FEUSER.uid) as usercount
FROM fe_users AS FEUSER
WHERE FEUSER.uid > 0
GROUP BY FEUSER.usergroup
HAVING usercount > 20
) AS COUNTWRAP
```

@digedag, @hannesbochmann, @christianriesche:
Da dies eine Änderung im Basis-Searcher ist und ggf. gravierende Auswirkungen auf bisherigen Code in rn_base und den Extensions, wleche darauf aufbauen, haben könnte,
bitte ich um ein Code-Review!