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
|
# name: test/sql/optimizer/expression/test_nop_arithmetic.test
# description: Test NOP arithmetic expressions
# group: [expression]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE test (a INTEGER, b INTEGER)
statement ok
INSERT INTO test VALUES (42, 10), (43, 100);
# a + 0
query I
SELECT a + 0 FROM test
----
42
43
# 0 + a
query I
SELECT 0 + a FROM test
----
42
43
# a - 0
query I
SELECT a - 0 FROM test
----
42
43
# 0 - a
query I
SELECT 0 - a FROM test
----
-42
-43
# a * 1
query I
SELECT a * 1 FROM test
----
42
43
# 1 * a
query I
SELECT 1 * a FROM test
----
42
43
# a * 0 => 0
query I
SELECT a * 0 FROM test
----
0
0
query I
SELECT 0 * a FROM test
----
0
0
# a / 1
query I
SELECT a / 1 FROM test
----
42
43
# 1 / a
query I
SELECT 1 // a FROM test
----
0
0
# a / 0 => NULL
query I
SELECT a // 0 FROM test
----
NULL
NULL
# 0 / a => 0
query I
SELECT 0 // a FROM test
----
0
0
# test expressions involving NULL as well
statement ok
UPDATE test SET a=NULL
# NULL * 0 = NULL
query I
SELECT a * 0 FROM test
----
NULL
NULL
query I
SELECT rowid * 0 FROM test
----
0
0
# 0 / NULL = NULL
query I
SELECT 0 / a FROM test
----
NULL
NULL
statement ok
SET ieee_floating_point_ops=false;
query I
SELECT 0 / rowid FROM test
----
NULL
0
|