~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/parser_precedence.result

  • Committer: Brian Aker
  • Date: 2008-11-04 15:39:09 UTC
  • mfrom: (575.1.2 devel)
  • Revision ID: brian@tangent.org-20081104153909-c72hn65udxs1ccal
Merge of Monty's work

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
drop table if exists t1_30237_bool;
2
 
create table t1_30237_bool(A boolean, B boolean, C boolean);
 
2
create table t1_30237_bool(A char, B char, C char);
3
3
insert into t1_30237_bool values
4
4
(FALSE, FALSE, FALSE),
5
5
(FALSE, FALSE, NULL),
32
32
select A, B, A OR B, A XOR B, A AND B
33
33
from t1_30237_bool where C is null order by A, B;
34
34
A       B       A OR B  A XOR B A AND B
 
35
 
35
36
NULL    NULL    NULL    NULL    NULL
36
37
NULL    0       NULL    NULL    0
37
38
NULL    1       1       NULL    NULL
45
46
select A, B, C, (A OR B) OR C, A OR (B OR C), A OR B OR C
46
47
from t1_30237_bool order by A, B, C;
47
48
A       B       C       (A OR B) OR C   A OR (B OR C)   A OR B OR C
 
49
 
48
50
NULL    NULL    NULL    NULL    NULL    NULL
49
51
NULL    NULL    0       NULL    NULL    NULL
50
52
NULL    NULL    1       1       1       1
80
82
select A, B, C, (A XOR B) XOR C, A XOR (B XOR C), A XOR B XOR C
81
83
from t1_30237_bool order by A, B, C;
82
84
A       B       C       (A XOR B) XOR C A XOR (B XOR C) A XOR B XOR C
 
85
 
83
86
NULL    NULL    NULL    NULL    NULL    NULL
84
87
NULL    NULL    0       NULL    NULL    NULL
85
88
NULL    NULL    1       NULL    NULL    NULL
115
118
select A, B, C, (A AND B) AND C, A AND (B AND C), A AND B AND C
116
119
from t1_30237_bool order by A, B, C;
117
120
A       B       C       (A AND B) AND C A AND (B AND C) A AND B AND C
 
121
 
118
122
NULL    NULL    NULL    NULL    NULL    NULL
119
123
NULL    NULL    0       0       0       0
120
124
NULL    NULL    1       NULL    NULL    NULL
150
154
select A, B, C, (A OR B) AND C, A OR (B AND C), A OR B AND C
151
155
from t1_30237_bool order by A, B, C;
152
156
A       B       C       (A OR B) AND C  A OR (B AND C)  A OR B AND C
 
157
 
153
158
NULL    NULL    NULL    NULL    NULL    NULL
154
159
NULL    NULL    0       0       NULL    NULL
155
160
NULL    NULL    1       NULL    NULL    NULL
184
189
select A, B, C, (A AND B) OR C, A AND (B OR C), A AND B OR C
185
190
from t1_30237_bool order by A, B, C;
186
191
A       B       C       (A AND B) OR C  A AND (B OR C)  A AND B OR C
 
192
 
187
193
NULL    NULL    NULL    NULL    NULL    NULL
188
194
NULL    NULL    0       NULL    NULL    NULL
189
195
NULL    NULL    1       1       NULL    1
219
225
select A, B, C, (A XOR B) AND C, A XOR (B AND C), A XOR B AND C
220
226
from t1_30237_bool order by A, B, C;
221
227
A       B       C       (A XOR B) AND C A XOR (B AND C) A XOR B AND C
 
228
 
222
229
NULL    NULL    NULL    NULL    NULL    NULL
223
230
NULL    NULL    0       0       NULL    NULL
224
231
NULL    NULL    1       NULL    NULL    NULL
253
260
select A, B, C, (A AND B) XOR C, A AND (B XOR C), A AND B XOR C
254
261
from t1_30237_bool order by A, B, C;
255
262
A       B       C       (A AND B) XOR C A AND (B XOR C) A AND B XOR C
 
263
 
256
264
NULL    NULL    NULL    NULL    NULL    NULL
257
265
NULL    NULL    0       NULL    NULL    NULL
258
266
NULL    NULL    1       NULL    NULL    NULL
288
296
select A, B, C, (A XOR B) OR C, A XOR (B OR C), A XOR B OR C
289
297
from t1_30237_bool order by A, B, C;
290
298
A       B       C       (A XOR B) OR C  A XOR (B OR C)  A XOR B OR C
 
