milesgranger commented on code in PR #14029:
URL: https://github.com/apache/arrow/pull/14029#discussion_r968235420
##########
cpp/src/parquet/schema.cc:
##########
@@ -795,12 +795,27 @@ void SchemaDescriptor::Init(NodePtr schema) {
}
bool SchemaDescriptor::Equals(const SchemaDescriptor& other) const {
+ return this->Equals(other, nullptr);
+}
+
+bool SchemaDescriptor::Equals(
+ const SchemaDescriptor& other,
+ std::shared_ptr<std::stringstream> diff_msg = NULLPTR) const {
if (this->num_columns() != other.num_columns()) {
+ if (diff_msg != nullptr) {
+ *diff_msg.get() << "This schema has " << this->num_columns()
+ << " columns, other has " << other.num_columns();
+ }
return false;
}
for (int i = 0; i < this->num_columns(); ++i) {
if (!this->Column(i)->Equals(*other.Column(i))) {
+ if (diff_msg != nullptr) {
+ *diff_msg.get() << "These two columns differ:" << std::endl
+ << this->Column(i)->ToString() << std::endl
+ << other.Column(i)->ToString();
Review Comment:
I don't think there is an obvious way to get the exact variable names which
caused the exception. We'd at least need to catch the exception raised from C++
then introspect somehow in Python. I'll resolve this(?) even.. but of course
open to suggestions, I just couldn't make it work. 🤔
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]