github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/opt/memo/testdata/stats/values (about) 1 norm 2 SELECT * FROM (VALUES (1, 2), (1, 2), (1, 3), (2, 3)) AS q(x, y) WHERE x = 5 AND y = 3 3 ---- 4 select 5 ├── columns: x:1(int!null) y:2(int!null) 6 ├── cardinality: [0 - 4] 7 ├── stats: [rows=1.3, distinct(1)=1, null(1)=0, distinct(2)=1, null(2)=0, distinct(1,2)=1, null(1,2)=0] 8 ├── fd: ()-->(1,2) 9 ├── values 10 │ ├── columns: column1:1(int!null) column2:2(int!null) 11 │ ├── cardinality: [4 - 4] 12 │ ├── stats: [rows=4, distinct(1)=2, null(1)=0, distinct(2)=2, null(2)=0, distinct(1,2)=3, null(1,2)=0] 13 │ ├── (1, 2) [type=tuple{int, int}] 14 │ ├── (1, 2) [type=tuple{int, int}] 15 │ ├── (1, 3) [type=tuple{int, int}] 16 │ └── (2, 3) [type=tuple{int, int}] 17 └── filters 18 ├── column1:1 = 5 [type=bool, outer=(1), constraints=(/1: [/5 - /5]; tight), fd=()-->(1)] 19 └── column2:2 = 3 [type=bool, outer=(2), constraints=(/2: [/3 - /3]; tight), fd=()-->(2)] 20 21 norm 22 SELECT x, y 23 FROM (VALUES (1, 2), (1, 2), (1, 3), (2, 3), (unique_rowid(), 4)) AS q(x, y) 24 GROUP BY x, y 25 ---- 26 distinct-on 27 ├── columns: x:1(int) y:2(int!null) 28 ├── grouping columns: column1:1(int) column2:2(int!null) 29 ├── cardinality: [1 - 5] 30 ├── volatile, side-effects 31 ├── stats: [rows=4, distinct(1,2)=4, null(1,2)=0] 32 ├── key: (1,2) 33 └── values 34 ├── columns: column1:1(int) column2:2(int!null) 35 ├── cardinality: [5 - 5] 36 ├── volatile, side-effects 37 ├── stats: [rows=5, distinct(1,2)=4, null(1,2)=0] 38 ├── (1, 2) [type=tuple{int, int}] 39 ├── (1, 2) [type=tuple{int, int}] 40 ├── (1, 3) [type=tuple{int, int}] 41 ├── (2, 3) [type=tuple{int, int}] 42 └── (unique_rowid(), 4) [type=tuple{int, int}] 43 44 norm 45 SELECT * FROM (VALUES (1), (1), (1), (2)) 46 ---- 47 values 48 ├── columns: column1:1(int!null) 49 ├── cardinality: [4 - 4] 50 ├── stats: [rows=4] 51 ├── (1,) [type=tuple{int}] 52 ├── (1,) [type=tuple{int}] 53 ├── (1,) [type=tuple{int}] 54 └── (2,) [type=tuple{int}] 55 56 norm 57 SELECT * FROM (VALUES (1), (1), (1), (2)) AS q(x) WHERE x = 1 58 ---- 59 select 60 ├── columns: x:1(int!null) 61 ├── cardinality: [0 - 4] 62 ├── stats: [rows=2, distinct(1)=1, null(1)=0] 63 ├── fd: ()-->(1) 64 ├── values 65 │ ├── columns: column1:1(int!null) 66 │ ├── cardinality: [4 - 4] 67 │ ├── stats: [rows=4, distinct(1)=2, null(1)=0] 68 │ ├── (1,) [type=tuple{int}] 69 │ ├── (1,) [type=tuple{int}] 70 │ ├── (1,) [type=tuple{int}] 71 │ └── (2,) [type=tuple{int}] 72 └── filters 73 └── column1:1 = 1 [type=bool, outer=(1), constraints=(/1: [/1 - /1]; tight), fd=()-->(1)] 74 75 norm colstat=1 76 SELECT * FROM (VALUES (1), (NULL), (NULL), (2)) 77 ---- 78 values 79 ├── columns: column1:1(int) 80 ├── cardinality: [4 - 4] 81 ├── stats: [rows=4, distinct(1)=3, null(1)=2] 82 ├── (1,) [type=tuple{int}] 83 ├── (NULL,) [type=tuple{int}] 84 ├── (NULL,) [type=tuple{int}] 85 └── (2,) [type=tuple{int}] 86 87 norm colstat=1 88 SELECT * FROM (VALUES (NULL), (NULL), (NULL), (NULL)) 89 ---- 90 values 91 ├── columns: column1:1(unknown) 92 ├── cardinality: [4 - 4] 93 ├── stats: [rows=4, distinct(1)=1, null(1)=4] 94 ├── (NULL,) [type=tuple{unknown}] 95 ├── (NULL,) [type=tuple{unknown}] 96 ├── (NULL,) [type=tuple{unknown}] 97 └── (NULL,) [type=tuple{unknown}] 98 99 norm colstat=(1,2) 100 SELECT * FROM (VALUES (NULL,1), (1,NULL), (NULL,NULL), (1,2)) 101 ---- 102 values 103 ├── columns: column1:1(int) column2:2(int) 104 ├── cardinality: [4 - 4] 105 ├── stats: [rows=4, distinct(1,2)=4, null(1,2)=1] 106 ├── (NULL, 1) [type=tuple{int, int}] 107 ├── (1, NULL) [type=tuple{int, int}] 108 ├── (NULL, NULL) [type=tuple{int, int}] 109 └── (1, 2) [type=tuple{int, int}] 110 111 # Regression test for #35715. 112 norm colstat=1 colstat=2 113 SELECT * FROM (VALUES (NULL, 1)) 114 ---- 115 values 116 ├── columns: column1:1(unknown) column2:2(int!null) 117 ├── cardinality: [1 - 1] 118 ├── stats: [rows=1, distinct(1)=1, null(1)=1, distinct(2)=1, null(2)=0] 119 ├── key: () 120 ├── fd: ()-->(1,2) 121 └── (NULL, 1) [type=tuple{unknown, int}] 122 123 norm colstat=1 colstat=2 colstat=(1,2) 124 SELECT * FROM (VALUES (NULL, 2), (2, NULL)) 125 ---- 126 values 127 ├── columns: column1:1(int) column2:2(int) 128 ├── cardinality: [2 - 2] 129 ├── stats: [rows=2, distinct(1)=2, null(1)=1, distinct(2)=2, null(2)=1, distinct(1,2)=2, null(1,2)=0] 130 ├── (NULL, 2) [type=tuple{int, int}] 131 └── (2, NULL) [type=tuple{int, int}]