the only documentation i could find on this is below:
https://cloud.google.com/alloydb/docs/columnar-engine/monitor-tune
and it does not explain difference between various modes.
When the planner chooses the native mode, it pushes down some of the columnar operators to the scan:
The three possible columnar cache search modes are:
Columnar filter only: In this mode, the planner utilizes the columnar engine for scanning and filtering the data based on the specified conditions. It performs vectorized execution using the columnar data format, optimizing for efficient columnar operations. The columnar filter only mode is suitable for scenarios where the filtering of data is the primary operation.
Native: When the planner chooses the native mode, it pushes down some columnar operators to the scan. This mode allows for more advanced operations, such as aggregation, sorting, and limited row scanning, to be performed within the columnar engine. The native mode leverages the capabilities of the columnar storage and execution model to optimize query performance.
Row store scan: The row store scan mode indicates that the planner has chosen to access the data using the traditional row-based storage and retrieval. This mode is typically used when the query plan involves operations that are better suited for row-wise processing or when the data doesn't benefit significantly from columnar optimizations.