> 2. I found that using the now() function - and arbitrary interval will
> produce a different execution plan that using a specific date. For example:
> assuming the current time is 16:00:
> a) where start_date > now() - interval '4 hours' scans all child tables.
> b) where start_date > '2006-07-21 12:00:00' only scans the child
> table with today's data.
>
> So am I to assume that the value in the query must be a constant, and
> cannot be a result of a built-in function in order for
> constraint_exclusion to work correctly?
Have you tried WHERE start_date > (SELECT now() - interval '4 hours')?
Certainly using the constant will allow CBE to work. I think that a
subquery might too.