zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

2022-09-22 mysql列存储引擎-Q16-DEBUG模式下获取数据为空

mysql引擎存储模式 2022 22 debug 09
2023-09-27 14:25:42 时间

 

摘要:

mysql列存储引擎-Q16-DEBUG模式下获取数据为空, 待定位

Q16上下文 2022-08-09 mysql/stonedb-慢SQL-Q16分析_帝尊悟世的博客-CSDN博客

问题代码:

int64_t VirtualColumnBase::GetMaxInt64(const core::MIIterator &mit) {
  int64_t res = GetMaxInt64Impl(mit);
  DEBUG_ASSERT(res != common::NULL_VALUE_64);
  if (Type().IsFloat()) {
    if (*(double *)&res > *(double *)&vc_max_val && vc_max_val != common::PLUS_INF_64 &&
        vc_max_val != common::NULL_VALUE_64)
      return vc_max_val;
  } else if ((vc_max_val != common::NULL_VALUE_64 && res > vc_max_val))
    return vc_max_val;
  return res;
}

int64_t VirtualColumnBase::GetMinInt64(const core::MIIterator &mit) {
  int64_t res = GetMinInt64Impl(mit);
  DEBUG_ASSERT(res != common::NULL_VALUE_64);
  if (Type().IsFloat()) {
    if (*(double *)&res < *(double *)&vc_min_val && vc_min_val != common::MINUS_INF_64 &&
        vc_min_val != common::NULL_VALUE_64)
      return vc_min_val;
  } else if ((vc_min_val != common::NULL_VALUE_64 && res < vc_min_val))
    return vc_min_val;
  return res;
}

获取数据为空行: