diff options
| author | David Rowley <drowley@postgresql.org> | 2024-07-09 09:54:59 +1200 |
|---|---|---|
| committer | David Rowley <drowley@postgresql.org> | 2024-07-09 09:54:59 +1200 |
| commit | 036bdcec9f9998a6e50711fadce69e482ff18f55 (patch) | |
| tree | 8c1083770d0c69096c0ce0bb3963333b74c75168 /src/include | |
| parent | 5193ca8e155ac0140d20361bdafa27744c016252 (diff) | |
Teach planner how to estimate rows for timestamp generate_series
This provides the planner with row estimates for
generate_series(TIMESTAMP, TIMESTAMP, INTERVAL),
generate_series(TIMESTAMPTZ, TIMESTAMPTZ, INTERVAL) and
generate_series(TIMESTAMPTZ, TIMESTAMPTZ, INTERVAL, TEXT) when the input
parameter values can be estimated during planning.
Author: David Rowley
Reviewed-by: jian he <jian.universality@gmail.com>
Discussion: https://postgr.es/m/CAApHDvrBE%3D%2BASo_sGYmQJ3GvO8GPvX5yxXhRS%3Dt_ybd4odFkhQ%40mail.gmail.com
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/catalog/pg_proc.dat | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 0bf413fe054..e899ed5e77e 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -8331,19 +8331,25 @@ prorettype => 'numeric', proargtypes => 'numeric numeric', prosrc => 'generate_series_numeric' }, { oid => '938', descr => 'non-persistent series generator', - proname => 'generate_series', prorows => '1000', proretset => 't', + proname => 'generate_series', prorows => '1000', + prosupport => 'generate_series_timestamp_support', proretset => 't', prorettype => 'timestamp', proargtypes => 'timestamp timestamp interval', prosrc => 'generate_series_timestamp' }, { oid => '939', descr => 'non-persistent series generator', - proname => 'generate_series', prorows => '1000', proretset => 't', + proname => 'generate_series', prorows => '1000', + prosupport => 'generate_series_timestamp_support', proretset => 't', provolatile => 's', prorettype => 'timestamptz', proargtypes => 'timestamptz timestamptz interval', prosrc => 'generate_series_timestamptz' }, { oid => '6274', descr => 'non-persistent series generator', - proname => 'generate_series', prorows => '1000', proretset => 't', + proname => 'generate_series', prorows => '1000', + prosupport => 'generate_series_timestamp_support', proretset => 't', prorettype => 'timestamptz', proargtypes => 'timestamptz timestamptz interval text', prosrc => 'generate_series_timestamptz_at_zone' }, +{ oid => '8402', descr => 'planner support for generate_series', + proname => 'generate_series_timestamp_support', prorettype => 'internal', + proargtypes => 'internal', prosrc => 'generate_series_timestamp_support' }, # boolean aggregates { oid => '2515', descr => 'aggregate transition function', |
