File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -166,6 +166,13 @@ ColumnString::ColumnString()
166166{
167167}
168168
169+ ColumnString::ColumnString (size_t element_count)
170+ : Column(Type::CreateString())
171+ {
172+ items_.reserve (element_count);
173+ blocks_.reserve (element_count / 2 );
174+ }
175+
169176ColumnString::ColumnString (const std::vector<std::string>& data)
170177 : ColumnString()
171178{
@@ -291,7 +298,7 @@ size_t ColumnString::Size() const {
291298}
292299
293300ColumnRef ColumnString::Slice (size_t begin, size_t len) const {
294- auto result = std::make_shared<ColumnString>();
301+ auto result = std::make_shared<ColumnString>(len );
295302
296303 if (begin < items_.size ()) {
297304 len = std::min (len, items_.size () - begin);
Original file line number Diff line number Diff line change @@ -78,6 +78,7 @@ class ColumnString : public Column {
7878 ColumnString ();
7979 ~ColumnString ();
8080
81+ explicit ColumnString (size_t element_count);
8182 explicit ColumnString (const std::vector<std::string> & data);
8283 explicit ColumnString (std::vector<std::string>&& data);
8384 ColumnString& operator =(const ColumnString&) = delete ;
You can’t perform that action at this time.
0 commit comments