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