I have done some performance comparisons.
First of all I failed to run vectorized version of Q1 with master branch of your repository and
PG9_6_STABLE branch of Postgres:
NOTICE: query can't be vectorized
DETAIL: Non plain agg is not supported
I have to switch to pg96 branch.
Results (seconds) of Q1 execution are the following:
max_parallel_workers_per_gather
| PG9_6, enable_vectorize_engine=off
| PG9_6, enable_vectorize_engine=on
| master (jit=on)
|
0
| 36
| 20
| 10
|
4
| 10
| -
| 5
|
I failed to run parallel version of Q1 with enable_vectorize_engine=on because of the same error: "Non plain agg is not supported"
So looks like PG-13 provides significant advantages in OLAP queries comparing with 9.6!
Definitely it doesn't mean that vectorized executor is not needed for new version of Postgres.
Once been ported, I expect that it should provide comparable improvement of performance.
But in any case I think that vectorized executor makes sense only been combine with columnar store.