stonedb icon indicating copy to clipboard operation
stonedb copied to clipboard

bug: Q16- The data obtained in DEBUG mode is null

Open adofsauron opened this issue 1 year ago • 0 comments

Describe the problem

Mysql column storage engine -q16 -debug mode The data obtained is empty and to be fixed


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;
}

Get data on a blank line:

image

SQL


select
	p_brand,
	p_type,
	p_size,
	count(distinct ps_suppkey) as supplier_cnt
from
	partsupp,
	part
where
	p_partkey = ps_partkey
	and p_brand <> 'Brand#45'
	and p_type not like 'MEDIUM POLISHED%'
	and p_size in (49,
	14,
	23,
	45,
	19,
	3,
	36,
	9)
	and ps_suppkey not in (
	select
		s_suppkey
	from
		supplier
	where
		s_comment like '%Customer%Complaints%' )
group by
	p_brand,
	p_type,
	p_size
order by
	supplier_cnt desc,
	p_brand,
	p_type,
	p_size;

Expected behavior

No response

How To Reproduce

No response

Environment

No response

Are you interested in submitting a PR to solve the problem?

  • [X] Yes, I will!

adofsauron avatar Sep 22 '22 14:09 adofsauron