github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/sem/tree/testdata/eval/is (about) 1 # IS expressions. 2 3 eval 4 0 IS NULL 5 ---- 6 false 7 8 eval 9 0 IS NOT NULL 10 ---- 11 true 12 13 eval 14 NULL IS NULL 15 ---- 16 true 17 18 eval 19 NULL IS NOT NULL 20 ---- 21 false 22 23 eval 24 NULL IS UNKNOWN 25 ---- 26 true 27 28 eval 29 NULL IS NOT UNKNOWN 30 ---- 31 false 32 33 eval 34 TRUE IS TRUE 35 ---- 36 true 37 38 eval 39 TRUE IS NOT TRUE 40 ---- 41 false 42 43 eval 44 FALSE IS TRUE 45 ---- 46 false 47 48 eval 49 FALSE IS NOT TRUE 50 ---- 51 true 52 53 eval 54 NULL IS TRUE 55 ---- 56 false 57 58 eval 59 NULL IS NOT TRUE 60 ---- 61 true 62 63 eval 64 TRUE IS FALSE 65 ---- 66 false 67 68 eval 69 TRUE IS NOT FALSE 70 ---- 71 true 72 73 eval 74 FALSE IS FALSE 75 ---- 76 true 77 78 eval 79 FALSE IS NOT FALSE 80 ---- 81 false 82 83 eval 84 NULL IS FALSE 85 ---- 86 false 87 88 eval 89 NULL IS NOT FALSE 90 ---- 91 true 92 93 # IS (NOT) DISTINCT FROM expressions. 94 95 eval 96 0 IS NOT DISTINCT FROM NULL 97 ---- 98 false 99 100 eval 101 0 IS DISTINCT FROM NULL 102 ---- 103 true 104 105 eval 106 NULL IS NOT DISTINCT FROM NULL 107 ---- 108 true 109 110 eval 111 NULL IS DISTINCT FROM NULL 112 ---- 113 false 114 115 eval 116 TRUE IS NOT DISTINCT FROM TRUE 117 ---- 118 true 119 120 eval 121 TRUE IS DISTINCT FROM TRUE 122 ---- 123 false 124 125 eval 126 FALSE IS NOT DISTINCT FROM TRUE 127 ---- 128 false 129 130 eval 131 FALSE IS DISTINCT FROM TRUE 132 ---- 133 true 134 135 eval 136 NULL IS NOT DISTINCT FROM TRUE 137 ---- 138 false 139 140 eval 141 NULL IS DISTINCT FROM TRUE 142 ---- 143 true 144 145 eval 146 TRUE IS NOT DISTINCT FROM FALSE 147 ---- 148 false 149 150 eval 151 TRUE IS DISTINCT FROM FALSE 152 ---- 153 true 154 155 eval 156 FALSE IS NOT DISTINCT FROM FALSE 157 ---- 158 true 159 160 eval 161 FALSE IS DISTINCT FROM FALSE 162 ---- 163 false 164 165 eval 166 NULL IS NOT DISTINCT FROM FALSE 167 ---- 168 false 169 170 eval 171 NULL IS DISTINCT FROM FALSE 172 ---- 173 true 174 175 # IS OF expressions. 176 177 eval 178 TRUE IS OF (BOOL) 179 ---- 180 true 181 182 eval 183 1 IS OF (INT) 184 ---- 185 true 186 187 eval 188 1.0 IS OF (FLOAT) 189 ---- 190 false 191 192 eval 193 1.0 IS OF (DECIMAL) 194 ---- 195 true 196 197 eval 198 1.0::float IS OF (FLOAT) 199 ---- 200 true 201 202 eval 203 1.0::decimal IS OF (DECIMAL) 204 ---- 205 true 206 207 eval 208 'hello' IS OF (STRING) 209 ---- 210 true 211 212 eval 213 'hello' IS OF (BYTES) 214 ---- 215 false 216 217 eval 218 b'hello' IS OF (STRING) 219 ---- 220 false 221 222 eval 223 b'hello' IS OF (BYTES) 224 ---- 225 true 226 227 eval 228 ARRAY['hello']::STRING[] IS OF (STRING[]) 229 ---- 230 true 231 232 eval 233 ARRAY['hello']::STRING[] IS OF (INT[]) 234 ---- 235 false 236 237 eval 238 3::INT2 IS OF (INT2) 239 ---- 240 true 241 242 # TODO(justin): these two are currently incorrect, see #31404. 243 244 eval 245 3 IS OF (INT2) 246 ---- 247 true 248 249 eval 250 3::INT4 IS OF (INT2) 251 ---- 252 true 253 254 # 255 256 eval 257 '2012-09-21'::date IS OF (DATE) 258 ---- 259 true 260 261 eval 262 '12:00:00'::time IS OF (TIME) 263 ---- 264 true 265 266 eval 267 '12:00:00'::timetz IS OF (TIMETZ) 268 ---- 269 true 270 271 eval 272 '2010-09-28 12:00:00.1'::timestamp IS OF (TIMESTAMP) 273 ---- 274 true 275 276 eval 277 '34h'::interval IS OF (INTERVAL) 278 ---- 279 true 280 281 eval 282 'P1Y2M10DT2H29M'::interval IS OF (INTERVAL) 283 ---- 284 true 285 286 eval 287 '1-2'::interval IS OF (INTERVAL) 288 ---- 289 true 290 291 eval 292 '1-2 3'::interval IS OF (INTERVAL) 293 ---- 294 true 295 296 eval 297 '2 4:09'::interval IS OF (INTERVAL) 298 ---- 299 true 300 301 eval 302 '2 4:09:57'::interval IS OF (INTERVAL) 303 ---- 304 true 305 306 eval 307 '1-2 4:09'::interval IS OF (INTERVAL) 308 ---- 309 true 310 311 eval 312 '1-2 3 4:09'::interval IS OF (INTERVAL) 313 ---- 314 true 315 316 eval 317 '1-2 4:09:55'::interval IS OF (INTERVAL) 318 ---- 319 true 320 321 eval 322 '1-2 3 4:09:55'::interval IS OF (INTERVAL) 323 ---- 324 true 325 326 eval 327 '1 hour 2 minutes'::interval IS OF (INTERVAL) 328 ---- 329 true 330 331 # #13716 332 eval 333 '1 HOUR 2 MINutES'::interval IS OF (INTERVAL) 334 ---- 335 true 336 337 eval 338 1 IS OF (STRING) 339 ---- 340 false 341 342 eval 343 1 IS OF (BOOL, INT) 344 ---- 345 true 346 347 eval 348 1 IS NOT OF (INT) 349 ---- 350 false 351 352 eval 353 1 IS NOT OF (STRING) 354 ---- 355 true 356 357 eval 358 1 IS NOT OF (BOOL, INT) 359 ---- 360 false 361 362 # Tuple with no NULLS. 363 364 eval 365 (1, 1) IS NULL 366 ---- 367 false 368 369 eval 370 (1, 1) IS NOT NULL 371 ---- 372 true 373 374 eval 375 (1, (NULL, NULL)) IS NULL 376 ---- 377 false 378 379 eval 380 (1, (NULL, NULL)) IS NOT NULL 381 ---- 382 true 383 384 eval 385 (1, 1) IS NOT DISTINCT FROM NULL 386 ---- 387 false 388 389 eval 390 (1, 1) IS DISTINCT FROM NULL 391 ---- 392 true 393 394 eval 395 (1, (NULL, NULL)) IS NOT DISTINCT FROM NULL 396 ---- 397 false 398 399 eval 400 (1, (NULL, NULL)) IS DISTINCT FROM NULL 401 ---- 402 true 403 404 eval 405 NOT ((1, 1) IS NULL) 406 ---- 407 true 408 409 eval 410 NOT ((1, 1) IS NOT NULL) 411 ---- 412 false 413 414 eval 415 NOT ((1, 1) IS NOT DISTINCT FROM NULL) 416 ---- 417 true 418 419 eval 420 NOT ((1, 1) IS DISTINCT FROM NULL) 421 ---- 422 false 423 424 # Tuple with some NULLS. 425 426 eval 427 (1, NULL) IS NULL 428 ---- 429 false 430 431 eval 432 (1, NULL) IS NOT NULL 433 ---- 434 false 435 436 eval 437 ((NULL, NULL), NULL) IS NULL 438 ---- 439 false 440 441 eval 442 ((NULL, NULL), NULL) IS NOT NULL 443 ---- 444 false 445 446 eval 447 (1, NULL) IS NOT DISTINCT FROM NULL 448 ---- 449 false 450 451 eval 452 (1, NULL) IS DISTINCT FROM NULL 453 ---- 454 true 455 456 eval 457 ((NULL, NULL), NULL) IS NOT DISTINCT FROM NULL 458 ---- 459 false 460 461 eval 462 ((NULL, NULL), NULL) IS DISTINcT FROM NULL 463 ---- 464 true 465 466 eval 467 NOT ((1, NULL) IS NULL) 468 ---- 469 true 470 471 eval 472 NOT ((1, NULL) IS NOT NULL) 473 ---- 474 true 475 476 eval 477 NOT ((1, NULL) IS NOT DISTINCT FROM NULL) 478 ---- 479 true 480 481 eval 482 NOT ((1, NULL) IS DISTINCT FROM NULL) 483 ---- 484 false 485 486 # Tuple with all NULLS. 487 488 eval 489 (NULL, NULL) IS NULL 490 ---- 491 true 492 493 eval 494 (NULL, NULL) IS NOT NULL 495 ---- 496 false 497 498 eval 499 (NULL, NULL) IS NOT DISTINCT FROM NULL 500 ---- 501 false 502 503 eval 504 (NULL, NULL) IS DISTINCT FROM NULL 505 ---- 506 true 507 508 eval 509 NOT ((NULL, NULL) IS NULL) 510 ---- 511 false 512 513 eval 514 NOT ((NULL, NULL) IS NOT NULL) 515 ---- 516 true 517 518 eval 519 NOT ((NULL, NULL) IS NOT DISTINCT FROM NULL) 520 ---- 521 true 522 523 eval 524 NOT ((NULL, NULL) IS DISTINCT FROM NULL) 525 ---- 526 false 527 528 # Empty tuples. 529 530 eval 531 () IS NULL 532 ---- 533 true 534 535 eval 536 () IS NOT NULL 537 ---- 538 true