299
 
291
300
NULL    NULL    NULL    NULL    NULL    NULL
292
301
NULL    NULL    0       NULL    NULL    NULL
293
302
NULL    NULL    1       1       NULL    1
322
331
select A, B, C, (A OR B) XOR C, A OR (B XOR C), A OR B XOR C
323
332
from t1_30237_bool order by A, B, C;
324
333
A       B       C       (A OR B) XOR C  A OR (B XOR C)  A OR B XOR C
 
334
 
325
335
NULL    NULL    NULL    NULL    NULL    NULL
326
336
NULL    NULL    0       NULL    NULL    NULL
327
337
NULL    NULL    1       NULL    NULL    NULL
440
450
select 1 >= 2 >= 3, (1 >= 2) >= 3, 1 >= (2 >= 3);
441
451
1 >= 2 >= 3     (1 >= 2) >= 3   1 >= (2 >= 3)
442
452
0       0       1
443
 
Testing that | is associative
444
 
select 0xF0 | 0x0F | 0x55, (0xF0 | 0x0F) | 0x55, 0xF0 | (0x0F | 0x55);
445
 
0xF0 | 0x0F | 0x55      (0xF0 | 0x0F) | 0x55    0xF0 | (0x0F | 0x55)
446
 
255     255     255
447
 
Testing that & is associative
448
 
select 0xF5 & 0x5F & 0x55, (0xF5 & 0x5F) & 0x55, 0xF5 & (0x5F & 0x55);
449
 
0xF5 & 0x5F & 0x55      (0xF5 & 0x5F) & 0x55    0xF5 & (0x5F & 0x55)
450
 
85      85      85
451
 
Testing that << is left associative
452
 
select 4 << 3 << 2, (4 << 3) << 2, 4 << (3 << 2);
453
 
4 << 3 << 2     (4 << 3) << 2   4 << (3 << 2)
454
 
128     128     16384
455
 
Testing that >> is left associative
456
 
select 256 >> 3 >> 2, (256 >> 3) >> 2, 256 >> (3 >> 2);
457
 
256 >> 3 >> 2   (256 >> 3) >> 2 256 >> (3 >> 2)
458
 
8       8       256
459
 
Testing that & has precedence over |
460
 
select 0xF0 & 0x0F | 0x55, (0xF0 & 0x0F) | 0x55, 0xF0 & (0x0F | 0x55);
461
 
0xF0 & 0x0F | 0x55      (0xF0 & 0x0F) | 0x55    0xF0 & (0x0F | 0x55)
462
 
85      85      80
463
 
select 0x55 | 0xF0 & 0x0F, (0x55 | 0xF0) & 0x0F, 0x55 | (0xF0 & 0x0F);
464
 
0x55 | 0xF0 & 0x0F      (0x55 | 0xF0) & 0x0F    0x55 | (0xF0 & 0x0F)
465
 
85      5       85
466
 
Testing that << has precedence over |
467
 
select 0x0F << 4 | 0x0F, (0x0F << 4) | 0x0F, 0x0F << (4 | 0x0F);
468
 
0x0F << 4 | 0x0F        (0x0F << 4) | 0x0F      0x0F << (4 | 0x0F)
469
 
255     255     491520
470
 
select 0x0F | 0x0F << 4, (0x0F | 0x0F) << 4, 0x0F | (0x0F << 4);
471
 
0x0F | 0x0F << 4        (0x0F | 0x0F) << 4      0x0F | (0x0F << 4)
472
 
255     240     255
473
 
Testing that >> has precedence over |
474
 
select 0xF0 >> 4 | 0xFF, (0xF0 >> 4) | 0xFF, 0xF0 >> (4 | 0xFF);
475
 
0xF0 >> 4 | 0xFF        (0xF0 >> 4) | 0xFF      0xF0 >> (4 | 0xFF)
476
 
255     255     0
477
 
select 0xFF | 0xF0 >> 4, (0xFF | 0xF0) >> 4, 0xFF | (0xF0 >> 4);
478
 
0xFF | 0xF0 >> 4        (0xFF | 0xF0) >> 4      0xFF | (0xF0 >> 4)
479
 
