On Wed, 2023-09-27 at 00:01 +0530, Atul Kumar wrote: > my postgres version is 12 and running on centos 7 > > my log_statement is set to "DDL". > > and log_min_duration_statement is set to "1ms" > > 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. log_statement = 'ddl' will log all DDL. log_min_duration_statement = 1 will log all statements that take longer than a millisecond. These settings are independent from each other. So PostgreSQL logs all statements that are DDL *OR* that take longer than a millisecond, rather than all statements that are DDL *AND* take longer than a millisecond, as you seem to expect. Yours, Laurenz Albe