Skip to content

Commit dc094a7

Browse files
committed
do not output leading 'interval' in CalendarInterval.toString
1 parent 4c53ac1 commit dc094a7

File tree

18 files changed

+205
-204
lines changed

18 files changed

+205
-204
lines changed

common/unsafe/src/main/java/org/apache/spark/unsafe/types/CalendarInterval.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public int hashCode() {
8484

8585
@Override
8686
public String toString() {
87-
StringBuilder sb = new StringBuilder("interval");
87+
StringBuilder sb = new StringBuilder();
8888

8989
if (months != 0) {
9090
appendUnit(sb, months / 12, "year");
@@ -101,18 +101,19 @@ public String toString() {
101101
rest %= MICROS_PER_MINUTE;
102102
if (rest != 0) {
103103
String s = BigDecimal.valueOf(rest, 6).stripTrailingZeros().toPlainString();
104-
sb.append(' ').append(s).append(" seconds");
104+
sb.append(s).append(" seconds ");
105105
}
106106
} else if (months == 0 && days == 0) {
107-
sb.append(" 0 microseconds");
107+
sb.append("0 microseconds ");
108108
}
109109

110+
sb.setLength(sb.length() - 1);
110111
return sb.toString();
111112
}
112113

113114
private void appendUnit(StringBuilder sb, long value, String unit) {
114115
if (value != 0) {
115-
sb.append(' ').append(value).append(' ').append(unit).append('s');
116+
sb.append(value).append(' ').append(unit).append('s').append(' ');
116117
}
117118
}
118119

common/unsafe/src/test/java/org/apache/spark/unsafe/types/CalendarIntervalSuite.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,28 @@ public void toStringTest() {
5151
CalendarInterval i;
5252

5353
i = new CalendarInterval(0, 0, 0);
54-
assertEquals("interval 0 microseconds", i.toString());
54+
assertEquals("0 microseconds", i.toString());
5555

5656
i = new CalendarInterval(34, 0, 0);
57-
assertEquals("interval 2 years 10 months", i.toString());
57+
assertEquals("2 years 10 months", i.toString());
5858

5959
i = new CalendarInterval(-34, 0, 0);
60-
assertEquals("interval -2 years -10 months", i.toString());
60+
assertEquals("-2 years -10 months", i.toString());
6161

6262
i = new CalendarInterval(0, 31, 0);
63-
assertEquals("interval 31 days", i.toString());
63+
assertEquals("31 days", i.toString());
6464

6565
i = new CalendarInterval(0, -31, 0);
66-
assertEquals("interval -31 days", i.toString());
66+
assertEquals("-31 days", i.toString());
6767

6868
i = new CalendarInterval(0, 0, 3 * MICROS_PER_HOUR + 13 * MICROS_PER_MINUTE + 123);
69-
assertEquals("interval 3 hours 13 minutes 0.000123 seconds", i.toString());
69+
assertEquals("3 hours 13 minutes 0.000123 seconds", i.toString());
7070

7171
i = new CalendarInterval(0, 0, -3 * MICROS_PER_HOUR - 13 * MICROS_PER_MINUTE - 123);
72-
assertEquals("interval -3 hours -13 minutes -0.000123 seconds", i.toString());
72+
assertEquals("-3 hours -13 minutes -0.000123 seconds", i.toString());
7373

7474
i = new CalendarInterval(34, 31, 3 * MICROS_PER_HOUR + 13 * MICROS_PER_MINUTE + 123);
75-
assertEquals("interval 2 years 10 months 31 days 3 hours 13 minutes 0.000123 seconds",
75+
assertEquals("2 years 10 months 31 days 3 hours 13 minutes 0.000123 seconds",
7676
i.toString());
7777
}
7878

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Sum.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import org.apache.spark.sql.types._
3434
> SELECT _FUNC_(col) FROM VALUES (NULL), (NULL) AS tab(col);
3535
NULL
3636
> SELECT _FUNC_(cast(col as interval)) FROM VALUES ('1 seconds'), ('2 seconds'), (null) tab(col);
37-
interval 3 seconds
37+
3 seconds
3838
""",
3939
since = "1.0.0")
4040
// scalastyle:on line.size.limit

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ abstract class CastSuiteBase extends SparkFunSuite with ExpressionEvalHelper {
669669
checkEvaluation(Cast(Literal.create(
670670
new CalendarInterval(15, 9, -3 * CalendarInterval.MICROS_PER_HOUR), CalendarIntervalType),
671671
StringType),
672-
"interval 1 years 3 months 9 days -3 hours")
672+
"1 years 3 months 9 days -3 hours")
673673
checkEvaluation(Cast(Literal("INTERVAL 1 Second 1 microsecond"), CalendarIntervalType),
674674
new CalendarInterval(0, 0, 1000001))
675675
checkEvaluation(Cast(Literal("1 MONTH 1 Microsecond"), CalendarIntervalType),

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionSQLBuilderSuite.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,12 @@ class ExpressionSQLBuilderSuite extends SparkFunSuite {
169169

170170
checkSQL(
171171
TimeAdd('a, interval),
172-
"`a` + interval 1 hours"
172+
"`a` + 1 hours"
173173
)
174174

175175
checkSQL(
176176
TimeSub('a, interval),
177-
"`a` - interval 1 hours"
177+
"`a` - 1 hours"
178178
)
179179
}
180180
}

sql/core/src/test/resources/sql-tests/results/ansi/interval.sql.out

Lines changed: 35 additions & 35 deletions
Large diffs are not rendered by default.

sql/core/src/test/resources/sql-tests/results/cast.sql.out

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,12 @@ SELECT CAST('interval 3 month 1 hour' AS interval)
278278
-- !query 33 schema
279279
struct<CAST(interval 3 month 1 hour AS INTERVAL):interval>
280280
-- !query 33 output
281-
interval 3 months 1 hours
281+
3 months 1 hours
282282

283283

284284
-- !query 34
285285
SELECT CAST(interval 3 month 1 hour AS string)
286286
-- !query 34 schema
287-
struct<CAST(interval 3 months 1 hours AS STRING):string>
287+
struct<CAST(3 months 1 hours AS STRING):string>
288288
-- !query 34 output
289-
interval 3 months 1 hours
289+
3 months 1 hours

sql/core/src/test/resources/sql-tests/results/datetime.sql.out

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,44 +128,44 @@ select date '2001-10-01' - date '2001-09-28'
128128
-- !query 14 schema
129129
struct<subtractdates(DATE '2001-10-01', DATE '2001-09-28'):interval>
130130
-- !query 14 output
131-
interval 3 days
131+
3 days
132132

133133

134134
-- !query 15
135135
select date'2020-01-01' - timestamp'2019-10-06 10:11:12.345678'
136136
-- !query 15 schema
137137
struct<subtracttimestamps(CAST(DATE '2020-01-01' AS TIMESTAMP), TIMESTAMP('2019-10-06 10:11:12.345678')):interval>
138138
-- !query 15 output
139-
interval 2078 hours 48 minutes 47.654322 seconds
139+
2078 hours 48 minutes 47.654322 seconds
140140

141141

142142
-- !query 16
143143
select timestamp'2019-10-06 10:11:12.345678' - date'2020-01-01'
144144
-- !query 16 schema
145145
struct<subtracttimestamps(TIMESTAMP('2019-10-06 10:11:12.345678'), CAST(DATE '2020-01-01' AS TIMESTAMP)):interval>
146146
-- !query 16 output
147-
interval -2078 hours -48 minutes -47.654322 seconds
147+
-2078 hours -48 minutes -47.654322 seconds
148148

149149

150150
-- !query 17
151151
select 3 * (timestamp'2019-10-15 10:11:12.001002' - date'2019-10-15')
152152
-- !query 17 schema
153153
struct<multiply_interval(subtracttimestamps(TIMESTAMP('2019-10-15 10:11:12.001002'), CAST(DATE '2019-10-15' AS TIMESTAMP)), CAST(3 AS DOUBLE)):interval>
154154
-- !query 17 output
155-
interval 30 hours 33 minutes 36.003006 seconds
155+
30 hours 33 minutes 36.003006 seconds
156156

157157

158158
-- !query 18
159159
select interval 4 month 2 weeks 3 microseconds * 1.5
160160
-- !query 18 schema
161-
struct<multiply_interval(interval 4 months 14 days 0.000003 seconds, CAST(1.5 AS DOUBLE)):interval>
161+
struct<multiply_interval(4 months 14 days 0.000003 seconds, CAST(1.5 AS DOUBLE)):interval>
162162
-- !query 18 output
163-
interval 6 months 21 days 0.000005 seconds
163+
6 months 21 days 0.000005 seconds
164164

165165

166166
-- !query 19
167167
select (timestamp'2019-10-15' - timestamp'2019-10-14') / 1.5
168168
-- !query 19 schema
169169
struct<divide_interval(subtracttimestamps(TIMESTAMP('2019-10-15 00:00:00'), TIMESTAMP('2019-10-14 00:00:00')), CAST(1.5 AS DOUBLE)):interval>
170170
-- !query 19 output
171-
interval 16 hours
171+
16 hours

sql/core/src/test/resources/sql-tests/results/group-by.sql.out

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -596,31 +596,31 @@ select sum(cast(v as interval)) from VALUES ('1 seconds'), ('2 seconds'), (null)
596596
-- !query 58 schema
597597
struct<sum(CAST(v AS INTERVAL)):interval>
598598
-- !query 58 output
599-
interval 3 seconds
599+
3 seconds
600600

601601

602602
-- !query 59
603603
select sum(cast(v as interval)) from VALUES ('-1 seconds'), ('2 seconds'), (null) t(v)
604604
-- !query 59 schema
605605
struct<sum(CAST(v AS INTERVAL)):interval>
606606
-- !query 59 output
607-
interval 1 seconds
607+
1 seconds
608608

609609

610610
-- !query 60
611611
select sum(cast(v as interval)) from VALUES ('-1 seconds'), ('-2 seconds'), (null) t(v)
612612
-- !query 60 schema
613613
struct<sum(CAST(v AS INTERVAL)):interval>
614614
-- !query 60 output
615-
interval -3 seconds
615+
-3 seconds
616616

617617

618618
-- !query 61
619619
select sum(cast(v as interval)) from VALUES ('-1 weeks'), ('2 seconds'), (null) t(v)
620620
-- !query 61 schema
621621
struct<sum(CAST(v AS INTERVAL)):interval>
622622
-- !query 61 output
623-
interval -7 days 2 seconds
623+
-7 days 2 seconds
624624

625625

626626
-- !query 62
@@ -632,8 +632,8 @@ group by i
632632
-- !query 62 schema
633633
struct<i:int,sum(CAST(v AS INTERVAL)):interval>
634634
-- !query 62 output
635-
1 interval -2 days
636-
2 interval 2 seconds
635+
1 -2 days
636+
2 2 seconds
637637
3 NULL
638638

639639

@@ -645,7 +645,7 @@ having sv is not null
645645
-- !query 63 schema
646646
struct<sv:interval>
647647
-- !query 63 output
648-
interval -2 days 2 seconds
648+
-2 days 2 seconds
649649

650650

651651
-- !query 64
@@ -656,7 +656,7 @@ FROM VALUES(1,'1 seconds'),(1,'2 seconds'),(2,NULL),(2,NULL) t(i,v)
656656
-- !query 64 schema
657657
struct<i:int,sum(CAST(v AS INTERVAL)) OVER (ORDER BY i ASC NULLS FIRST ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING):interval>
658658
-- !query 64 output
659-
1 interval 2 seconds
660-
1 interval 3 seconds
659+
1 2 seconds
660+
1 3 seconds
661661
2 NULL
662662
2 NULL

0 commit comments

Comments
 (0)