Skip to content

Commit 4393eaa

Browse files
committed
Add RunEndEncoded to visitor_generate.h
And all the placeholders necessary to make all the code compile
1 parent 4da4ac9 commit 4393eaa

17 files changed

Lines changed: 68 additions & 1 deletion

‎cpp/src/arrow/array/array_base.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ struct ScalarFromArraySlotImpl {
143143
return Status::OK();
144144
}
145145

146+
Status Visit(const RunEndEncodedArray& a) {
147+
return Status::NotImplemented("Creating scalar from encoded array");
148+
}
149+
146150
Status Visit(const ExtensionArray& a) {
147151
ARROW_ASSIGN_OR_RAISE(auto storage, a.storage()->GetScalar(index_));
148152
out_ = std::make_shared<ExtensionScalar>(std::move(storage), a.type());

‎cpp/src/arrow/array/concatenate.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,10 @@ class ConcatenateImpl {
436436
return Status::OK();
437437
}
438438

439+
Status Visit(const RunEndEncodedType& type) {
440+
return Status::NotImplemented("concatenation of ", type);
441+
}
442+
439443
Status Visit(const ExtensionType& e) {
440444
// XXX can we just concatenate their storage?
441445
return Status::NotImplemented("concatenation of ", e);

‎cpp/src/arrow/array/diff.cc‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ struct ValueComparatorVisitor {
118118
return Status::NotImplemented("dictionary type");
119119
}
120120

121+
Status Visit(const RunEndEncodedType&) {
122+
return Status::NotImplemented("run-end encoded type");
123+
}
124+
121125
ValueComparator Create(const DataType& type) {
122126
DCHECK_OK(VisitTypeInline(type, this));
123127
return out;
@@ -382,6 +386,8 @@ Result<std::shared_ptr<StructArray>> Diff(const Array& base, const Array& target
382386
return Diff(*base_storage, *target_storage, pool);
383387
} else if (base.type()->id() == Type::DICTIONARY) {
384388
return Status::NotImplemented("diffing arrays of type ", *base.type());
389+
} else if (base.type()->id() == Type::RUN_END_ENCODED) {
390+
return Status::NotImplemented("diffing arrays of type ", *base.type());
385391
} else {
386392
return QuadraticSpaceMyersDiff(base, target, pool).Diff();
387393
}
@@ -633,6 +639,10 @@ class MakeFormatterImpl {
633639
return Status::NotImplemented("formatting diffs between arrays of type ", t);
634640
}
635641

642+
Status Visit(const RunEndEncodedType& t) {
643+
return Status::NotImplemented("formatting diffs between arrays of type ", t);
644+
}
645+
636646
template <typename T, bool AddEpoch>
637647
Formatter MakeTimeFormatter(const std::string& fmt_str) {
638648
return [fmt_str](const Array& array, int64_t index, std::ostream* os) {

‎cpp/src/arrow/array/util.cc‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,9 @@ class ArrayDataEndianSwapper {
237237
Status Visit(const FixedSizeBinaryType& type) { return Status::OK(); }
238238
Status Visit(const FixedSizeListType& type) { return Status::OK(); }
239239
Status Visit(const StructType& type) { return Status::OK(); }
240+
Status Visit(const RunEndEncodedType& type) {
241+
return Status::NotImplemented("swapping endianness of run-end encoded array");
242+
}
240243
Status Visit(const UnionType& type) {
241244
out_->buffers[1] = data_->buffers[1];
242245
if (type.mode() == UnionMode::DENSE) {

‎cpp/src/arrow/array/validate.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,10 @@ struct ValidateArrayImpl {
413413
return Status::OK();
414414
}
415415

416+
Status Visit(const RunEndEncodedType& type) {
417+
return Status::NotImplemented("run-end encoded validation");
418+
}
419+
416420
Status Visit(const ExtensionType& type) {
417421
// Visit storage
418422
return ValidateWithType(*type.storage_type());

‎cpp/src/arrow/compare.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,10 @@ class RangeDataEqualsImpl {
388388
return Status::OK();
389389
}
390390

391+
Status Visit(const RunEndEncodedType& type) {
392+
return Status::NotImplemented("comparing run-end encoded data");
393+
}
394+
391395
Status Visit(const ExtensionType& type) {
392396
// Compare storages
393397
result_ &= CompareWithType(*type.storage_type());

‎cpp/src/arrow/engine/substrait/type_internal.cc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ struct DataTypeToProtoImpl {
329329
Status Visit(const SparseUnionType& t) { return NotImplemented(t); }
330330
Status Visit(const DenseUnionType& t) { return NotImplemented(t); }
331331
Status Visit(const DictionaryType& t) { return NotImplemented(t); }
332+
Status Visit(const RunEndEncodedType& t) { return NotImplemented(t); }
332333

333334
Status Visit(const MapType& t) {
334335
// FIXME assert default field names; custom ones won't roundtrip

‎cpp/src/arrow/ipc/metadata_internal.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,10 @@ class FieldToFlatbufferVisitor {
690690
return VisitType(*checked_cast<const DictionaryType&>(type).value_type());
691691
}
692692

693+
Status Visit(const RunEndEncodedType& type) {
694+
return Status::NotImplemented("run-end encoded type in IPC");
695+
}
696+
693697
Status Visit(const ExtensionType& type) {
694698
RETURN_NOT_OK(VisitType(*type.storage_type()));
695699
extra_type_metadata_[kExtensionTypeKeyName] = type.extension_name();

‎cpp/src/arrow/ipc/reader.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,10 @@ class ArrayLoader {
421421
return LoadType(*type.index_type());
422422
}
423423

424+
Status Visit(const RunEndEncodedType& type) {
425+
return Status::NotImplemented("run-end encoded array in IPC");
426+
}
427+
424428
Status Visit(const ExtensionType& type) { return LoadType(*type.storage_type()); }
425429

426430
BatchDataReadRequest& read_request() { return read_request_; }

‎cpp/src/arrow/ipc/writer.cc‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,10 @@ class RecordBatchSerializer {
522522
return VisitType(*array.indices());
523523
}
524524

525+
Status Visit(const RunEndEncodedArray& type) {
526+
return Status::NotImplemented("run-end encoded array in IPC");
527+
}
528+
525529
Status Visit(const ExtensionArray& array) { return VisitType(*array.storage()); }
526530

527531
Status VisitType(const Array& values) { return VisitArrayInline(values, this); }

0 commit comments

Comments
 (0)