|
17 | 17 |
|
18 | 18 | package org.apache.spark.sql.catalyst.expressions |
19 | 19 |
|
| 20 | +import java.sql.Timestamp |
20 | 21 |
|
21 | 22 | /** |
22 | 23 | * A [[Projection]] that is calculated by calling the `eval` of each of the specified expressions. |
@@ -137,6 +138,15 @@ class JoinedRow extends Row { |
137 | 138 | def getString(i: Int): String = |
138 | 139 | if (i < row1.size) row1.getString(i) else row2.getString(i - row1.size) |
139 | 140 |
|
| 141 | + def getDecimal(i: Int): BigDecimal = |
| 142 | + if (i < row1.size) row1.getDecimal(i) else row2.getDecimal(i - row1.size) |
| 143 | + |
| 144 | + def getTimestamp(i: Int): Timestamp = |
| 145 | + if (i < row1.size) row1.getTimestamp(i) else row2.getTimestamp(i - row1.size) |
| 146 | + |
| 147 | + def getBinary(i: Int): Array[Byte] = |
| 148 | + if (i < row1.size) row1.getBinary(i) else row2.getBinary(i - row1.size) |
| 149 | + |
140 | 150 | def copy() = { |
141 | 151 | val totalSize = row1.size + row2.size |
142 | 152 | val copiedValues = new Array[Any](totalSize) |
@@ -226,6 +236,15 @@ class JoinedRow2 extends Row { |
226 | 236 | def getString(i: Int): String = |
227 | 237 | if (i < row1.size) row1.getString(i) else row2.getString(i - row1.size) |
228 | 238 |
|
| 239 | + def getDecimal(i: Int): BigDecimal = |
| 240 | + if (i < row1.size) row1.getDecimal(i) else row2.getDecimal(i - row1.size) |
| 241 | + |
| 242 | + def getTimestamp(i: Int): Timestamp = |
| 243 | + if (i < row1.size) row1.getTimestamp(i) else row2.getTimestamp(i - row1.size) |
| 244 | + |
| 245 | + def getBinary(i: Int): Array[Byte] = |
| 246 | + if (i < row1.size) row1.getBinary(i) else row2.getBinary(i - row1.size) |
| 247 | + |
229 | 248 | def copy() = { |
230 | 249 | val totalSize = row1.size + row2.size |
231 | 250 | val copiedValues = new Array[Any](totalSize) |
@@ -309,6 +328,15 @@ class JoinedRow3 extends Row { |
309 | 328 | def getString(i: Int): String = |
310 | 329 | if (i < row1.size) row1.getString(i) else row2.getString(i - row1.size) |
311 | 330 |
|
| 331 | + def getDecimal(i: Int): BigDecimal = |
| 332 | + if (i < row1.size) row1.getDecimal(i) else row2.getDecimal(i - row1.size) |
| 333 | + |
| 334 | + def getTimestamp(i: Int): Timestamp = |
| 335 | + if (i < row1.size) row1.getTimestamp(i) else row2.getTimestamp(i - row1.size) |
| 336 | + |
| 337 | + def getBinary(i: Int): Array[Byte] = |
| 338 | + if (i < row1.size) row1.getBinary(i) else row2.getBinary(i - row1.size) |
| 339 | + |
312 | 340 | def copy() = { |
313 | 341 | val totalSize = row1.size + row2.size |
314 | 342 | val copiedValues = new Array[Any](totalSize) |
@@ -392,6 +420,15 @@ class JoinedRow4 extends Row { |
392 | 420 | def getString(i: Int): String = |
393 | 421 | if (i < row1.size) row1.getString(i) else row2.getString(i - row1.size) |
394 | 422 |
|
| 423 | + def getDecimal(i: Int): BigDecimal = |
| 424 | + if (i < row1.size) row1.getDecimal(i) else row2.getDecimal(i - row1.size) |
| 425 | + |
| 426 | + def getTimestamp(i: Int): Timestamp = |
| 427 | + if (i < row1.size) row1.getTimestamp(i) else row2.getTimestamp(i - row1.size) |
| 428 | + |
| 429 | + def getBinary(i: Int): Array[Byte] = |
| 430 | + if (i < row1.size) row1.getBinary(i) else row2.getBinary(i - row1.size) |
| 431 | + |
395 | 432 | def copy() = { |
396 | 433 | val totalSize = row1.size + row2.size |
397 | 434 | val copiedValues = new Array[Any](totalSize) |
@@ -475,6 +512,15 @@ class JoinedRow5 extends Row { |
475 | 512 | def getString(i: Int): String = |
476 | 513 | if (i < row1.size) row1.getString(i) else row2.getString(i - row1.size) |
477 | 514 |
|
| 515 | + def getDecimal(i: Int): BigDecimal = |
| 516 | + if (i < row1.size) row1.getDecimal(i) else row2.getDecimal(i - row1.size) |
| 517 | + |
| 518 | + def getTimestamp(i: Int): Timestamp = |
| 519 | + if (i < row1.size) row1.getTimestamp(i) else row2.getTimestamp(i - row1.size) |
| 520 | + |
| 521 | + def getBinary(i: Int): Array[Byte] = |
| 522 | + if (i < row1.size) row1.getBinary(i) else row2.getBinary(i - row1.size) |
| 523 | + |
478 | 524 | def copy() = { |
479 | 525 | val totalSize = row1.size + row2.size |
480 | 526 | val copiedValues = new Array[Any](totalSize) |
|
0 commit comments