| 508 | void deserialize(ReadBuffer &) override {} |
| 509 | |
| 510 | ColumnPtr generate(const IColumn & column) override |
| 511 | { |
| 512 | const auto & src_data = assert_cast<const ColumnVector<UInt32> &>(column).getData(); |
| 513 | size_t size = src_data.size(); |
| 514 | |
| 515 | auto res_column = ColumnVector<UInt32>::create(size); |
| 516 | auto & res_data = assert_cast<ColumnVector<UInt32> &>(*res_column).getData(); |
| 517 | |
| 518 | for (size_t i = 0; i < size; ++i) |
| 519 | { |
| 520 | UInt32 src_datetime = src_data[i]; |
| 521 | UInt32 src_date = static_cast<UInt32>(date_lut.toDate(src_datetime)); |
| 522 | |
| 523 | Int32 src_diff = src_datetime - src_prev_value; |
| 524 | Int32 res_diff = static_cast<Int32>(transformSigned(src_diff, seed)); |
| 525 | |
| 526 | UInt32 new_datetime = res_prev_value + res_diff; |
| 527 | UInt32 new_time = new_datetime - static_cast<UInt32>(date_lut.toDate(new_datetime)); |
| 528 | res_data[i] = src_date + new_time; |
| 529 | |
| 530 | src_prev_value = src_datetime; |
| 531 | res_prev_value = res_data[i]; |
| 532 | } |
| 533 | |
| 534 | return res_column; |
| 535 | } |
| 536 | |
| 537 | void updateSeed() override |
| 538 | { |
nothing calls this directly
no test coverage detected