尚硅谷是一家专注于IT技术培训的公司,其中MySQL核心技术源码是其课程之一。
通过学习MySQL核心技术源码,我们不仅能够全面了解MySQL的实现原理,更能够深入了解数据库及其应用。
class Item_sum_count_distinct :public Item_sum_sum {
public:
Item_sum_count_distinct(THD *thd, Item *a):Item_sum_sum(thd, a){};
const char *func_name() const override { return "COUNT(DISTINCT)"; }
Query_result_summary *prepare_summary_for_group_exec() override;
void fix_length_and_dec() override;
double val_real() override;
longlong val_int() override;
String *val_str(String *str) override;
bool is_null() override { return value == 0; }
void set_null() override { value= 0; reset_field(); }
protected:
Query_result_distinct_loop *m_distinct_query_result;
Query_result *m_sub_query_result;
THD *m_thd;
bool m_subselect_done;
};
以上是源码中部分代码,展示了Item_sum_count_distinct类的定义及部分成员函数的实现。
MySQL核心技术源码的学习,对于从事数据库开发和运维的同学来说,是非常有帮助的。