Thread: constraint_exclusion not working correctly
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/16/ddl-partitioning.html Description: Hello, I have noted that, in order for constraint exclusion to work correctly when partitioning using inheritance, we must use simple comparisons in check constraints (e.g., =, >=, <=, BETWEEN, etc.). If conditions are combined using AND or OR, unnecessary partitions may be scanned. Therefore, the example in this PostgreSQL documentation will not work properly with constraints like CHECK (logdate >= DATE '2006-02-01' AND logdate < DATE '2006-03-01'). However, it will work with the BETWEEN operator. Regards
PG Doc comments form <noreply@postgresql.org> writes: > I have noted that, in order for constraint exclusion to work correctly when > partitioning using inheritance, we must use simple comparisons in check > constraints (e.g., =, >=, <=, BETWEEN, etc.). If conditions are combined > using AND or OR, unnecessary partitions may be scanned. > Therefore, the example in this PostgreSQL documentation will not work > properly with constraints like CHECK (logdate >= DATE '2006-02-01' AND > logdate < DATE '2006-03-01'). However, it will work with the BETWEEN > operator. The example in the documentation works perfectly well for me. regards, tom lane