diff --git a/src/sql/das/ob_das_extra_data.cpp b/src/sql/das/ob_das_extra_data.cpp index ca084474f0..8f864830c2 100644 --- a/src/sql/das/ob_das_extra_data.cpp +++ b/src/sql/das/ob_das_extra_data.cpp @@ -143,7 +143,8 @@ int ObDASExtraData::get_next_rows(int64_t &count, int64_t capacity) } } else { got_row = true; - PRINT_VECTORIZED_ROWS(SQL, DEBUG, *eval_ctx_, *output_exprs_, count, KR(ret)); + const ObBitVector *skip = NULL; + PRINT_VECTORIZED_ROWS(SQL, DEBUG, *eval_ctx_, *output_exprs_, count, skip, KR(ret)); } } return ret; diff --git a/src/sql/das/ob_das_scan_op.cpp b/src/sql/das/ob_das_scan_op.cpp index 7ec851260f..8c60ba4883 100644 --- a/src/sql/das/ob_das_scan_op.cpp +++ b/src/sql/das/ob_das_scan_op.cpp @@ -627,7 +627,8 @@ int ObDASScanOp::fill_task_result(ObIDASTaskResult &task_result, bool &has_more, } } if (OB_SUCC(ret) && has_more) { - PRINT_VECTORIZED_ROWS(SQL, DEBUG, eval_ctx, result_output, remain_row_cnt_, + const ObBitVector *skip = NULL; + PRINT_VECTORIZED_ROWS(SQL, DEBUG, eval_ctx, result_output, remain_row_cnt_, skip, K(simulate_row_cnt), K(datum_store.get_row_cnt()), K(has_more)); } @@ -806,7 +807,8 @@ int ObDASScanResult::get_next_rows(int64_t &count, int64_t capacity) } } } else { - PRINT_VECTORIZED_ROWS(SQL, DEBUG, *eval_ctx_, *output_exprs_, count); + const ObBitVector *skip = NULL; + PRINT_VECTORIZED_ROWS(SQL, DEBUG, *eval_ctx_, *output_exprs_, count, skip); } LOG_DEBUG("das result next rows", K(enable_rich_format_), K(count), K(capacity), K(ret)); return ret; diff --git a/src/sql/das/ob_group_scan_iter.cpp b/src/sql/das/ob_group_scan_iter.cpp index 31d8adb76c..fad56d7756 100644 --- a/src/sql/das/ob_group_scan_iter.cpp +++ b/src/sql/das/ob_group_scan_iter.cpp @@ -285,7 +285,8 @@ int ObGroupScanIter::get_next_rows(int64_t &count, int64_t capacity) } } if (OB_SUCC(ret)) { - PRINT_VECTORIZED_ROWS(SQL, DEBUG, *row_store_.eval_ctx_, *row_store_.exprs_, storage_count); + const ObBitVector *skip = NULL; + PRINT_VECTORIZED_ROWS(SQL, DEBUG, *row_store_.eval_ctx_, *row_store_.exprs_, storage_count, skip); ObDatum *group_idx_batch = group_id_expr_->locate_batch_datums(*row_store_.eval_ctx_); int64_t i = 0; for (i = 0; i < storage_count; i++) { diff --git a/src/sql/engine/dml/ob_table_lock_op.cpp b/src/sql/engine/dml/ob_table_lock_op.cpp index ade08630c5..82952143d4 100644 --- a/src/sql/engine/dml/ob_table_lock_op.cpp +++ b/src/sql/engine/dml/ob_table_lock_op.cpp @@ -450,7 +450,8 @@ OB_INLINE int ObTableLockOp::get_next_batch_from_child(const int64_t max_row_cnt if (OB_FAIL(child_->get_next_batch(max_row_cnt, child_brs))) { LOG_WARN("fail to get next batch", K(ret)); } else if (OB_LIKELY(!child_brs->end_ && child_brs->size_ > 0)) { - LOG_TRACE("child output row", "row", ROWEXPR2STR(eval_ctx_, child_->get_spec().output_)); + PRINT_VECTORIZED_ROWS(SQL, TRACE, eval_ctx_, child_->get_spec().output_, child_brs->size_, + child_brs->skip_); } return ret; } diff --git a/src/sql/engine/expr/ob_expr.h b/src/sql/engine/expr/ob_expr.h index edd8a3f5ff..c12cc68c8e 100644 --- a/src/sql/engine/expr/ob_expr.h +++ b/src/sql/engine/expr/ob_expr.h @@ -1410,7 +1410,7 @@ inline const char *get_vectorized_row_str(ObEvalCtx &eval_ctx, return buffer; } -#define PRINT_VECTORIZED_ROWS(parMod, level, eval_ctx, exprs, batch_size, args...) \ +#define PRINT_VECTORIZED_ROWS(parMod, level, eval_ctx, exprs, batch_size, skip, args...) \ do { if (IS_LOG_ENABLED(level)) { \ [&](const char *_fun_name_) __attribute__((GET_LOG_FUNC_ATTR(level))) { \ if (OB_UNLIKELY(OB_LOGGER.need_to_print(::oceanbase::common::OB_LOG_ROOT::M_##parMod, \ @@ -1420,6 +1420,9 @@ inline const char *get_vectorized_row_str(ObEvalCtx &eval_ctx, ObEvalCtx::BatchInfoScopeGuard _batch_info_guard(eval_ctx); \ _batch_info_guard.set_batch_size(_batch_size); \ for (int64_t i = 0; i < _batch_size; ++i) { \ + if (NULL != skip && skip->at(i)) { \ + continue; \ + } \ _batch_info_guard.set_batch_idx(i); \ ::oceanbase::common::OB_PRINT("["#parMod"] ", OB_LOG_LEVEL(level), \ get_vectorized_row_str(eval_ctx, exprs, i), \ diff --git a/src/sql/engine/table/ob_index_lookup_op_impl.cpp b/src/sql/engine/table/ob_index_lookup_op_impl.cpp index 4f19276d6c..001ce282d4 100644 --- a/src/sql/engine/table/ob_index_lookup_op_impl.cpp +++ b/src/sql/engine/table/ob_index_lookup_op_impl.cpp @@ -157,7 +157,8 @@ int ObIndexLookupOpImpl::get_next_rows(int64_t &count, int64_t capacity) } else { got_next_row = true; update_state_in_output_rows_state(count); - PRINT_VECTORIZED_ROWS(SQL, DEBUG, get_eval_ctx(), get_output_expr(), count, + const ObBitVector *skip = NULL; + PRINT_VECTORIZED_ROWS(SQL, DEBUG, get_eval_ctx(), get_output_expr(), count, skip, K(ret), K(lookup_row_cnt_), K(lookup_rowkey_cnt_), K(lookup_group_cnt_), K(index_group_cnt_)); } diff --git a/src/sql/engine/table/ob_table_scan_op.cpp b/src/sql/engine/table/ob_table_scan_op.cpp index a7eab7bc9a..1007dff4ad 100644 --- a/src/sql/engine/table/ob_table_scan_op.cpp +++ b/src/sql/engine/table/ob_table_scan_op.cpp @@ -2102,7 +2102,8 @@ int ObTableScanOp::inner_get_next_batch_for_tsc(const int64_t max_row_cnt) if (OB_SUCC(ret)) { const ExprFixedArray &storage_output = MY_CTDEF.get_das_output_exprs(); if (!MY_SPEC.is_global_index_back()) { - PRINT_VECTORIZED_ROWS(SQL, DEBUG, eval_ctx_, storage_output, brs_.size_, K(MY_CTDEF.scan_ctdef_.ref_table_id_)); + PRINT_VECTORIZED_ROWS(SQL, DEBUG, eval_ctx_, storage_output, brs_.size_, brs_.skip_, + K(MY_CTDEF.scan_ctdef_.ref_table_id_)); } if (OB_FAIL(add_ddl_column_checksum_batch(brs_.size_))) { LOG_WARN("add ddl column checksum failed", K(ret));