255     15      255
480
 
Testing that << has precedence over &
481
 
select 0x0F << 4 & 0xF0, (0x0F << 4) & 0xF0, 0x0F << (4 & 0xF0);
482
 
0x0F << 4 & 0xF0        (0x0F << 4) & 0xF0      0x0F << (4 & 0xF0)
483
 
240     240     15
484
 
select 0xF0 & 0x0F << 4, (0xF0 & 0x0F) << 4, 0xF0 & (0x0F << 4);
485
 
0xF0 & 0x0F << 4        (0xF0 & 0x0F) << 4      0xF0 & (0x0F << 4)
486
 
240     0       240
487
 
Testing that >> has precedence over &
488
 
select 0xF0 >> 4 & 0x55, (0xF0 >> 4) & 0x55, 0xF0 >> (4 & 0x55);
489
 
0xF0 >> 4 & 0x55        (0xF0 >> 4) & 0x55      0xF0 >> (4 & 0x55)
490
 
5       5       15
491
 
select 0x0F & 0xF0 >> 4, (0x0F & 0xF0) >> 4, 0x0F & (0xF0 >> 4);
492
 
0x0F & 0xF0 >> 4        (0x0F & 0xF0) >> 4      0x0F & (0xF0 >> 4)
493
 
15      0       15
494
 
Testing that >> and << have the same precedence
495
 
select 0xFF >> 4 << 2, (0xFF >> 4) << 2, 0xFF >> (4 << 2);
496
 
0xFF >> 4 << 2  (0xFF >> 4) << 2        0xFF >> (4 << 2)
497
 
60      60      0
498
 
select 0x0F << 4 >> 2, (0x0F << 4) >> 2, 0x0F << (4 >> 2);
499
 
0x0F << 4 >> 2  (0x0F << 4) >> 2        0x0F << (4 >> 2)
500
 
60      60      30
501
453
Testing that binary + is associative
502
454
select 1 + 2 + 3, (1 + 2) + 3, 1 + (2 + 3);
503
455
1 + 2 + 3       (1 + 2) + 3     1 + (2 + 3)
513
465
select 1 - 2 + 3, (1 - 2) + 3, 1 - (2 + 3);
514
466
1 - 2 + 3       (1 - 2) + 3     1 - (2 + 3)
515
467
2       2       -4
516
 
Testing that binary + has precedence over |
517
 
select 0xF0 + 0x0F | 0x55, (0xF0 + 0x0F) | 0x55, 0xF0 + (0x0F | 0x55);
518
 
0xF0 + 0x0F | 0x55      (0xF0 + 0x0F) | 0x55    0xF0 + (0x0F | 0x55)
519
 
255     255     335
520
 
select 0x55 | 0xF0 + 0x0F, (0x55 | 0xF0) + 0x0F, 0x55 | (0xF0 + 0x0F);
521
 
0x55 | 0xF0 + 0x0F      (0x55 | 0xF0) + 0x0F    0x55 | (0xF0 + 0x0F)
522
 
255     260     255
523
 
Testing that binary + has precedence over &
524
 
select 0xF0 + 0x0F & 0x55, (0xF0 + 0x0F) & 0x55, 0xF0 + (0x0F & 0x55);
525
 
0xF0 + 0x0F & 0x55      (0xF0 + 0x0F) & 0x55    0xF0 + (0x0F & 0x55)
526
 
85      85      245
527
 
select 0x55 & 0xF0 + 0x0F, (0x55 & 0xF0) + 0x0F, 0x55 & (0xF0 + 0x0F);
528
 
0x55 & 0xF0 + 0x0F      (0x55 & 0xF0) + 0x0F    0x55 & (0xF0 + 0x0F)
529
 
85      95      85
530
 
Testing that binary + has precedence over <<
531
 
select 2 + 3 << 4, (2 + 3) << 4, 2 + (3 << 4);
532
 
2 + 3 << 4      (2 + 3) << 4    2 + (3 << 4)
533
 
80      80      50
534
 
select 3 << 4 + 2, (3 << 4) + 2, 3 << (4 + 2);
535
 
3 << 4 + 2      (3 << 4) + 2    3 << (4 + 2)
536
 
192     50      192
537
 
Testing that binary + has precedence over >>
538
 
