|
23 | 23 |
|
24 | 24 | ## Original Query: SELECT floor(-0.1); |
25 | 25 | ## PySpark 3.5.5 Result: {'FLOOR(-0.1)': Decimal('-1'), 'typeof(FLOOR(-0.1))': 'decimal(1,0)', 'typeof(-0.1)': 'decimal(1,1)'} |
26 | | -#query |
27 | | -#SELECT floor(-0.1::decimal(1,1)); |
| 26 | +query R |
| 27 | +SELECT floor(-0.1::decimal(1,1)); |
| 28 | +---- |
| 29 | +-1 |
28 | 30 |
|
29 | 31 | ## Original Query: SELECT floor(3.1411, -3); |
30 | 32 | ## PySpark 3.5.5 Result: {'floor(3.1411, -3)': Decimal('0'), 'typeof(floor(3.1411, -3))': 'decimal(4,0)', 'typeof(3.1411)': 'decimal(5,4)', 'typeof(-3)': 'int'} |
| 33 | +## TODO: 2-argument floor(value, scale) is not yet implemented |
31 | 34 | #query |
32 | 35 | #SELECT floor(3.1411::decimal(5,4), -3::int); |
33 | 36 |
|
34 | 37 | ## Original Query: SELECT floor(3.1411, 3); |
35 | 38 | ## PySpark 3.5.5 Result: {'floor(3.1411, 3)': Decimal('3.141'), 'typeof(floor(3.1411, 3))': 'decimal(5,3)', 'typeof(3.1411)': 'decimal(5,4)', 'typeof(3)': 'int'} |
| 39 | +## TODO: 2-argument floor(value, scale) is not yet implemented |
36 | 40 | #query |
37 | 41 | #SELECT floor(3.1411::decimal(5,4), 3::int); |
38 | 42 |
|
39 | 43 | ## Original Query: SELECT floor(5); |
40 | 44 | ## PySpark 3.5.5 Result: {'FLOOR(5)': 5, 'typeof(FLOOR(5))': 'bigint', 'typeof(5)': 'int'} |
41 | | -#query |
42 | | -#SELECT floor(5::int); |
| 45 | +query I |
| 46 | +SELECT floor(5::int); |
| 47 | +---- |
| 48 | +5 |
| 49 | + |
| 50 | +# Scalar input: float64 returns bigint |
| 51 | +query IIIIIII |
| 52 | +SELECT floor(125.9345::DOUBLE), floor(15.9999::DOUBLE), floor(0.9::DOUBLE), floor(-0.1::DOUBLE), floor(-1.999::DOUBLE), floor(123.0::DOUBLE), floor(NULL::DOUBLE); |
| 53 | +---- |
| 54 | +125 15 0 -1 -2 123 NULL |
| 55 | + |
| 56 | +# Scalar input: float32 returns bigint |
| 57 | +query IIIIIII |
| 58 | +SELECT floor(125.9345::FLOAT), floor(15.9999::FLOAT), floor(0.9::FLOAT), floor(-0.1::FLOAT), floor(-1.999::FLOAT), floor(123.0::FLOAT), floor(NULL::FLOAT); |
| 59 | +---- |
| 60 | +125 15 0 -1 -2 123 NULL |
| 61 | + |
| 62 | +# Scalar input: integer types all return bigint |
| 63 | +query III |
| 64 | +SELECT floor(5::TINYINT), floor(-3::TINYINT), floor(NULL::TINYINT); |
| 65 | +---- |
| 66 | +5 -3 NULL |
| 67 | + |
| 68 | +query III |
| 69 | +SELECT floor(5::SMALLINT), floor(-3::SMALLINT), floor(NULL::SMALLINT); |
| 70 | +---- |
| 71 | +5 -3 NULL |
| 72 | + |
| 73 | +query III |
| 74 | +SELECT floor(5::INT), floor(-3::INT), floor(NULL::INT); |
| 75 | +---- |
| 76 | +5 -3 NULL |
| 77 | + |
| 78 | +query III |
| 79 | +SELECT floor(5::BIGINT), floor(-3::BIGINT), floor(NULL::BIGINT); |
| 80 | +---- |
| 81 | +5 -3 NULL |
| 82 | + |
| 83 | +# Scalar input: decimal128 with scale > 0 returns decimal with scale 0 |
| 84 | +# floor(1.50) = 1, floor(-1.50) = -2, floor(1.00) = 1 |
| 85 | +query RRR |
| 86 | +SELECT floor(1.50::DECIMAL(10, 2)), floor(-1.50::DECIMAL(10, 2)), floor(1.00::DECIMAL(10, 2)); |
| 87 | +---- |
| 88 | +1 -2 1 |
| 89 | + |
| 90 | +# floor(-0.1) = -1 (rounds down away from zero for negatives) |
| 91 | +query RR |
| 92 | +SELECT floor(-0.1::DECIMAL(3, 1)), floor(NULL::DECIMAL(10, 2)); |
| 93 | +---- |
| 94 | +-1 NULL |
| 95 | + |
| 96 | +# floor(3.1411) = 3 |
| 97 | +query R |
| 98 | +SELECT floor(3.1411::DECIMAL(5, 4)); |
| 99 | +---- |
| 100 | +3 |
| 101 | + |
| 102 | +# Scalar input: decimal128 with scale = 0 passes through unchanged |
| 103 | +query RRR |
| 104 | +SELECT floor(5::DECIMAL(10, 0)), floor(-3::DECIMAL(10, 0)), floor(NULL::DECIMAL(10, 0)); |
| 105 | +---- |
| 106 | +5 -3 NULL |
| 107 | + |
| 108 | +# Array input: float64 |
| 109 | +query I |
| 110 | +SELECT floor(a) FROM (VALUES (125.9345::DOUBLE), (15.9999::DOUBLE), (0.9::DOUBLE), (-0.1::DOUBLE), (-1.999::DOUBLE), (123.0::DOUBLE), (NULL::DOUBLE)) AS t(a); |
| 111 | +---- |
| 112 | +125 |
| 113 | +15 |
| 114 | +0 |
| 115 | +-1 |
| 116 | +-2 |
| 117 | +123 |
| 118 | +NULL |
| 119 | + |
| 120 | +# Array input: float32 |
| 121 | +query I |
| 122 | +SELECT floor(a) FROM (VALUES (125.9345::FLOAT), (15.9999::FLOAT), (0.9::FLOAT), (-0.1::FLOAT), (-1.999::FLOAT), (123.0::FLOAT), (NULL::FLOAT)) AS t(a); |
| 123 | +---- |
| 124 | +125 |
| 125 | +15 |
| 126 | +0 |
| 127 | +-1 |
| 128 | +-2 |
| 129 | +123 |
| 130 | +NULL |
| 131 | + |
| 132 | +# Array input: integers |
| 133 | +query I |
| 134 | +SELECT floor(a) FROM (VALUES (5::INT), (-3::INT), (NULL::INT)) AS t(a); |
| 135 | +---- |
| 136 | +5 |
| 137 | +-3 |
| 138 | +NULL |
| 139 | + |
| 140 | +# Array input: decimal128 with scale > 0 |
| 141 | +query R |
| 142 | +SELECT floor(a) FROM (VALUES (1.50::DECIMAL(10, 2)), (-1.50::DECIMAL(10, 2)), (1.00::DECIMAL(10, 2)), (NULL::DECIMAL(10, 2))) AS t(a); |
| 143 | +---- |
| 144 | +1 |
| 145 | +-2 |
| 146 | +1 |
| 147 | +NULL |
0 commit comments