You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ji...@apache.org on 2017/02/05 21:48:07 UTC
incubator-quickstep git commit: Fix the bug with
SingleIdentityHashFilter when filter_cardinality is 0.
Repository: incubator-quickstep
Updated Branches:
refs/heads/fix-lip-zero-cardinality [created] 12610ac01
Fix the bug with SingleIdentityHashFilter when filter_cardinality is 0.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/12610ac0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/12610ac0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/12610ac0
Branch: refs/heads/fix-lip-zero-cardinality
Commit: 12610ac01f94f4f6cf7c91b8a4fb8d1df6e081f2
Parents: 27a8055
Author: jianqiao <ji...@node-2.jianqiao.quickstep-pg0.wisc.cloudlab.us>
Authored: Sun Feb 5 15:46:48 2017 -0600
Committer: jianqiao <ji...@node-2.jianqiao.quickstep-pg0.wisc.cloudlab.us>
Committed: Sun Feb 5 15:47:02 2017 -0600
----------------------------------------------------------------------
query_optimizer/rules/AttachLIPFilters.cpp | 3 ++-
utility/lip_filter/SingleIdentityHashFilter.hpp | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/12610ac0/query_optimizer/rules/AttachLIPFilters.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/rules/AttachLIPFilters.cpp b/query_optimizer/rules/AttachLIPFilters.cpp
index 48b68bc..4b6ac59 100644
--- a/query_optimizer/rules/AttachLIPFilters.cpp
+++ b/query_optimizer/rules/AttachLIPFilters.cpp
@@ -19,6 +19,7 @@
#include "query_optimizer/rules/AttachLIPFilters.hpp"
+#include <algorithm>
#include <map>
#include <set>
#include <unordered_set>
@@ -128,7 +129,7 @@ void AttachLIPFilters::attachLIPFilters(
lip_filter_configuration_->addBuildInfo(
P::SingleIdentityHashFilterBuildInfo::Create(
pair.second->source_attribute,
- pair.second->estimated_cardinality * 8),
+ std::max(64uL, pair.second->estimated_cardinality * 8u)),
pair.second->source);
lip_filter_configuration_->addProbeInfo(
P::LIPFilterProbeInfo::Create(
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/12610ac0/utility/lip_filter/SingleIdentityHashFilter.hpp
----------------------------------------------------------------------
diff --git a/utility/lip_filter/SingleIdentityHashFilter.hpp b/utility/lip_filter/SingleIdentityHashFilter.hpp
index 2823818..5c0e8a2 100644
--- a/utility/lip_filter/SingleIdentityHashFilter.hpp
+++ b/utility/lip_filter/SingleIdentityHashFilter.hpp
@@ -66,7 +66,7 @@ class SingleIdentityHashFilter : public LIPFilter {
: LIPFilter(LIPFilterType::kSingleIdentityHashFilter),
filter_cardinality_(filter_cardinality),
bit_array_(GetByteSize(filter_cardinality)) {
- DCHECK_GE(filter_cardinality, 0u);
+ DCHECK_GE(filter_cardinality, 1u);
std::memset(bit_array_.data(),
0x0,
sizeof(std::atomic<std::uint8_t>) * GetByteSize(filter_cardinality));