select 4 + 3 >> 2, (4 + 3) >> 2, 4 + (3 >> 2);
539
 
4 + 3 >> 2      (4 + 3) >> 2    4 + (3 >> 2)
540
 
1       1       4
541
 
select 3 >> 2 + 1, (3 >> 2) + 1, 3 >> (2 + 1);
542
 
3 >> 2 + 1      (3 >> 2) + 1    3 >> (2 + 1)
543
 
0       1       0
544
 
Testing that binary - has precedence over |
545
 
select 0xFF - 0x0F | 0x55, (0xFF - 0x0F) | 0x55, 0xFF - (0x0F | 0x55);
546
 
0xFF - 0x0F | 0x55      (0xFF - 0x0F) | 0x55    0xFF - (0x0F | 0x55)
547
 
245     245     160
548
 
select 0x55 | 0xFF - 0xF0, (0x55 | 0xFF) - 0xF0, 0x55 | (0xFF - 0xF0);
549
 
0x55 | 0xFF - 0xF0      (0x55 | 0xFF) - 0xF0    0x55 | (0xFF - 0xF0)
550
 
95      15      95
551
 
Testing that binary - has precedence over &
552
 
select 0xFF - 0xF0 & 0x55, (0xFF - 0xF0) & 0x55, 0xFF - (0xF0 & 0x55);
553
 
0xFF - 0xF0 & 0x55      (0xFF - 0xF0) & 0x55    0xFF - (0xF0 & 0x55)
554
 
5       5       175
555
 
select 0x55 & 0xFF - 0xF0, (0x55 & 0xFF) - 0xF0, 0x55 & (0xFF - 0xF0);
556
 
0x55 & 0xFF - 0xF0      (0x55 & 0xFF) - 0xF0    0x55 & (0xFF - 0xF0)
557
 
5       -155    5
558
 
Testing that binary - has precedence over <<
559
 
select 16 - 3 << 2, (16 - 3) << 2, 16 - (3 << 2);
560
 
16 - 3 << 2     (16 - 3) << 2   16 - (3 << 2)
561
 
52      52      4
562
 
select 4 << 3 - 2, (4 << 3) - 2, 4 << (3 - 2);
563
 
4 << 3 - 2      (4 << 3) - 2    4 << (3 - 2)
564
 
8       30      8
565
 
Testing that binary - has precedence over >>
566
 
select 16 - 3 >> 2, (16 - 3) >> 2, 16 - (3 >> 2);
567
 
16 - 3 >> 2     (16 - 3) >> 2   16 - (3 >> 2)
568
 
3       3       16
569
 
select 16 >> 3 - 2, (16 >> 3) - 2, 16 >> (3 - 2);
570
 
16 >> 3 - 2     (16 >> 3) - 2   16 >> (3 - 2)
571
 
8       0       8
572
468
Testing that * is associative
573
469
select 2 * 3 * 4, (2 * 3) * 4, 2 * (3 * 4);
574
470
2 * 3 * 4       (2 * 3) * 4     2 * (3 * 4)
575
471
24      24      24
576
 
Testing that * has precedence over |
577
 
select 2 * 0x40 | 0x0F, (2 * 0x40) | 0x0F, 2 * (0x40 | 0x0F);
578
 
2 * 0x40 | 0x0F (2 * 0x40) | 0x0F       2 * (0x40 | 0x0F)
579
 
143     143     158
580
 
select 0x0F | 2 * 0x40, (0x0F | 2) * 0x40, 0x0F | (2 * 0x40);
581
 
0x0F | 2 * 0x40 (0x0F | 2) * 0x40       0x0F | (2 * 0x40)
582
 
143     960     143
583
 
Testing that * has precedence over &
584
 
select 2 * 0x40 & 0x55, (2 * 0x40) & 0x55, 2 * (0x40 & 0x55);
585
 
2 * 0x40 & 0x55 (2 * 0x40) & 0x55       2 * (0x40 & 0x55)
586
 
0       0       128
587
 
select 0xF0 & 2 * 0x40, (0xF0 & 2) * 0x40, 0xF0 & (2 * 0x40);
588
 
0xF0 & 2 * 0x40 (0xF0 & 2) * 0x40       0xF0 & (2 * 0x40)
589
 
128     0       128
590
 
Testing that * has precedence over << 
591
 
