|
16 | 16 | */ |
17 | 17 | package org.apache.arrow.driver.jdbc.accessor.impl.calendar; |
18 | 18 |
|
19 | | -import static org.apache.arrow.driver.jdbc.accessor.impl.calendar.ArrowFlightJdbcTimeStampVectorAccessor.getTimeUnitForVector; |
20 | | -import static org.apache.arrow.driver.jdbc.accessor.impl.calendar.ArrowFlightJdbcTimeStampVectorAccessor.getTimeZoneForVector; |
| 19 | +import static org.apache.arrow.driver.jdbc.accessor.impl.calendar.ArrowFlightJdbcTimeStampVectorAccessor.*; |
21 | 20 | import static org.hamcrest.CoreMatchers.equalTo; |
22 | 21 | import static org.hamcrest.CoreMatchers.is; |
23 | 22 | import static org.hamcrest.MatcherAssert.assertThat; |
@@ -183,16 +182,22 @@ public void testShouldGetTimestampReturnValidTimestampWithCalendar( |
183 | 182 | Calendar calendar = Calendar.getInstance(timeZone); |
184 | 183 |
|
185 | 184 | TimeZone timeZoneForVector = getTimeZoneForVector(vector); |
| 185 | + boolean hasTz = getVectorIsZoned(vector); |
186 | 186 |
|
187 | 187 | accessorIterator.iterate( |
188 | 188 | vector, |
189 | 189 | (accessor, currentRow) -> { |
190 | 190 | final Timestamp resultWithoutCalendar = accessor.getTimestamp(null); |
191 | 191 | final Timestamp result = accessor.getTimestamp(calendar); |
192 | 192 |
|
193 | | - long offset = |
194 | | - (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
195 | | - - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 193 | + long offset; |
| 194 | + if (hasTz) { |
| 195 | + offset = |
| 196 | + (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
| 197 | + - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 198 | + } else { |
| 199 | + offset = 0; |
| 200 | + } |
196 | 201 |
|
197 | 202 | assertThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset)); |
198 | 203 | assertThat(accessor.wasNull(), is(false)); |
@@ -231,16 +236,22 @@ public void testShouldGetDateReturnValidDateWithCalendar(Supplier<TimeStampVecto |
231 | 236 | Calendar calendar = Calendar.getInstance(timeZone); |
232 | 237 |
|
233 | 238 | TimeZone timeZoneForVector = getTimeZoneForVector(vector); |
| 239 | + boolean hasTz = getVectorIsZoned(vector); |
234 | 240 |
|
235 | 241 | accessorIterator.iterate( |
236 | 242 | vector, |
237 | 243 | (accessor, currentRow) -> { |
238 | 244 | final Date resultWithoutCalendar = accessor.getDate(null); |
239 | 245 | final Date result = accessor.getDate(calendar); |
240 | 246 |
|
241 | | - long offset = |
242 | | - (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
243 | | - - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 247 | + long offset; |
| 248 | + if (hasTz) { |
| 249 | + offset = |
| 250 | + (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
| 251 | + - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 252 | + } else { |
| 253 | + offset = 0; |
| 254 | + } |
244 | 255 |
|
245 | 256 | assertThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset)); |
246 | 257 | assertThat(accessor.wasNull(), is(false)); |
@@ -279,16 +290,22 @@ public void testShouldGetTimeReturnValidTimeWithCalendar(Supplier<TimeStampVecto |
279 | 290 | Calendar calendar = Calendar.getInstance(timeZone); |
280 | 291 |
|
281 | 292 | TimeZone timeZoneForVector = getTimeZoneForVector(vector); |
| 293 | + boolean hasTz = getVectorIsZoned(vector); |
282 | 294 |
|
283 | 295 | accessorIterator.iterate( |
284 | 296 | vector, |
285 | 297 | (accessor, currentRow) -> { |
286 | 298 | final Time resultWithoutCalendar = accessor.getTime(null); |
287 | 299 | final Time result = accessor.getTime(calendar); |
288 | 300 |
|
289 | | - long offset = |
290 | | - (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
291 | | - - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 301 | + long offset; |
| 302 | + if (hasTz) { |
| 303 | + offset = |
| 304 | + (long) timeZone.getOffset(resultWithoutCalendar.getTime()) |
| 305 | + - timeZoneForVector.getOffset(resultWithoutCalendar.getTime()); |
| 306 | + } else { |
| 307 | + offset = 0; |
| 308 | + } |
292 | 309 |
|
293 | 310 | assertThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset)); |
294 | 311 | assertThat(accessor.wasNull(), is(false)); |
|
0 commit comments