Mahesh Reddy has posted comments on this change. ( http://gerrit.cloudera.org:8080/17643 )
Change subject: [pruning] KUDU-2671: Pruning compatible with custom hash schemas. ...................................................................... Patch Set 8: (7 comments) http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner-test.cc File src/kudu/common/partition_pruner-test.cc: http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner-test.cc@1490 PS6, Line 1490: check({ ColumnPredicate::Equality(schema.column(1), &zero), > Yeah, the idea is not to exercise the paths in the ScanSpec::CanShortCircui Makes sense, I can incorporate this behavior in existing tests. http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner-test.cc@1491 PS6, Line 1491: ColumnPredicate::InList(schema.column(2), &C_values) }, > My concern is how the new code works in case of having a single element in Yep, as shown by TestHashSchemasPerRangePruning where the range schema only consists of a single element of the PK, this works as intended. I added a test anyways that also tests the boundary cases as if the range partitions were created by split rows, but this test is probably redundant. http://gerrit.cloudera.org:8080/#/c/17643/7/src/kudu/common/partition_pruner.h File src/kudu/common/partition_pruner.h: http://gerrit.cloudera.org:8080/#/c/17643/7/src/kudu/common/partition_pruner.h@46 PS7, Line 46: > nit: can just be Done http://gerrit.cloudera.org:8080/#/c/17643/7/src/kudu/common/partition_pruner.h@47 PS7, Line 47: std::string lower; : std::string upper; : }; : : str > nit: we shouldn't need these -- we should be able to construct via Have to explicitly use the struct's name, thanks for the pointer. http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner.h File src/kudu/common/partition_pruner.h: http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner.h@48 PS6, Line 48: tring upp > +1 for making RangeBoundsAndPartitionKeyRanges a struct. I guess it's more Ack http://gerrit.cloudera.org:8080/#/c/17643/6/src/kudu/common/partition_pruner.h@71 PS6, Line 71: // Returns whether there are more partition key ranges to scan. : bool HasMorePartitionKeyRanges() const; : : // Returns the inclusive lower bound partition key of the next tablet to scan. : const std::string& N > Yep, makes sense. I guess we can update the behavior as needed if we find Ack http://gerrit.cloudera.org:8080/#/c/17643/7/src/kudu/common/partition_pruner.cc File src/kudu/common/partition_pruner.cc: http://gerrit.cloudera.org:8080/#/c/17643/7/src/kudu/common/partition_pruner.cc@533 PS7, Line 533: [range_bounds, partition_key_range] > nit: FYI starting in C++17 you can use structured bindings, e.g. Done -- To view, visit http://gerrit.cloudera.org:8080/17643 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I05c37495430f61a2c6f6012c72251138aee465b7 Gerrit-Change-Number: 17643 Gerrit-PatchSet: 8 Gerrit-Owner: Mahesh Reddy <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mahesh Reddy <[email protected]> Gerrit-Reviewer: Tidy Bot (241) Gerrit-Comment-Date: Tue, 03 Aug 2021 07:18:40 +0000 Gerrit-HasComments: Yes