select 5 * 3 << 4, (5 * 3) << 4, 5 * (3 << 4);
592
 
5 * 3 << 4      (5 * 3) << 4    5 * (3 << 4)
593
 
240     240     240
594
 
select 2 << 3 * 4, (2 << 3) * 4, 2 << (3 * 4);
595
 
2 << 3 * 4      (2 << 3) * 4    2 << (3 * 4)
596
 
8192    64      8192
597
 
Testing that * has precedence over >>
598
 
select 3 * 4 >> 2, (3 * 4) >> 2, 3 * (4 >> 2);
599
 
3 * 4 >> 2      (3 * 4) >> 2    3 * (4 >> 2)
600
 
3       3       3
601
 
select 4 >> 2 * 3, (4 >> 2) * 3, 4 >> (2 * 3);
602
 
4 >> 2 * 3      (4 >> 2) * 3    4 >> (2 * 3)
603
 
0       3       0
604
472
Testing that * has precedence over binary +
605
473
select 2 * 3 + 4, (2 * 3) + 4, 2 * (3 + 4);
606
474
2 * 3 + 4       (2 * 3) + 4     2 * (3 + 4)
619
487
select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3);
620
488
15 / 5 / 3      (15 / 5) / 3    15 / (5 / 3)
621
489
1.00000000      1.00000000      9.0000
622
 
Testing that / has precedence over |
623
 
select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2);
624
 
105 / 5 | 2     (105 / 5) | 2   105 / (5 | 2)
625
 
23      23      15.0000
626
 
select 105 | 2 / 5, (105 | 2) / 5, 105 | (2 / 5);
627
 
105 | 2 / 5     (105 | 2) / 5   105 | (2 / 5)
628
 
105     21.4000 105
629
 
Testing that / has precedence over &
630
 
select 105 / 5 & 0x0F, (105 / 5) & 0x0F, 105 / (5 & 0x0F);
631
 
105 / 5 & 0x0F  (105 / 5) & 0x0F        105 / (5 & 0x0F)
632
 
5       5       21.0000
633
 
select 0x0F & 105 / 5, (0x0F & 105) / 5, 0x0F & (105 / 5);
634
 
0x0F & 105 / 5  (0x0F & 105) / 5        0x0F & (105 / 5)
635
 
5       1.8000  5
636
 
Testing that / has precedence over << 
637
 
select 0x80 / 4 << 2, (0x80 / 4) << 2, 0x80 / (4 << 2);
638
 
0x80 / 4 << 2   (0x80 / 4) << 2 0x80 / (4 << 2)
639
 
128     128     8.0000
640
 
select 0x80 << 4 / 2, (0x80 << 4) / 2, 0x80 << (4 / 2);
641
 
0x80 << 4 / 2   (0x80 << 4) / 2 0x80 << (4 / 2)
642
 
512     1024.0000       512
643
 
Testing that / has precedence over >>
644
 
select 0x80 / 4 >> 2, (0x80 / 4) >> 2, 0x80 / (4 >> 2);
645
 
0x80 / 4 >> 2   (0x80 / 4) >> 2 0x80 / (4 >> 2)
646
 
8       8       128.0000
647
 
select 0x80 >> 4 / 2, (0x80 >> 4) / 2, 0x80 >> (4 / 2);
648
 
0x80 >> 4 / 2   (0x80 >> 4) / 2 0x80 >> (4 / 2)
649
 
32      4.0000  32
650
490
Testing that / has precedence over binary +
651
491
select 0x80 / 2 + 2, (0x80 / 2) + 2, 0x80 / (2 + 2);
652
492
0x80 / 2 + 2    (0x80 / 2) + 2  0x80 / (2 + 2)
661
501
select 0x80 - 4 / 2, (0x80 - 4) / 2, 0x80 - (4 / 2);
662
502
0x80 - 4 / 2    (0x80 - 4) / 2  0x80 - (4 / 2)
663
503
126.0000        62.0000 126.0000
664
 
Testing that ^ is associative
665
 
select 0xFF ^ 0xF0 ^ 0x0F, (0xFF ^ 0xF0) ^ 0x0F, 0xFF ^ (0xF0 ^ 0x0F);
666
 
0xFF ^ 0xF0 ^ 0x0F      (0xFF ^ 0xF0) ^ 0x0F    0xFF ^ (0xF0 ^ 0x0F)
667
 
