| spilling support | yes | "spilling" refers to the process of writing temporary data or intermediate results of a query to disk when the available memory is exhausted. This is crucial for handling large datasets or complex queries that require more memory than available. |
| model | Volcano | The operator scheduling model: pull-gebaseerd (Volcano), push etc. |
| support intra-parallel query? | no | meaning a single query can utilize multi hardware threads to run it |
| adaptive execution (AQP)? | no | Traditionally, after the optimizer determines the plan, the runtime must execute it completely without any room for adjustment, such as which of the two tables should be built. The adaptive method allows the runtime to make some adjustments based on the actual situation, and the optimizer must also prepare for this uncertainty, such as preparing an alternative plan. |
| vectorization | no native. HeatWave supports it (not open source). | Speed up OLAP queries using vectorized execution. A vectorized runtime exchange a bunch of rows between iterators, and these rows are physically sotre with column-oriented order. |
| iterator: join methods | except MJ | Hash Join (HJ), Sort-Merge Join (MJ) and Nested loop Join (NLJ) are 3 major ones |
| Error: out-of-range and overflow | strict mode: abort. Non-strict mode: continue with warning. | To maintain atomic requirement of ACID, database engine usually fail the statement and abort the transaction. |