Open wgevers opened 8 years ago
Je hebt inderdaad gelijk... vreemd genoeg ging de oude query bij mij altijd goed onder Mysql 5.5 maar vandaag na updaten naar 5.6 kreeg ik erg rare en wisselende resultaten die door bovenstaande aanpassing worden opgelost. Volgens mij zijn in deze query max(pk) en max(creation_time) trouwens onafhankelijk en gezien alleen deze laatste wordt gebruikt, lijkt me dit geen problemen opleveren.
Gefixt in commit 7ef1e59c7a22079bbbf0692a4c45d5cac17d56cd.
Op Ubuntu 16.04 (MySQL 5.7.16) resulteerde het in errors en moeten de statements worden aangepast; commit 7ef1e59 is niet afdoende. In de asch99 branch heb ik wat aangepast om het weer aan de gang te krijgen, maar php is niet mijn sterkste taal, dus graag even checken voordat wordt gemerged!
Mijn server heb ik gisteren geupgrade naar Ubuntu 16.04 en daar lijkt het voldoende om alleen ONLY_FULL_GROUP_BY uit te zetten in de mysql config, zoals je ook al voorstelt in issue #20 van WAD_Services (https://github.com/wadqc/WAD_Services/issues/20). Klopt het inderdaad dat met die aanpassing een aanpassing van de queries niet meer nodig is? Zo ja, dan is dat wat mij betreft een quick-fix en moeten we WAD_Services en WAD_Interface aanpassen om ook met ONLY_FULL_GROUP_BY om te kunnen gaan.
Op het dashboard wordt niet altijd het daadwerkelijk laatste proces gekozen voor de status laatste QC check.
Het SQL-statement in het Dashboard is onjuist. De extended MySQL “GROUP BY” clause werkt alleen goed als de kolommen zonder “samenvattings-functie” dezelfde waarde hebben. Anders is de waarde van de betreffende kolom onbepaald. Ordering van deze kolommen heeft hier geen invloed op (zie https://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html). Hierdoor heeft de ordering in “select * from gewenste_processen where status=5 order by pk desc” geen zin en resulteert dit niet in de laatste pk. De volgende (standaard) SQL zorgt daar wel voor: select Max(pk) as pk, selector_fk, Max(creation_time) as creation_time from $table_gewenste_processen where status = 5 Group by selector_fk
Dit gaat er overigens wel van uit dat de Max(pk) hoort bij de max(creation_time). In show_dashboard.php dient dit 5 keer vervangen te worden.
Ik heb een geupdate versie van show_dashboard.php toegevoegd waarbij het (bij ons) wel goed werkt.
show_dashboard.php.txt