0       0       0
668
 
select 0xFF ^ 0xF0 ^ 0x55, (0xFF ^ 0xF0) ^ 0x55, 0xFF ^ (0xF0 ^ 0x55);
669
 
0xFF ^ 0xF0 ^ 0x55      (0xFF ^ 0xF0) ^ 0x55    0xFF ^ (0xF0 ^ 0x55)
670
 
90      90      90
671
 
Testing that ^ has precedence over |
672
 
select 0xFF ^ 0xF0 | 0x0F, (0xFF ^ 0xF0) | 0x0F, 0xFF ^ (0xF0 | 0x0F);
673
 
0xFF ^ 0xF0 | 0x0F      (0xFF ^ 0xF0) | 0x0F    0xFF ^ (0xF0 | 0x0F)
674
 
15      15      0
675
 
select 0xF0 | 0xFF ^ 0xF0, (0xF0 | 0xFF) ^ 0xF0, 0xF0 | (0xFF ^ 0xF0);
676
 
0xF0 | 0xFF ^ 0xF0      (0xF0 | 0xFF) ^ 0xF0    0xF0 | (0xFF ^ 0xF0)
677
 
255     15      255
678
 
Testing that ^ has precedence over &
679
 
select 0xFF ^ 0xF0 & 0x0F, (0xFF ^ 0xF0) & 0x0F, 0xFF ^ (0xF0 & 0x0F);
680
 
0xFF ^ 0xF0 & 0x0F      (0xFF ^ 0xF0) & 0x0F    0xFF ^ (0xF0 & 0x0F)
681
 
15      15      255
682
 
select 0x0F & 0xFF ^ 0xF0, (0x0F & 0xFF) ^ 0xF0, 0x0F & (0xFF ^ 0xF0);
683
 
0x0F & 0xFF ^ 0xF0      (0x0F & 0xFF) ^ 0xF0    0x0F & (0xFF ^ 0xF0)
684
 
15      255     15
685
 
Testing that ^ has precedence over <<
686
 
select 0xFF ^ 0xF0 << 2, (0xFF ^ 0xF0) << 2, 0xFF ^ (0xF0 << 2);
687
 
0xFF ^ 0xF0 << 2        (0xFF ^ 0xF0) << 2      0xFF ^ (0xF0 << 2)
688
 
60      60      831
689
 
select 0x0F << 2 ^ 0xFF, (0x0F << 2) ^ 0xFF, 0x0F << (2 ^ 0xFF);
690
 
0x0F << 2 ^ 0xFF        (0x0F << 2) ^ 0xFF      0x0F << (2 ^ 0xFF)
691
 
0       195     0
692
 
Testing that ^ has precedence over >>
693
 
select 0xFF ^ 0xF0 >> 2, (0xFF ^ 0xF0) >> 2, 0xFF ^ (0xF0 >> 2);
694
 
0xFF ^ 0xF0 >> 2        (0xFF ^ 0xF0) >> 2      0xFF ^ (0xF0 >> 2)
695
 
3       3       195
696
 
select 0xFF >> 2 ^ 0xF0, (0xFF >> 2) ^ 0xF0, 0xFF >> (2 ^ 0xF0);
697
 
0xFF >> 2 ^ 0xF0        (0xFF >> 2) ^ 0xF0      0xFF >> (2 ^ 0xF0)
698
 
0       207     0
699
 
Testing that ^ has precedence over binary +
700
 
select 0xFF ^ 0xF0 + 0x0F, (0xFF ^ 0xF0) + 0x0F, 0xFF ^ (0xF0 + 0x0F);
701
 
0xFF ^ 0xF0 + 0x0F      (0xFF ^ 0xF0) + 0x0F    0xFF ^ (0xF0 + 0x0F)
702
 
30      30      0
703
 
select 0x0F + 0xFF ^ 0xF0, (0x0F + 0xFF) ^ 0xF0, 0x0F + (0xFF ^ 0xF0);
704
 
0x0F + 0xFF ^ 0xF0      (0x0F + 0xFF) ^ 0xF0    0x0F + (0xFF ^ 0xF0)
705
 
30      510     30
706
 
Testing that ^ has precedence over binary -
707
 
select 0xFF ^ 0xF0 - 1, (0xFF ^ 0xF0) - 1, 0xFF ^ (0xF0 - 1);
708
 
