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

Method generate

programs/obfuscator/Obfuscator.cpp:469–494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

467 void finalize() override {}
468
469 ColumnPtr generate(const IColumn & column) override
470 {
471 const auto & src_data = assert_cast<const ColumnVector<UInt32> &>(column).getData();
472 size_t size = src_data.size();
473
474 auto res_column = ColumnVector<UInt32>::create(size);
475 auto & res_data = assert_cast<ColumnVector<UInt32> &>(*res_column).getData();
476
477 for (size_t i = 0; i < size; ++i)
478 {
479 UInt32 src_datetime = src_data[i];
480 UInt32 src_date = date_lut.toDate(src_datetime);
481
482 Int32 src_diff = src_datetime - src_prev_value;
483 Int32 res_diff = transformSigned(src_diff, seed);
484
485 UInt32 new_datetime = res_prev_value + res_diff;
486 UInt32 new_time = new_datetime - date_lut.toDate(new_datetime);
487 res_data[i] = src_date + new_time;
488
489 src_prev_value = src_datetime;
490 res_prev_value = res_data[i];
491 }
492
493 return res_column;
494 }
495
496 void updateSeed() override
497 {

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