Just I applied CAY-1486 patch, switching static QueryLogger to a DI-based 
approach. Part of that was changing QueryFormatter to a more OO approach (a 
special subclass FormattedCommonsJdbcEventLogger instead of if/else in the 
static logger). 

I noticed that formatting algorithm adds a bunch of unneeded line breaks 
sometimes. All examples are from running 3.1 tutorial with 
FormattedCommonsJdbcEventLogger, which is achieved with code similar to this:

ServerRuntime cayenneRuntime = new ServerRuntime(
 "cayenne-UntitledDomain.xml", new Module() {
     public void configure(Binder binder) {
       JdbcEventLogger logger = new FormattedCommonsJdbcEventLogger();
       QueryLogger.setLogger(logger);
       binder.bind(JdbcEventLogger.class).toInstance(logger);
     }
});

Examples:

1. (an empty line before WHERE)

INFO: SELECT t0.GALLERY_ID,
         t0.NAME,
         t0.ARTIST_ID,
         t0.ID 
FROM PAINTING t0 JOIN ARTIST t1 ON (
        t0.ARTIST_ID = t1.ID)
         
WHERE t1.DATE_OF_BIRTH < ?
 [bind: 1->DATE_OF_BIRTH:'1910-01-01 00:00:00.04']

2. (an empty line before VALUES, 2 empty lines after the last parenthesis)

INFO: INSERT INTO PAINTING (
        ARTIST_ID,
         GALLERY_ID,
         ID,
         NAME)

VALUES (
        ?,
         ?,
         ?,
         ?)


3. (an empty line after WHERE, also lie break between DELETE and FROM seems 
unneeded)

INFO: DELETE 
FROM ARTIST 
WHERE ID = ?




Reply via email to