Re: Partitioned tables constraint_exclusion
От | Weslee Bilodeau |
---|---|
Тема | Re: Partitioned tables constraint_exclusion |
Дата | |
Msg-id | 460831B9.9090503@hypermediasystems.com обсуждение исходный текст |
Ответ на | Re: Partitioned tables constraint_exclusion (Weslee Bilodeau <weslee.bilodeau@hypermediasystems.com>) |
Ответы |
Re: Partitioned tables constraint_exclusion
|
Список | pgsql-hackers |
Weslee Bilodeau wrote: > Mainly its because the value comes from a reporting system that has > minimal brains, it passes values it gets from the user directly into a > query. > > IE, they enter '1 month', which I use to populate the interval value, > "ts > ( NOW() - $VALUE )" > > But, in the example I did a "timestamp - interval", the exact date, not > NOW() - Still didn't work. > > I'm guessing anything that has to think, math, etc is not valid for > constrain_exclusion? > > Its not in the docs anywhere, so trying to isolate what can and can't be > done. This works - CREATE FUNCTION now_interval( interval ) RETURNS timestamptz IMMUTABLE STRICT AS $$ SELECT NOW() - $1 $$ LANGUAGE SQL ; SELECT count(*) FROM master WHERE var_ts > now_interval( '1 month' ); This doesn't work - SELECT count(*) FROM master WHERE var_ts > ( NOW() - '1 month'::interval ); This works for me, as the reporting system I know doesn't change timezones, and function cache doesn't last longer then the current select? But, its basically the exact same logic in both cases? Weslee
В списке pgsql-hackers по дате отправления: