| 221 | } |
| 222 | |
| 223 | int64_t StreamWriter::SkipColumns(int num_columns_to_skip) { |
| 224 | int num_columns_skipped = 0; |
| 225 | |
| 226 | for (; (num_columns_to_skip > num_columns_skipped) && |
| 227 | static_cast<std::size_t>(column_index_) < nodes_.size(); |
| 228 | ++num_columns_skipped) { |
| 229 | const auto& node = nodes_[column_index_]; |
| 230 | |
| 231 | if (node->is_required()) { |
| 232 | throw ParquetException("Cannot skip column '" + node->name() + |
| 233 | "' as it is required."); |
| 234 | } |
| 235 | auto writer = row_group_writer_->column(column_index_++); |
| 236 | |
| 237 | WriteNullValue(writer); |
| 238 | } |
| 239 | return num_columns_skipped; |
| 240 | } |
| 241 | |
| 242 | void StreamWriter::WriteNullValue(ColumnWriter* writer) { |
| 243 | switch (writer->type()) { |