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 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
|
--echo #
--echo # Tests with $signedness type $int_type $nullness against int
--echo #
eval CREATE TABLE $table_name (colA $int_type $signedness $nullness);
eval INSERT INTO $table_name VALUES ($minint), ($minint_plus_1),
(0),(1),(3),
($maxint_minus_1), ($maxint),
($nullval);
eval ANALYZE TABLE $table_name;
eval SELECT * FROM $table_name;
eval SELECT * FROM $table_name WHERE colA < $maxint_plus_1;
eval SELECT * FROM $table_name WHERE colA <= $maxint;
eval SELECT * FROM $table_name WHERE colA > $maxint_plus_1;
eval SELECT * FROM $table_name WHERE colA >= $maxint;
eval SELECT * FROM $table_name WHERE colA > $minint_minus_1;
eval SELECT * FROM $table_name WHERE colA <= $minint_minus_1;
eval SELECT * FROM $table_name WHERE colA <= $minint;
eval SELECT * FROM $table_name WHERE colA >= $minint;
eval SELECT * FROM $table_name WHERE colA > $minint;
eval SELECT * FROM $table_name WHERE colA = $maxint_plus_1;
eval SELECT * FROM $table_name WHERE colA <> $maxint_plus_1;
eval SELECT * FROM $table_name WHERE colA = $maxint;
eval SELECT * FROM $table_name WHERE colA <=> $maxint;
eval SELECT * FROM $table_name WHERE NOT(colA <=> $maxint);
eval SELECT * FROM $table_name WHERE colA <> $maxint;
eval SELECT * FROM $table_name WHERE colA = $minint;
eval SELECT * FROM $table_name WHERE colA <=> $minint;
eval SELECT * FROM $table_name WHERE NOT(colA <=> $minint);
eval SELECT * FROM $table_name WHERE colA <> $minint;
eval SELECT * FROM $table_name WHERE colA = $minint_minus_1;
eval SELECT * FROM $table_name WHERE colA <=> $minint_minus_1;
eval SELECT * FROM $table_name WHERE NOT(colA <=> $minint_minus_1);
eval SELECT * FROM $table_name WHERE colA <> $minint_minus_1;
eval PREPARE p_less FROM 'SELECT * FROM $table_name WHERE colA < ?';
eval PREPARE p_less_eq FROM 'SELECT * FROM $table_name WHERE colA <= ?';
eval PREPARE p_greater FROM 'SELECT * FROM $table_name WHERE colA > ?';
eval PREPARE p_gret_eq FROM 'SELECT * FROM $table_name WHERE colA >= ?';
eval PREPARE p_eq FROM 'SELECT * FROM $table_name WHERE colA = ?';
eval PREPARE p_equal FROM 'SELECT * FROM $table_name WHERE colA <=> ?';
eval PREPARE p_n_equal FROM 'SELECT * FROM $table_name WHERE NOT(colA <=> ?)';
eval PREPARE p_n_eq FROM 'SELECT * FROM $table_name WHERE colA <> ?';
eval SET @maxint_plus_1=$maxint_plus_1;
eval SET @maxint=$maxint;
eval SET @minint_minus_1=$minint_minus_1;
eval SET @minint=$minint;
# Different query plans give different warnings.
--disable_warnings
eval EXECUTE p_less USING @maxint_plus_1;
eval EXECUTE p_less_eq USING @maxint;
eval EXECUTE p_greater USING @maxint_plus_1;
eval EXECUTE p_gret_eq USING @maxint;
eval EXECUTE p_greater USING @minint_minus_1;
eval EXECUTE p_less_eq USING @minint_minus_1;
eval EXECUTE p_less_eq USING @minint;
eval EXECUTE p_gret_eq USING @minint;
eval EXECUTE p_greater USING @minint;
eval EXECUTE p_eq USING @maxint_plus_1;
eval EXECUTE p_equal USING @maxint_plus_1;
eval EXECUTE p_n_eq USING @maxint_plus_1;
eval EXECUTE p_n_equal USING @maxint_plus_1;
eval EXECUTE p_eq USING @maxint;
eval EXECUTE p_equal USING @maxint;
eval EXECUTE p_n_eq USING @maxint;
eval EXECUTE p_n_equal USING @maxint;
eval EXECUTE p_eq USING @minint;
eval EXECUTE p_equal USING @minint;
eval EXECUTE p_n_eq USING @minint;
eval EXECUTE p_n_equal USING @minint;
eval EXECUTE p_eq USING @minint_minus_1;
eval EXECUTE p_equal USING @minint_minus_1;
eval EXECUTE p_n_eq USING @minint_minus_1;
eval EXECUTE p_n_equal USING @minint_minus_1;
--enable_warnings
DROP PREPARE p_less;
DROP PREPARE p_less_eq;
DROP PREPARE p_greater;
DROP PREPARE p_gret_eq;
DROP PREPARE p_equal;
DROP PREPARE p_n_eq;
DROP PREPARE p_n_equal;
eval EXPLAIN SELECT * FROM $table_name WHERE colA < $maxint_plus_1; # always true
eval EXPLAIN SELECT * FROM $table_name WHERE colA <= $maxint; # always true
eval EXPLAIN SELECT * FROM $table_name WHERE colA > $maxint_plus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA >= $maxint; # cnvt to = $maxint
eval EXPLAIN SELECT * FROM $table_name WHERE colA > $minint_minus_1; # always true
eval EXPLAIN SELECT * FROM $table_name WHERE colA <= $minint_minus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA <= $minint; # convert to = $minint
eval EXPLAIN SELECT * FROM $table_name WHERE colA >= $minint; # always true
eval EXPLAIN SELECT * FROM $table_name WHERE colA > $minint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA = $maxint_plus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA <=> $maxint_plus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA <> $maxint_plus_1; # always true
eval EXPLAIN SELECT * FROM $table_name WHERE colA = $maxint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA <=> $maxint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA <> $maxint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA = $minint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA <=> $minint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA <> $minint;
eval EXPLAIN SELECT * FROM $table_name WHERE colA = $minint_minus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA <=> $minint_minus_1; # always false
eval EXPLAIN SELECT * FROM $table_name WHERE colA <> $minint_minus_1; # always true
--echo same queries but constant first
eval SELECT * FROM $table_name WHERE $maxint_plus_1 > colA;
eval SELECT * FROM $table_name WHERE $maxint >= colA;
eval SELECT * FROM $table_name WHERE $maxint_plus_1 < colA;
eval SELECT * FROM $table_name WHERE $maxint <= colA;
eval SELECT * FROM $table_name WHERE $maxint < colA;
eval SELECT * FROM $table_name WHERE $minint_minus_1 < colA;
eval SELECT * FROM $table_name WHERE $minint_minus_1 >= colA;
eval SELECT * FROM $table_name WHERE $minint >= colA;
eval SELECT * FROM $table_name WHERE $minint <= colA;
eval SELECT * FROM $table_name WHERE $minint < colA;
eval SELECT * FROM $table_name WHERE $maxint_plus_1 = colA;
eval SELECT * FROM $table_name WHERE $maxint_plus_1 <=> colA;
eval SELECT * FROM $table_name WHERE $maxint_plus_1 <> colA;
eval SELECT * FROM $table_name WHERE $maxint = colA;
eval SELECT * FROM $table_name WHERE $maxint <=> colA;
eval SELECT * FROM $table_name WHERE $maxint <> colA;
eval SELECT * FROM $table_name WHERE $minint = colA;
eval SELECT * FROM $table_name WHERE $minint <=> colA;
eval SELECT * FROM $table_name WHERE $minint <> colA;
eval SELECT * FROM $table_name WHERE $minint_minus_1 = colA;
eval SELECT * FROM $table_name WHERE $minint_minus_1 <=> colA;
eval SELECT * FROM $table_name WHERE $minint_minus_1 <> colA;
eval PREPARE p_less FROM 'SELECT * FROM $table_name WHERE ? < colA';
eval PREPARE p_less_eq FROM 'SELECT * FROM $table_name WHERE ? <= colA';
eval PREPARE p_greater FROM 'SELECT * FROM $table_name WHERE ? > colA';
eval PREPARE p_gret_eq FROM 'SELECT * FROM $table_name WHERE ? >= colA';
eval PREPARE p_eq FROM 'SELECT * FROM $table_name WHERE ? = colA';
eval PREPARE p_equal FROM 'SELECT * FROM $table_name WHERE ? <=> colA';
eval PREPARE p_n_eq FROM 'SELECT * FROM $table_name WHERE ? <> colA';
eval PREPARE p_n_equal FROM 'SELECT * FROM $table_name WHERE NOT(? <=> colA)';
# Different query plans give different warnings.
--disable_warnings
eval EXECUTE p_greater USING @maxint_plus_1;
eval EXECUTE p_gret_eq USING @maxint;
eval EXECUTE p_less USING @maxint_plus_1;
eval EXECUTE p_less_eq USING @maxint;
eval EXECUTE p_less USING @minint_minus_1;
eval EXECUTE p_gret_eq USING @minint_minus_1;
eval EXECUTE p_gret_eq USING @minint;
eval EXECUTE p_less_eq USING @minint;
eval EXECUTE p_less USING @minint;
eval EXECUTE p_eq USING @maxint_plus_1;
eval EXECUTE p_equal USING @maxint_plus_1;
eval EXECUTE p_n_eq USING @maxint_plus_1;
eval EXECUTE p_n_equal USING @maxint_plus_1;
eval EXECUTE p_eq USING @maxint;
eval EXECUTE p_equal USING @maxint;
eval EXECUTE p_n_eq USING @maxint;
eval EXECUTE p_n_equal USING @maxint;
eval EXECUTE p_eq USING @minint;
eval EXECUTE p_equal USING @minint;
eval EXECUTE p_n_eq USING @minint;
eval EXECUTE p_n_equal USING @minint;
eval EXECUTE p_eq USING @minint_minus_1;
eval EXECUTE p_equal USING @minint_minus_1;
eval EXECUTE p_n_eq USING @minint_minus_1;
eval EXECUTE p_n_equal USING @minint_minus_1;
--enable_warnings
DROP PREPARE p_less;
DROP PREPARE p_less_eq;
DROP PREPARE p_greater;
DROP PREPARE p_gret_eq;
DROP PREPARE p_equal;
DROP PREPARE p_n_eq;
DROP PREPARE p_n_equal;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint_plus_1 > colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint >= colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint_plus_1 < colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint <= colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint < colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint_minus_1 < colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint_minus_1 >= colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint >= colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint <= colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint < colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint_plus_1 = colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint_plus_1 <=> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint_plus_1 <> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint = colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint <=> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $maxint <> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint = colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint <=> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint <> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint_minus_1 = colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint_minus_1 <=> colA;
eval EXPLAIN SELECT * FROM $table_name WHERE $minint_minus_1 <> colA;
eval DROP TABLE $table_name;
|