• Processing Models
    • Iterator Model
    • Materialization model
    • Vectorized / Batch Model
  • Processing direction:
    • Top-to-bottom: Start with the root and pull data from children to parents, tuples are always passed via function calls
    • Bottom-to-top: Start with leaf nodes and push data
  • Access Methods:
    • Sequential Scan
      • Optimizations:
        • Prefetching
        • Buffer Pool Bypass
        • Parallelization
        • Late materialization
        • Heap Clustering (i.e. cluster data on disk via clustered index)
        • Approximate Queries (Lossy Data Skipping)
        • Zone Maps (Lossless Data skipping)
    • Index Scans
      • Optimizations:
        • Multi-index scans
  • Modification Queries. How to implement insert operator
    • Materialize tuples inside of the operator
    • Trust child operators