19 namespace target_info {
21 const bool bigint_count) {
34 is_varlen_projection};
36 const auto agg_type = agg_expr->get_aggtype();
37 const auto agg_arg = agg_expr->get_arg();
40 CHECK(!agg_expr->get_is_distinct());
52 if (agg_expr->get_aggtype() ==
kCOUNT) {
56 if (agg_type ==
kAVG) {
60 agg_expr->get_aggtype(),
71 agg_expr->get_aggtype(),
72 shared::is_any<kCOUNT, kCOUNT_IF>(agg_type)
74 : agg_expr->get_type_info(),
76 agg_type ==
kCOUNT && agg_arg_ti.is_varlen() ?
false : !agg_arg_ti.get_notnull(),
const Analyzer::Expr * agg_arg(const Analyzer::Expr *expr)
SQLTypeInfo get_logical_type_info(const SQLTypeInfo &type_info)
bool target_expr_has_varlen_projection(const Analyzer::Expr *target_expr)
bool is_varlen_projection(const Analyzer::Expr *target_expr, const SQLTypeInfo &ti)
const SQLTypeInfo & get_type_info() const
TargetInfo get_target_info_impl(const Analyzer::Expr *target_expr, const bool bigint_count)
const Analyzer::AggExpr * cast_to_agg_expr(const Analyzer::Expr *target_expr)
HOST DEVICE bool get_notnull() const
bool is_distinct(const size_t input_idx, const RelAlgNode *node)