diff --git a/src/Storages/StorageGenerateRandom.cpp b/src/Storages/StorageGenerateRandom.cpp index bc158c38f37..7987fcc3b31 100644 --- a/src/Storages/StorageGenerateRandom.cpp +++ b/src/Storages/StorageGenerateRandom.cpp @@ -213,10 +213,7 @@ ColumnPtr fillColumnWithRandomData( { auto column = ColumnUInt16::create(); column->getData().resize(limit); - - for (size_t i = 0; i < limit; ++i) - column->getData()[i] = rng() % (DATE_LUT_MAX_DAY_NUM + 1); - + fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(UInt16), rng); return column; } case TypeIndex::UInt32: [[fallthrough]]; @@ -234,14 +231,28 @@ ColumnPtr fillColumnWithRandomData( fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(UInt64), rng); return column; } - case TypeIndex::UInt128: [[fallthrough]]; - case TypeIndex::UUID: + case TypeIndex::UInt128: { auto column = ColumnUInt128::create(); column->getData().resize(limit); fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(UInt128), rng); return column; } + case TypeIndex::UInt256: + { + auto column = ColumnUInt256::create(); + column->getData().resize(limit); + fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(UInt256), rng); + return column; + } + case TypeIndex::UUID: + { + auto column = ColumnUUID::create(); + column->getData().resize(limit); + /// NOTE This is slightly incorrect as random UUIDs should have fixed version 4. + fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(UUID), rng); + return column; + } case TypeIndex::Int8: { auto column = ColumnInt8::create(); @@ -270,6 +281,20 @@ ColumnPtr fillColumnWithRandomData( fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(Int64), rng); return column; } + case TypeIndex::Int128: + { + auto column = ColumnInt128::create(); + column->getData().resize(limit); + fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(Int128), rng); + return column; + } + case TypeIndex::Int256: + { + auto column = ColumnInt256::create(); + column->getData().resize(limit); + fillBufferWithRandomData(reinterpret_cast(column->getData().data()), limit * sizeof(Int256), rng); + return column; + } case TypeIndex::Float32: { auto column = ColumnFloat32::create(); @@ -308,6 +333,14 @@ ColumnPtr fillColumnWithRandomData( fillBufferWithRandomData(reinterpret_cast(column_concrete.getData().data()), limit * sizeof(Decimal128), rng); return column; } + case TypeIndex::Decimal256: + { + auto column = type->createColumn(); + auto & column_concrete = typeid_cast &>(*column); + column_concrete.getData().resize(limit); + fillBufferWithRandomData(reinterpret_cast(column_concrete.getData().data()), limit * sizeof(Decimal256), rng); + return column; + } case TypeIndex::FixedString: { size_t n = typeid_cast(*type).getN();