github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/opt/xform/testdata/physprops/presentation (about) 1 exec-ddl 2 CREATE TABLE a (x INT PRIMARY KEY, y INT) 3 ---- 4 5 exec-ddl 6 CREATE TABLE t.b (x INT, y FLOAT) 7 ---- 8 9 # Scan operator. 10 opt 11 SELECT a.y, a.x, a.y y2 FROM a 12 ---- 13 scan a 14 ├── columns: y:2 x:1!null y2:2 15 ├── key: (1) 16 └── fd: (1)-->(2) 17 18 # Select operator. 19 opt 20 SELECT a.y, a.x, a.y y2 FROM a WHERE y=1 21 ---- 22 select 23 ├── columns: y:2!null x:1!null y2:2!null 24 ├── key: (1) 25 ├── fd: ()-->(2) 26 ├── scan a 27 │ ├── columns: x:1!null y:2 28 │ ├── key: (1) 29 │ └── fd: (1)-->(2) 30 └── filters 31 └── y:2 = 1 [outer=(2), fd=()-->(2)] 32 33 # Project operator. 34 opt 35 SELECT 1+a.y AS plus, a.x FROM a 36 ---- 37 project 38 ├── columns: plus:3 x:1!null 39 ├── key: (1) 40 ├── fd: (1)-->(3) 41 ├── scan a 42 │ ├── columns: x:1!null y:2 43 │ ├── key: (1) 44 │ └── fd: (1)-->(2) 45 └── projections 46 └── y:2 + 1 [as=plus:3, outer=(2)] 47 48 # Join operator. 49 opt 50 SELECT b.x, rowid, a.y, a.x, a.y y2, b.y FROM a, b 51 ---- 52 inner-join (cross) 53 ├── columns: x:3 rowid:5!null y:2 x:1!null y2:2 y:4 54 ├── key: (1,5) 55 ├── fd: (1)-->(2), (5)-->(3,4) 56 ├── scan a 57 │ ├── columns: a.x:1!null a.y:2 58 │ ├── key: (1) 59 │ └── fd: (1)-->(2) 60 ├── scan b 61 │ ├── columns: b.x:3 b.y:4 rowid:5!null 62 │ ├── key: (5) 63 │ └── fd: (5)-->(3,4) 64 └── filters (true) 65 66 # Groupby operator. 67 opt 68 SELECT max(y), y, y, x FROM a GROUP BY a.x, a.y 69 ---- 70 group-by 71 ├── columns: max:3 y:2 y:2 x:1!null 72 ├── grouping columns: x:1!null 73 ├── internal-ordering: +1 74 ├── key: (1) 75 ├── fd: (1)-->(2,3) 76 ├── scan a 77 │ ├── columns: x:1!null y:2 78 │ ├── key: (1) 79 │ ├── fd: (1)-->(2) 80 │ └── ordering: +1 81 └── aggregations 82 ├── max [as=max:3, outer=(2)] 83 │ └── y:2 84 └── const-agg [as=y:2, outer=(2)] 85 └── y:2