exec-ddl
CREATE TABLE b (k INT PRIMARY KEY, i INT, f FLOAT, s STRING NOT NULL, j JSON)
----
TABLE b
 ├── k int not null
 ├── i int
 ├── f float
 ├── s string not null
 ├── j jsonb
 └── INDEX primary
      └── k int not null

# --------------------------------------------------
# SimplifyZeroCardinalityGroup
# --------------------------------------------------

opt expect=SimplifyZeroCardinalityGroup
SELECT k FROM b WHERE false
----
values
 ├── columns: k:1(int)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM (VALUES (1) OFFSET 1)
----
values
 ├── columns: column1:1(int)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM b INNER JOIN b b2 ON False
----
values
 ├── columns: k:1(int) i:2(int) f:3(float) s:4(string) j:5(jsonb) k:6(int) i:7(int) f:8(float) s:9(string) j:10(jsonb)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1-10)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM b LIMIT 0
----
values
 ├── columns: k:1(int) i:2(int) f:3(float) s:4(string) j:5(jsonb)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1-5)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM (SELECT * FROM b WHERE i=1) WHERE False
----
values
 ├── columns: k:1(int) i:2(int) f:3(float) s:4(string) j:5(jsonb)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1-5)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM (SELECT * FROM b WHERE False) WHERE s='foo'
----
values
 ├── columns: k:1(int) i:2(int) f:3(float) s:4(string) j:5(jsonb)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1-5)

opt expect=SimplifyZeroCardinalityGroup
SELECT * FROM (SELECT * FROM b WHERE False) WHERE s='foo'
----
values
 ├── columns: k:1(int) i:2(int) f:3(float) s:4(string) j:5(jsonb)
 ├── cardinality: [0 - 0]
 ├── key: ()
 └── fd: ()-->(1-5)

opt
SELECT * FROM (SELECT CASE WHEN k < 0 THEN 3 / 0 ELSE 3 END FROM b) WHERE false
----
project
 ├── columns: case:6(decimal)
 ├── cardinality: [0 - 0]
 ├── side-effects
 ├── key: ()
 ├── fd: ()-->(6)
 ├── values
 │    ├── columns: k:1(int)
 │    ├── cardinality: [0 - 0]
 │    ├── key: ()
 │    └── fd: ()-->(1)
 └── projections
      └── CASE WHEN k < 0 THEN 3 / 0 ELSE 3 END [type=decimal, outer=(1), side-effects]
