Cherry-picked from #47841 Co-authored-by: airborne12 <jiangkai@selectdb.com>
This commit is contained in:
committed by
GitHub
parent
d6f4db4170
commit
4f8ff321ea
@ -2475,7 +2475,19 @@ bool SegmentIterator::_no_need_read_key_data(ColumnId cid, vectorized::MutableCo
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!_check_all_conditions_passed_inverted_index_for_column(cid)) {
|
||||
// seek_schema is set when get_row_ranges_by_keys, it is null when there is no primary key range
|
||||
// in this case, we need to read data
|
||||
if (!_seek_schema) {
|
||||
return false;
|
||||
}
|
||||
// check if the column is in the seek_schema
|
||||
if (std::none_of(_seek_schema->columns().begin(), _seek_schema->columns().end(),
|
||||
[&](const Field* col) {
|
||||
return (col && _opts.tablet_schema->field_index(col->unique_id()) == cid);
|
||||
})) {
|
||||
return false;
|
||||
}
|
||||
if (!_check_all_conditions_passed_inverted_index_for_column(cid, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
suite("test_pk_no_need_read_data", "p0"){
|
||||
suite("test_pk_no_need_read_data", "nonConcurrent"){
|
||||
def table1 = "test_pk_no_need_read_data"
|
||||
|
||||
sql "drop table if exists ${table1}"
|
||||
@ -56,12 +56,15 @@ suite("test_pk_no_need_read_data", "p0"){
|
||||
sql "set enable_count_on_index_pushdown = true"
|
||||
sql """ set enable_common_expr_pushdown = true """
|
||||
|
||||
qt_select_0 "SELECT COUNT() FROM ${table1} WHERE date='2017-10-01'"
|
||||
try {
|
||||
GetDebugPoint().enableDebugPointForAllBEs("segment_iterator._read_columns_by_index")
|
||||
qt_select_0 "SELECT COUNT() FROM ${table1} WHERE date='2017-10-01'"
|
||||
} finally {
|
||||
GetDebugPoint().disableDebugPointForAllBEs("segment_iterator._read_columns_by_index")
|
||||
}
|
||||
qt_select_1 "SELECT COUNT() FROM ${table1} WHERE year(date)='2017'"
|
||||
|
||||
// case1: disable count on index
|
||||
// case2: disable count on index
|
||||
sql "set enable_count_on_index_pushdown = false"
|
||||
|
||||
qt_select_2 "SELECT COUNT() FROM ${table1} WHERE date='2017-10-01'"
|
||||
qt_select_3 "SELECT COUNT() FROM ${table1} WHERE year(date)='2017'"
|
||||
}
|
||||
Reference in New Issue
Block a user