[refactor](functioncontext) remove function context impl class (#17715)

* [refactor](functioncontext) remove function context impl class


Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: yiguolei <yiguolei@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
yiguolei
2023-03-14 11:21:45 +08:00
committed by GitHub
parent 3a97190661
commit 77ab2fac20
17 changed files with 146 additions and 238 deletions

View File

@ -16,7 +16,7 @@
// under the License.
#include "runtime/runtime_state.h"
#include "udf/udf_internal.h"
#include "udf/udf.h"
#include "vec/columns/column_const.h"
#include "vec/columns/column_nullable.h"
#include "vec/columns/column_string.h"
@ -117,8 +117,7 @@ struct StrToDate {
null_map[i] = 1;
}
if constexpr (std::is_same_v<DateValueType, VecDateTimeValue>) {
if (context->impl()->get_return_type().type ==
doris::PrimitiveType::TYPE_DATETIME) {
if (context->get_return_type().type == doris::PrimitiveType::TYPE_DATETIME) {
ts_val.to_datetime();
} else {
ts_val.cast_to_date();
@ -399,7 +398,7 @@ struct UnixTimeStampImpl {
size_t input_rows_count) {
auto col_result = ColumnVector<Int32>::create();
col_result->resize(1);
col_result->get_data()[0] = context->impl()->state()->timestamp_ms() / 1000;
col_result->get_data()[0] = context->state()->timestamp_ms() / 1000;
auto col_const = ColumnConst::create(std::move(col_result), input_rows_count);
block.replace_by_position(result, std::move(col_const));
return Status::OK();
@ -438,8 +437,7 @@ struct UnixTimeStampDateImpl {
const VecDateTimeValue& ts_value =
reinterpret_cast<const VecDateTimeValue&>(*source.data);
int64_t timestamp;
if (!ts_value.unix_timestamp(&timestamp,
context->impl()->state()->timezone_obj())) {
if (!ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj())) {
null_map_data[i] = true;
} else {
null_map_data[i] = false;
@ -464,8 +462,7 @@ struct UnixTimeStampDateImpl {
const DateV2Value<DateV2ValueType>& ts_value =
reinterpret_cast<const DateV2Value<DateV2ValueType>&>(*source.data);
int64_t timestamp;
if (!ts_value.unix_timestamp(&timestamp,
context->impl()->state()->timezone_obj())) {
if (!ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj())) {
null_map_data[i] = true;
} else {
null_map_data[i] = false;
@ -481,8 +478,8 @@ struct UnixTimeStampDateImpl {
const DateV2Value<DateV2ValueType>& ts_value =
reinterpret_cast<const DateV2Value<DateV2ValueType>&>(*source.data);
int64_t timestamp;
const auto valid = ts_value.unix_timestamp(
&timestamp, context->impl()->state()->timezone_obj());
const auto valid =
ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj());
DCHECK(valid);
col_result_data[i] = UnixTimeStampImpl::trim_timestamp(timestamp);
}
@ -504,8 +501,7 @@ struct UnixTimeStampDateImpl {
const DateV2Value<DateTimeV2ValueType>& ts_value =
reinterpret_cast<const DateV2Value<DateTimeV2ValueType>&>(*source.data);
int64_t timestamp;
if (!ts_value.unix_timestamp(&timestamp,
context->impl()->state()->timezone_obj())) {
if (!ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj())) {
null_map_data[i] = true;
} else {
null_map_data[i] = false;
@ -521,8 +517,8 @@ struct UnixTimeStampDateImpl {
const DateV2Value<DateTimeV2ValueType>& ts_value =
reinterpret_cast<const DateV2Value<DateTimeV2ValueType>&>(*source.data);
int64_t timestamp;
const auto valid = ts_value.unix_timestamp(
&timestamp, context->impl()->state()->timezone_obj());
const auto valid =
ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj());
DCHECK(valid);
col_result_data[i] = UnixTimeStampImpl::trim_timestamp(timestamp);
}
@ -579,7 +575,7 @@ struct UnixTimeStampStrImpl {
}
int64_t timestamp;
if (!ts_value.unix_timestamp(&timestamp, context->impl()->state()->timezone_obj())) {
if (!ts_value.unix_timestamp(&timestamp, context->state()->timezone_obj())) {
null_map_data[i] = true;
} else {
null_map_data[i] = false;