0xFF ^ 0xF0 - 1 (0xFF ^ 0xF0) - 1       0xFF ^ (0xF0 - 1)
709
 
14      14      16
710
 
select 0x55 - 0x0F ^ 0x55, (0x55 - 0x0F) ^ 0x55, 0x55 - (0x0F ^ 0x55);
711
 
0x55 - 0x0F ^ 0x55      (0x55 - 0x0F) ^ 0x55    0x55 - (0x0F ^ 0x55)
712
 
-5      19      -5
713
 
Testing that ^ has precedence over *
714
 
select 0xFF ^ 0xF0 * 2, (0xFF ^ 0xF0) * 2, 0xFF ^ (0xF0 * 2);
715
 
0xFF ^ 0xF0 * 2 (0xFF ^ 0xF0) * 2       0xFF ^ (0xF0 * 2)
716
 
30      30      287
717
 
select 2 * 0xFF ^ 0xF0, (2 * 0xFF) ^ 0xF0, 2 * (0xFF ^ 0xF0);
718
 
2 * 0xFF ^ 0xF0 (2 * 0xFF) ^ 0xF0       2 * (0xFF ^ 0xF0)
719
 
30      270     30
720
 
Testing that ^ has precedence over /
721
 
select 0xFF ^ 0xF0 / 2, (0xFF ^ 0xF0) / 2, 0xFF ^ (0xF0 / 2);
722
 
0xFF ^ 0xF0 / 2 (0xFF ^ 0xF0) / 2       0xFF ^ (0xF0 / 2)
723
 
7.5000  7.5000  135
724
 
select 0xF2 / 2 ^ 0xF0, (0xF2 / 2) ^ 0xF0, 0xF2 / (2 ^ 0xF0);
725
 
0xF2 / 2 ^ 0xF0 (0xF2 / 2) ^ 0xF0       0xF2 / (2 ^ 0xF0)
726
 
1.0000  137     1.0000
727
 
Testing that ^ has precedence over %
728
 
select 0xFF ^ 0xF0 % 0x20, (0xFF ^ 0xF0) % 0x20, 0xFF ^ (0xF0 % 0x20);
729
 
0xFF ^ 0xF0 % 0x20      (0xFF ^ 0xF0) % 0x20    0xFF ^ (0xF0 % 0x20)
730
 
15      15      239
731
 
select 0xFF % 0x20 ^ 0xF0, (0xFF % 0x20) ^ 0xF0, 0xFF % (0x20 ^ 0xF0);
732
 
0xFF % 0x20 ^ 0xF0      (0xFF % 0x20) ^ 0xF0    0xFF % (0x20 ^ 0xF0)
733
 
47      239     47
734
 
Testing that ^ has precedence over DIV
735
 
select 0xFF ^ 0xF0 DIV 2, (0xFF ^ 0xF0) DIV 2, 0xFF ^ (0xF0 DIV 2);
736
 
0xFF ^ 0xF0 DIV 2       (0xFF ^ 0xF0) DIV 2     0xFF ^ (0xF0 DIV 2)
737
 
7       7       135
738
 
select 0xF2 DIV 2 ^ 0xF0, (0xF2 DIV 2) ^ 0xF0, 0xF2 DIV (2 ^ 0xF0);
739
 
0xF2 DIV 2 ^ 0xF0       (0xF2 DIV 2) ^ 0xF0     0xF2 DIV (2 ^ 0xF0)
740
 
1       137     1
741
 
Testing that ^ has precedence over MOD
742
 
select 0xFF ^ 0xF0 MOD 0x20, (0xFF ^ 0xF0) MOD 0x20, 0xFF ^ (0xF0 MOD 0x20);
743
 
0xFF ^ 0xF0 MOD 0x20    (0xFF ^ 0xF0) MOD 0x20  0xFF ^ (0xF0 MOD 0x20)
744
 
15      15      239
745
 
select 0xFF MOD 0x20 ^ 0xF0, (0xFF MOD 0x20) ^ 0xF0, 0xFF MOD (0x20 ^ 0xF0);
746
 
0xFF MOD 0x20 ^ 0xF0    (0xFF MOD 0x20) ^ 0xF0  0xFF MOD (0x20 ^ 0xF0)
747
 
47      239     47