so technically it should log "ONLY DDLs" that take more than 1ms.
but to my surprise, postgres is logging DML as well which is taking more than 1ms.
That doesn't surprise me, it is just what I expected.
What am I missing here to understand, because as per my understanding log_statement and log_min_duration_statement are correlated, postgres should log according to log_statement parameter.
If something in the docs led you to this misunderstanding, we should identify it and fix it. Otherwise, there isn't much we can do, except point out that that is simply not how it works.