1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
# name: test/sql/function/operator/test_conjunction.test
# description: Test conjunction statements
# group: [operator]
# create table
statement ok
CREATE TABLE a (i integer, j integer);
statement ok
INSERT INTO a VALUES (3, 4), (4, 5), (5, 6);
query II
SELECT * FROM a WHERE (i > 3 AND j < 5) OR (i > 3 AND j > 5);
----
5 6
query II
explain SELECT * FROM a WHERE (i > 3 AND j < 5) OR (i > 3 AND j > 5);
----
physical_plan <REGEX>:.*optional.*
# test boolean logic in conjunctions
query T
SELECT true AND true
----
1
query T
SELECT true AND false
----
0
query T
SELECT false AND true
----
0
query T
SELECT false AND false
----
0
query T
SELECT false AND NULL
----
0
query T
SELECT NULL AND false
----
0
query T
SELECT NULL AND true
----
NULL
query T
SELECT true AND NULL
----
NULL
query T
SELECT true OR true
----
1
query T
SELECT true OR NULL
----
1
query T
SELECT NULL OR true
----
1
query T
SELECT false OR NULL
----
NULL
query T
SELECT NULL OR false
----
NULL
query T
SELECT true OR false
----
1
query T
SELECT false OR true
----
1
query T
SELECT false OR false
----
0
# test single constant in conjunctions
query T
SELECT true AND i>3 FROM a ORDER BY i
----
0
1
1
query T
SELECT i>3 AND true FROM a ORDER BY i
----
0
1
1
query T
SELECT 2>3 AND i>3 FROM a ORDER BY i
----
0
0
0
query T
SELECT false AND i>3 FROM a ORDER BY i
----
0
0
0
query T
SELECT i>3 AND false FROM a ORDER BY i
----
0
0
0
query T
SELECT false OR i>3 FROM a ORDER BY i
----
0
1
1
query T
SELECT i>3 OR false FROM a ORDER BY i
----
0
1
1
query T
SELECT true OR i>3 FROM a ORDER BY i
----
1
1
1
query T
SELECT i>3 OR true FROM a ORDER BY i
----
1
1
1
query T
SELECT NULL OR i>3 FROM a ORDER BY i
----
NULL
1
1
query T
SELECT i>3 OR NULL FROM a ORDER BY i
----
NULL
1
1
query T
SELECT NULL AND i>3 FROM a ORDER BY i
----
0
NULL
NULL
query T
SELECT i>3 AND NULL FROM a ORDER BY i
----
0
NULL
NULL
|