Project

General

Profile

Feature #8851

new logmode: modifyAll

Added by Carsten Rose 10 months ago. Updated 3 months ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
15.08.2019
Due date:
% Done:

100%

Estimated time:
Discuss:

Description

Der bisherige Logmode 'modify' soll neu keine Update / Insert Statements mehr loggen mit 'Affected rows'=0.

Es gibt einen neuen Logmode 'modfiyAll', der alle Insert/Update Statements loggt.

Associated revisions

Revision 3830de7c (diff)
Added by Elias Villiger 10 months ago

Fixes #8851 - add sqlLogMode modifyAll and restrict sqlLogMode modify

Revision 7278efa4
Added by Carsten Rose 10 months ago

Merge branch 'F8851-logmode-modifyAll' into 'master'

Fixes #8851 - add sqlLogMode modifyAll and restrict sqlLogMode modify

See merge request typo3/qfq!172

Revision 95ac7b5c
Added by Carsten Rose 5 months ago

Merge branch 'F8851FixSqlLogModeModifyAll' into 'develop'

F8851 fix sql log mode modify all

See merge request typo3/qfq!235

History

#1 Updated by Elias Villiger 10 months ago

  • Tracker changed from Support to Feature
  • Status changed from New to Ready to sync (develop)

#2 Updated by Elias Villiger 10 months ago

  • Status changed from Ready to sync (develop) to Closed
  • % Done changed from 0 to 100

#3 Updated by Carsten Rose 9 months ago

  • Target version changed from 146 to 19.8.0

#4 Updated by Carsten Rose 5 months ago

Die Aenderungen wurden bzgl Unterscheidung modify / modifyAll wieder zurueck genommen. Die Erweiterung des Logging von CREATE, ALTER,... ist drin geblieben.

Problem: es wurde gar nicht mehr geloggt (sql.log blieb leer)!!!

Ursache: Fehler in der Implementierung - der systemweite default 'modify' ist kleiner als 'modifyAll' und in QFQ wurde 'modifyAll' gesetzt, der Loglevel steht aber auf 'modify' , also wurde das nicht geloggt.

Ausserdem: Nach Analyse des Codes ist nicht klar geworden was durch 'modifyAll' mehr/weniger geloggt werden soll. Aktuell:

[2020.01.09 10:29:01 +0100][192.168.133.203][Page:1,tt:35,level:5][INSERT INTO Person (`name`) SELECT 'john' FROM FormElement WHERE 1=0]
[2020.01.09 10:29:01 +0100][192.168.133.203][Page:1,tt:35,level:5][ID: 0 - affected rows: 0]

#5 Updated by Elias Villiger 3 months ago

Ich habe meinen Code nochmals getestet und so wie ich das Feature verstehe funktioniert alles wie erwartet: Bei sqlLogMode modify werden nur INSERT/UPDATEs geloggt, die affected rows > 0 haben, bei sqlLogMode modifyAll werden alle INSERT/UPDATEs geloggt.

Wenn in der Config sqlLogMode modify gesetzt ist und im Report z.B. modifyAll, dann überschreibt die Definition im Report immer diejenige in der Config. Das sieht auch in meinen Tests gut aus. sql.log bleibt bei mir nur leer, wenn ich z.B. logMode modify habe und die UPDATEs nichts verändern.

Wenn du mir ein konkretes Setup hast, wo es nicht korrekt funktioniert, schaue ich gerne, dass ich das korrigiere. Ich kann das Problem aber aktuell nicht nachvollziehen.

#6 Updated by Elias Villiger 3 months ago

PS: der Code ist aktuell auf geolean aktiv

Also available in: Atom PDF