This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch branch-1.17.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/branch-1.17.x by this push:
new 0de168f7e KUDU-3518: Fix the unexpected scan predicate
0de168f7e is described below
commit 0de168f7e0abcf0c29facefcc9c0c9e12b284140
Author: Abhishek Chennaka <[email protected]>
AuthorDate: Mon Apr 15 15:52:48 2024 -0700
KUDU-3518: Fix the unexpected scan predicate
With the changes introduced in a previous patch[1], there have been
reports of errors during scan operations. This patch fixes these
scan errors.
This patch removes NON-NULL predicates on primary columns implicitly
added by ScanSpec::LiftPrimaryKeyBounds(), calling
ScanSpec::OptimizeScan() while optimizing InList scan predicates at the
DRS level. That's similar to what's done be optimizing the InList
predicates based on tablet PK bounds at a higher level.
The issue has been investigated and fixed in collaboration with Alexey
Serbin.
There will be follow-up patches to include tests of this failure.
[1] https://gerrit.cloudera.org/#/c/18434/
Change-Id: I220df7ec1b4f95726c913a19125f4647267d12b1
Reviewed-on: http://gerrit.cloudera.org:8080/21244
Reviewed-by: Alexey Serbin <[email protected]>
Tested-by: Alexey Serbin <[email protected]>
Reviewed-by: Yifan Zhang <[email protected]>
(cherry picked from commit 946acb711d722b1e6fe27af2c7de92960d724980)
Reviewed-on: http://gerrit.cloudera.org:8080/21314
---
src/kudu/tablet/cfile_set.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/kudu/tablet/cfile_set.cc b/src/kudu/tablet/cfile_set.cc
index 7620eea51..06d5f46e9 100644
--- a/src/kudu/tablet/cfile_set.cc
+++ b/src/kudu/tablet/cfile_set.cc
@@ -453,7 +453,7 @@ Status CFileSet::Iterator::OptimizePKPredicates(ScanSpec*
spec) {
}
if (modify_lower_bound_key || modify_upper_bound_key) {
- spec->UnifyPrimaryKeyBoundsAndColumnPredicates(tablet_schema, &arena_,
true);
+ spec->OptimizeScan(tablet_schema, &arena_, true);
}
return Status::OK();
}