DEV Community

PostgreSQL Internals Series' Articles

Back to JoongHyuk Shin's Series
1.1 Where Does a Query Go?
Cover image for 1.1 Where Does a Query Go?

1.1 Where Does a Query Go?

1
Comments
1 min read
1.1.1 Life of a Query
Cover image for 1.1.1 Life of a Query

1.1.1 Life of a Query

1
Comments
5 min read
1.1.2 Simple vs Extended
Cover image for 1.1.2 Simple vs Extended

1.1.2 Simple vs Extended

1
Comments
7 min read
1.1.3 The optimizable vs utility fork
Cover image for 1.1.3 The optimizable vs utility fork

1.1.3 The optimizable vs utility fork

2
Comments 2
6 min read
1.2 Parser and Analyzer: How SQL Gets Its Meaning
Cover image for 1.2 Parser and Analyzer: How SQL Gets Its Meaning

1.2 Parser and Analyzer: How SQL Gets Its Meaning

Comments
2 min read
1.2.1 From SQL Text to Raw Parse Tree
Cover image for 1.2.1 From SQL Text to Raw Parse Tree

1.2.1 From SQL Text to Raw Parse Tree

Comments 1
10 min read
1.2.2 Semantic Analysis: Name Resolution, Type Checking, Catalog Lookup
Cover image for 1.2.2 Semantic Analysis: Name Resolution, Type Checking, Catalog Lookup

1.2.2 Semantic Analysis: Name Resolution, Type Checking, Catalog Lookup

Comments 1
9 min read
1.2.3 Query Tree Node Types: Query, RangeTblEntry, TargetEntry
Cover image for 1.2.3 Query Tree Node Types: Query, RangeTblEntry, TargetEntry

1.2.3 Query Tree Node Types: Query, RangeTblEntry, TargetEntry

Comments
7 min read
1.3 Rewriter: How a Query Is Rewritten
Cover image for 1.3 Rewriter: How a Query Is Rewritten

1.3 Rewriter: How a Query Is Rewritten

Comments
2 min read
1.3.1 Rule System and View Expansion
Cover image for 1.3.1 Rule System and View Expansion

1.3.1 Rule System and View Expansion

Comments
10 min read
1.3.2 How RLS Rewrites Queries (Mechanism)
Cover image for 1.3.2 How RLS Rewrites Queries (Mechanism)

1.3.2 How RLS Rewrites Queries (Mechanism)

Comments 1
10 min read
1.3.3 INSERT/UPDATE/DELETE Targetlist Normalization (Default Expansion)
Cover image for 1.3.3 INSERT/UPDATE/DELETE Targetlist Normalization (Default Expansion)

1.3.3 INSERT/UPDATE/DELETE Targetlist Normalization (Default Expansion)

Comments
11 min read
1.3.4 RETURNING Mapping and View-Target DML Transformation
Cover image for 1.3.4 RETURNING Mapping and View-Target DML Transformation

1.3.4 RETURNING Mapping and View-Target DML Transformation

Comments
9 min read
1.4 Planner: Which Path to Take
Cover image for 1.4 Planner: Which Path to Take

1.4 Planner: Which Path to Take

Comments
4 min read
1.4.1 Path Tree vs Plan Tree: What's the Difference
Cover image for 1.4.1 Path Tree vs Plan Tree: What's the Difference

1.4.1 Path Tree vs Plan Tree: What's the Difference

Comments
11 min read
1.4.2 Cost Model: Sequential Scan Formula
Cover image for 1.4.2 Cost Model: Sequential Scan Formula

1.4.2 Cost Model: Sequential Scan Formula

Comments
10 min read
1.4.3 Cost Model: The Index Scan Formula
Cover image for 1.4.3 Cost Model: The Index Scan Formula

1.4.3 Cost Model: The Index Scan Formula

Comments
13 min read
1.4.4 Join Strategies: Nested Loop, Hash, Merge
Cover image for 1.4.4 Join Strategies: Nested Loop, Hash, Merge

1.4.4 Join Strategies: Nested Loop, Hash, Merge

Comments
12 min read
1.4.5 Join Order: Dynamic Programming vs GEQO
Cover image for 1.4.5 Join Order: Dynamic Programming vs GEQO

1.4.5 Join Order: Dynamic Programming vs GEQO

Comments
12 min read
1.4.6 Aggregate Cost: Choosing HashAgg vs GroupAgg
Cover image for 1.4.6 Aggregate Cost: Choosing HashAgg vs GroupAgg

1.4.6 Aggregate Cost: Choosing HashAgg vs GroupAgg

Comments
9 min read
1.4.7 Parallel Cost: When to Go Parallel and How Many Workers
Cover image for 1.4.7 Parallel Cost: When to Go Parallel and How Many Workers

1.4.7 Parallel Cost: When to Go Parallel and How Many Workers

Comments
8 min read
1.4.8 Statistics: pg_statistic and Selectivity
Cover image for 1.4.8 Statistics: pg_statistic and Selectivity

1.4.8 Statistics: pg_statistic and Selectivity

Comments
12 min read
1.4.9 Planner Preprocessing: Subquery Pull-up, Predicate Pushdown, Equivalence Classes
Cover image for 1.4.9 Planner Preprocessing: Subquery Pull-up, Predicate Pushdown, Equivalence Classes

1.4.9 Planner Preprocessing: Subquery Pull-up, Predicate Pushdown, Equivalence Classes

Comments
12 min read
1.4.10 Planner Hook: When It Fires, How to Use It
Cover image for 1.4.10 Planner Hook: When It Fires, How to Use It

1.4.10 Planner Hook: When It Fires, How to Use It

Comments
9 min read
1.5 Executor: How Results Come Back
Cover image for 1.5 Executor: How Results Come Back

1.5 Executor: How Results Come Back

Comments
4 min read
1.5.1 The Volcano Iterator Model
Cover image for 1.5.1 The Volcano Iterator Model

1.5.1 The Volcano Iterator Model

Comments
8 min read
1.5.2 Scan Nodes: SeqScan, IndexScan, BitmapScan
Cover image for 1.5.2 Scan Nodes: SeqScan, IndexScan, BitmapScan

1.5.2 Scan Nodes: SeqScan, IndexScan, BitmapScan

Comments
8 min read
1.5.3 Join Nodes: NestLoop, HashJoin, MergeJoin
Cover image for 1.5.3 Join Nodes: NestLoop, HashJoin, MergeJoin

1.5.3 Join Nodes: NestLoop, HashJoin, MergeJoin

Comments
9 min read
1.5.4 Aggregation: HashAgg, GroupAgg, Sort-Based
Cover image for 1.5.4 Aggregation: HashAgg, GroupAgg, Sort-Based

1.5.4 Aggregation: HashAgg, GroupAgg, Sort-Based

Comments
7 min read
1.5.5 Parallel Query: How Worker Processes Cooperate
Cover image for 1.5.5 Parallel Query: How Worker Processes Cooperate

1.5.5 Parallel Query: How Worker Processes Cooperate

Comments
8 min read
Closing Chapter 1: From Query to Data
Cover image for Closing Chapter 1: From Query to Data

Closing Chapter 1: From Query to Data

Comments
2 min read