MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / generate

Method generate

programs/obfuscator/Obfuscator.cpp:510–535  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 5

transformSignedFunction · 0.85
createFunction · 0.50
getDataMethod · 0.45
sizeMethod · 0.45
toDateMethod · 0.45

Tested by

no test coverage detected