I saw in the documentation the difference between
count(pk). I had been using
pk is a
SERIAL PRIMARY KEY) not knowing about the existence of
My question is about Postgres' internal optimizations. Is it smart enough to pick up that a
SERIAL PRIMARY KEY is going to exist in every row and never be false and just count rows or will it do redundant predicate checks for each row? I agree that this is probably too much of a pointless optimization but I'm just curious.
I took a look at the output of
EXPLAIN VERBOSE for
count(id > 50) to see if
EXPLAIN mentioned checking the predicates in its output. It doesn't.