Motivation: Consider a table data with an indexed timestamp column ts, the query `SELECT ts::date, count(1) GROUP BY 1;` requires ts::date to be sorted, but the planner is not aware of the fact that ts::date will ordered whenever ts is ordered.
This includes slope information to several builtin functions. type casting, addition, subtraction, common mathematical functions, e.g. atan, sinh, log, exp, erf, etc. And some date manipulation function. This may not be complete, but already covers obvious cases. e.g. SELECT created_at::date, count(1) FROM tasks GROUP BY 1; can use an index on created_at, to count tasks per day. You can find examples of howthis feature can be useful in the test file, including - Ordered outputs without a sorting node. - GroupAggregate used directly on the index scan - MinMaxAggregate replaced by Index scan + limit.
0002-SLOPE-Builtin-support.patch
Description: Binary data
0003-SLOPE-Tests.patch
Description: Binary data
0001-SLOPE-Analysis-Machinery.patch
Description: Binary data
