github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/opt/norm/testdata/rules/max1row (about)

     1  exec-ddl
     2  CREATE TABLE a (k INT PRIMARY KEY, i INT, f FLOAT, s STRING, j JSON)
     3  ----
     4  
     5  exec-ddl
     6  CREATE TABLE t.b (x INT PRIMARY KEY, y INT)
     7  ----
     8  
     9  # --------------------------------------------------
    10  # EliminateMax1Row
    11  # --------------------------------------------------
    12  norm expect=EliminateMax1Row
    13  SELECT (SELECT i FROM a LIMIT 1) > 5 AS r
    14  ----
    15  values
    16   ├── columns: r:6
    17   ├── cardinality: [1 - 1]
    18   ├── key: ()
    19   ├── fd: ()-->(6)
    20   └── tuple
    21        └── gt
    22             ├── subquery
    23             │    └── limit
    24             │         ├── columns: i:2
    25             │         ├── cardinality: [0 - 1]
    26             │         ├── key: ()
    27             │         ├── fd: ()-->(2)
    28             │         ├── scan a
    29             │         │    ├── columns: i:2
    30             │         │    └── limit hint: 1.00
    31             │         └── 1
    32             └── 5
    33  
    34  norm expect=EliminateMax1Row
    35  SELECT (SELECT count(*) FROM a) > 100 AS r
    36  ----
    37  values
    38   ├── columns: r:7
    39   ├── cardinality: [1 - 1]
    40   ├── key: ()
    41   ├── fd: ()-->(7)
    42   └── tuple
    43        └── gt
    44             ├── subquery
    45             │    └── scalar-group-by
    46             │         ├── columns: count_rows:6!null
    47             │         ├── cardinality: [1 - 1]
    48             │         ├── key: ()
    49             │         ├── fd: ()-->(6)
    50             │         ├── scan a
    51             │         └── aggregations
    52             │              └── count-rows [as=count_rows:6]
    53             └── 100
    54  
    55  norm expect=EliminateMax1Row
    56  SELECT (SELECT i FROM a LIMIT 0) > 5 AS r
    57  ----
    58  values
    59   ├── columns: r:6
    60   ├── cardinality: [1 - 1]
    61   ├── key: ()
    62   ├── fd: ()-->(6)
    63   └── tuple
    64        └── gt
    65             ├── subquery
    66             │    └── values
    67             │         ├── columns: i:2!null
    68             │         ├── cardinality: [0 - 0]
    69             │         ├── key: ()
    70             │         └── fd: ()-->(2)
    71             └── 5
    72  
    73  # Don't remove the Max1Row operator.
    74  norm expect-not=EliminateMax1Row
    75  SELECT (SELECT i FROM a) > 5 AS r
    76  ----
    77  values
    78   ├── columns: r:6
    79   ├── cardinality: [1 - 1]
    80   ├── key: ()
    81   ├── fd: ()-->(6)
    82   └── tuple
    83        └── gt
    84             ├── subquery
    85             │    └── max1-row
    86             │         ├── columns: i:2
    87             │         ├── error: "more than one row returned by a subquery used as an expression"
    88             │         ├── cardinality: [0 - 1]
    89             │         ├── key: ()
    90             │         ├── fd: ()-->(2)
    91             │         └── scan a
    92             │              └── columns: i:2
    93             └── 5