exec-ddl
CREATE TABLE abc (a INT, b INT, c INT, INDEX ab(a, b))
----

expr
(Root
  (GroupBy
    (Scan
      [
        (Table "abc")
        (Index "abc@ab")
        (Cols "a")
        (HardLimit 10)
      ]
    )
    []
    [
      (GroupingCols "a")
      (Ordering "+a")
    ]
  )
  (Presentation "a")
  (NoOrdering)
)
----
group-by (streaming)
 ├── columns: a:1(int)
 ├── grouping columns: t.public.abc.a:1(int)
 ├── internal-ordering: +1
 ├── cardinality: [0 - 10]
 ├── stats: [rows=10, distinct(1)=10, null(1)=1]
 ├── cost: 18.63
 ├── key: (1)
 ├── interesting orderings: (+1)
 └── scan t.public.abc@ab
      ├── columns: t.public.abc.a:1(int)
      ├── limit: 10
      ├── stats: [rows=10, distinct(1)=10, null(1)=10]
      ├── cost: 18.41
      ├── ordering: +1
      ├── prune: (1)
      └── interesting orderings: (+1)

expr
(Root
  (GroupBy
    (Scan
      [
        (Table "abc")
        (Index "abc@ab")
        (Cols "a")
        (HardLimit 10)
      ]
    )
    []
    [
      (GroupingCols "a")
    ]
  )
  (Presentation "a")
  (NoOrdering)
)
----
group-by (hash)
 ├── columns: a:1(int)
 ├── grouping columns: t.public.abc.a:1(int)
 ├── cardinality: [0 - 10]
 ├── stats: [rows=10, distinct(1)=10, null(1)=1]
 ├── cost: 18.73
 ├── key: (1)
 ├── interesting orderings: (+1)
 └── scan t.public.abc@ab
      ├── columns: t.public.abc.a:1(int)
      ├── limit: 10
      ├── stats: [rows=10, distinct(1)=10, null(1)=10]
      ├── cost: 18.41
      ├── prune: (1)
      └── interesting orderings: (+1)
