Skip to content

Commit

Permalink
basic changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Ashleyhx committed Sep 14, 2023
1 parent 678055d commit 0938ee9
Show file tree
Hide file tree
Showing 24 changed files with 395 additions and 28 deletions.
26 changes: 14 additions & 12 deletions src/common/types/types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,7 @@ bool LogicalTypeUtils::isNumerical(const LogicalType& dataType) {
case LogicalTypeID::INT64:
case LogicalTypeID::INT32:
case LogicalTypeID::INT16:
case LogicalTypeID::INT8:
case LogicalTypeID::DOUBLE:
case LogicalTypeID::FLOAT:
case LogicalTypeID::SERIAL:
Expand All @@ -620,16 +621,17 @@ bool LogicalTypeUtils::isNumerical(const LogicalType& dataType) {
std::vector<LogicalType> LogicalTypeUtils::getAllValidComparableLogicalTypes() {
return std::vector<LogicalType>{LogicalType{LogicalTypeID::BOOL},
LogicalType{LogicalTypeID::INT64}, LogicalType{LogicalTypeID::INT32},
LogicalType{LogicalTypeID::INT16}, LogicalType{LogicalTypeID::DOUBLE},
LogicalType{LogicalTypeID::FLOAT}, LogicalType{LogicalTypeID::DATE},
LogicalType{LogicalTypeID::TIMESTAMP}, LogicalType{LogicalTypeID::INTERVAL},
LogicalType{LogicalTypeID::BLOB}, LogicalType{LogicalTypeID::STRING},
LogicalType{LogicalTypeID::SERIAL}};
LogicalType{LogicalTypeID::INT16}, LogicalType{LogicalTypeID::INT8},
LogicalType{LogicalTypeID::DOUBLE}, LogicalType{LogicalTypeID::FLOAT},
LogicalType{LogicalTypeID::DATE}, LogicalType{LogicalTypeID::TIMESTAMP},
LogicalType{LogicalTypeID::INTERVAL}, LogicalType{LogicalTypeID::BLOB},
LogicalType{LogicalTypeID::STRING}, LogicalType{LogicalTypeID::SERIAL}};
}

std::vector<LogicalTypeID> LogicalTypeUtils::getNumericalLogicalTypeIDs() {
return std::vector<LogicalTypeID>{LogicalTypeID::INT64, LogicalTypeID::INT32,
LogicalTypeID::INT16, LogicalTypeID::DOUBLE, LogicalTypeID::FLOAT, LogicalTypeID::SERIAL};
LogicalTypeID::INT16, LogicalTypeID::INT8, LogicalTypeID::DOUBLE, LogicalTypeID::FLOAT,
LogicalTypeID::SERIAL};
}

std::vector<LogicalType> LogicalTypeUtils::getAllValidLogicTypes() {
Expand All @@ -638,12 +640,12 @@ std::vector<LogicalType> LogicalTypeUtils::getAllValidLogicTypes() {
return std::vector<LogicalType>{LogicalType{LogicalTypeID::INTERNAL_ID},
LogicalType{LogicalTypeID::BOOL}, LogicalType{LogicalTypeID::INT64},
LogicalType{LogicalTypeID::INT32}, LogicalType{LogicalTypeID::INT16},
LogicalType{LogicalTypeID::DOUBLE}, LogicalType{LogicalTypeID::STRING},
LogicalType{LogicalTypeID::BLOB}, LogicalType{LogicalTypeID::DATE},
LogicalType{LogicalTypeID::TIMESTAMP}, LogicalType{LogicalTypeID::INTERVAL},
LogicalType{LogicalTypeID::VAR_LIST}, LogicalType{LogicalTypeID::FLOAT},
LogicalType{LogicalTypeID::SERIAL}, LogicalType{LogicalTypeID::NODE},
LogicalType{LogicalTypeID::REL}};
LogicalType{LogicalTypeID::INT8}, LogicalType{LogicalTypeID::DOUBLE},
LogicalType{LogicalTypeID::STRING}, LogicalType{LogicalTypeID::BLOB},
LogicalType{LogicalTypeID::DATE}, LogicalType{LogicalTypeID::TIMESTAMP},
LogicalType{LogicalTypeID::INTERVAL}, LogicalType{LogicalTypeID::VAR_LIST},
LogicalType{LogicalTypeID::FLOAT}, LogicalType{LogicalTypeID::SERIAL},
LogicalType{LogicalTypeID::NODE}, LogicalType{LogicalTypeID::REL}};
}

std::vector<std::string> LogicalTypeUtils::parseStructFields(const std::string& structTypeStr) {
Expand Down
13 changes: 13 additions & 0 deletions src/function/aggregate_function.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ std::unique_ptr<AggregateFunction> AggregateFunctionUtil::getAvgFunction(
return std::make_unique<AggregateFunction>(AvgFunction<int16_t>::initialize,
AvgFunction<int16_t>::updateAll, AvgFunction<int16_t>::updatePos,
AvgFunction<int16_t>::combine, AvgFunction<int16_t>::finalize, inputType, isDistinct);
case LogicalTypeID::INT8:
return std::make_unique<AggregateFunction>(AvgFunction<int8_t>::initialize,
AvgFunction<int8_t>::updateAll, AvgFunction<int8_t>::updatePos,
AvgFunction<int8_t>::combine, AvgFunction<int8_t>::finalize, inputType, isDistinct);
case LogicalTypeID::DOUBLE:
return std::make_unique<AggregateFunction>(AvgFunction<double_t>::initialize,
AvgFunction<double_t>::updateAll, AvgFunction<double_t>::updatePos,
Expand Down Expand Up @@ -73,6 +77,10 @@ std::unique_ptr<AggregateFunction> AggregateFunctionUtil::getSumFunction(
return std::make_unique<AggregateFunction>(SumFunction<int16_t>::initialize,
SumFunction<int16_t>::updateAll, SumFunction<int16_t>::updatePos,
SumFunction<int16_t>::combine, SumFunction<int16_t>::finalize, inputType, isDistinct);
case LogicalTypeID::INT8:
return std::make_unique<AggregateFunction>(SumFunction<int8_t>::initialize,
SumFunction<int8_t>::updateAll, SumFunction<int8_t>::updatePos,
SumFunction<int8_t>::combine, SumFunction<int8_t>::finalize, inputType, isDistinct);
case LogicalTypeID::DOUBLE:
return std::make_unique<AggregateFunction>(SumFunction<double_t>::initialize,
SumFunction<double_t>::updateAll, SumFunction<double_t>::updatePos,
Expand Down Expand Up @@ -129,6 +137,11 @@ std::unique_ptr<AggregateFunction> AggregateFunctionUtil::getMinMaxFunction(
MinMaxFunction<int16_t>::updateAll<FUNC>, MinMaxFunction<int16_t>::updatePos<FUNC>,
MinMaxFunction<int16_t>::combine<FUNC>, MinMaxFunction<int16_t>::finalize, inputType,
isDistinct);
case PhysicalTypeID::INT8:
return std::make_unique<AggregateFunction>(MinMaxFunction<int8_t>::initialize,
MinMaxFunction<int8_t>::updateAll<FUNC>, MinMaxFunction<int8_t>::updatePos<FUNC>,
MinMaxFunction<int8_t>::combine<FUNC>, MinMaxFunction<int8_t>::finalize, inputType,
isDistinct);
case PhysicalTypeID::DOUBLE:
return std::make_unique<AggregateFunction>(MinMaxFunction<double_t>::initialize,
MinMaxFunction<double_t>::updateAll<FUNC>, MinMaxFunction<double_t>::updatePos<FUNC>,
Expand Down
19 changes: 19 additions & 0 deletions src/function/built_in_vector_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ uint32_t BuiltInVectorFunctions::getCastCost(
return castInt32(targetTypeID);
case LogicalTypeID::INT16:
return castInt16(targetTypeID);
case LogicalTypeID::INT8:
return castInt8(targetTypeID);
case LogicalTypeID::DOUBLE:
return castDouble(targetTypeID);
case LogicalTypeID::FLOAT:
Expand All @@ -99,6 +101,9 @@ uint32_t BuiltInVectorFunctions::getCastCost(

uint32_t BuiltInVectorFunctions::getTargetTypeCost(LogicalTypeID typeID) {
switch (typeID) {
case LogicalTypeID::INT16: {
return 110;
}
case LogicalTypeID::INT32: {
return 103;
}
Expand Down Expand Up @@ -153,6 +158,19 @@ uint32_t BuiltInVectorFunctions::castInt16(LogicalTypeID targetTypeID) {
}
}

uint32_t BuiltInVectorFunctions::castInt8(LogicalTypeID targetTypeID) {
switch (targetTypeID) {
case LogicalTypeID::INT16:
case LogicalTypeID::INT32:
case LogicalTypeID::INT64:
case LogicalTypeID::FLOAT:
case LogicalTypeID::DOUBLE:
return getTargetTypeCost(targetTypeID);
default:
return UNDEFINED_CAST_COST;
}
}

uint32_t BuiltInVectorFunctions::castDouble(LogicalTypeID targetTypeID) {
switch (targetTypeID) {
default:
Expand Down Expand Up @@ -410,6 +428,7 @@ void BuiltInVectorFunctions::registerCastFunctions() {
vectorFunctions.insert({CAST_TO_INT64_FUNC_NAME, CastToInt64VectorFunction::getDefinitions()});
vectorFunctions.insert({CAST_TO_INT32_FUNC_NAME, CastToInt32VectorFunction::getDefinitions()});
vectorFunctions.insert({CAST_TO_INT16_FUNC_NAME, CastToInt16VectorFunction::getDefinitions()});
vectorFunctions.insert({CAST_TO_INT8_FUNC_NAME, CastToInt8VectorFunction::getDefinitions()});
}

void BuiltInVectorFunctions::registerListFunctions() {
Expand Down
5 changes: 5 additions & 0 deletions src/function/comparison_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ static void executeNestedOperation(uint8_t& result, ValueVector* leftVector,
rightVector->getValue<int16_t>(rightPos), result, nullptr /* left */,
nullptr /* right */);
} break;
case PhysicalTypeID::INT8: {
OP::operation(leftVector->getValue<int8_t>(leftPos),
rightVector->getValue<int8_t>(rightPos), result, nullptr /* left */,
nullptr /* right */);
} break;
case PhysicalTypeID::DOUBLE: {
OP::operation(leftVector->getValue<double_t>(leftPos),
rightVector->getValue<double_t>(rightPos), result, nullptr /* left */,
Expand Down
37 changes: 37 additions & 0 deletions src/function/vector_cast_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ std::string VectorCastFunction::bindImplicitCastFuncName(const LogicalType& dstT
return CAST_TO_INT32_FUNC_NAME;
case LogicalTypeID::INT16:
return CAST_TO_INT16_FUNC_NAME;
case LogicalTypeID::INT8:
return CAST_TO_INT8_FUNC_NAME;
case LogicalTypeID::FLOAT:
return CAST_TO_FLOAT_FUNC_NAME;
case LogicalTypeID::DOUBLE:
Expand All @@ -66,6 +68,10 @@ std::string VectorCastFunction::bindImplicitCastFuncName(const LogicalType& dstT
void VectorCastFunction::bindImplicitCastFunc(
LogicalTypeID sourceTypeID, LogicalTypeID targetTypeID, scalar_exec_func& func) {
switch (targetTypeID) {
case LogicalTypeID::INT8: {
bindImplicitNumericalCastFunc<int8_t, CastToInt8>(sourceTypeID, func);
return;

Check warning on line 73 in src/function/vector_cast_functions.cpp

View check run for this annotation

Codecov / codecov/patch

src/function/vector_cast_functions.cpp#L71-L73

Added lines #L71 - L73 were not covered by tests
}
case LogicalTypeID::INT16: {
bindImplicitNumericalCastFunc<int16_t, CastToInt16>(sourceTypeID, func);
return;
Expand Down Expand Up @@ -149,6 +155,9 @@ vector_function_definitions CastToStringVectorFunction::getDefinitions() {
result.push_back(make_unique<VectorFunctionDefinition>(CAST_TO_STRING_FUNC_NAME,
std::vector<LogicalTypeID>{LogicalTypeID::INT16}, LogicalTypeID::STRING,
UnaryCastExecFunction<int16_t, ku_string_t, CastToString>));
result.push_back(make_unique<VectorFunctionDefinition>(CAST_TO_STRING_FUNC_NAME,
std::vector<LogicalTypeID>{LogicalTypeID::INT8}, LogicalTypeID::STRING,
UnaryCastExecFunction<int8_t, ku_string_t, CastToString>));
result.push_back(make_unique<VectorFunctionDefinition>(CAST_TO_STRING_FUNC_NAME,
std::vector<LogicalTypeID>{LogicalTypeID::DOUBLE}, LogicalTypeID::STRING,
UnaryCastExecFunction<double_t, ku_string_t, CastToString>));
Expand Down Expand Up @@ -189,6 +198,8 @@ vector_function_definitions CastToBlobVectorFunction::getDefinitions() {

vector_function_definitions CastToDoubleVectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, double_t, CastToDouble>(
CAST_TO_DOUBLE_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::DOUBLE));
result.push_back(bindVectorFunction<int16_t, double_t, CastToDouble>(
CAST_TO_DOUBLE_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::DOUBLE));
result.push_back(bindVectorFunction<int32_t, double_t, CastToDouble>(
Expand All @@ -202,6 +213,8 @@ vector_function_definitions CastToDoubleVectorFunction::getDefinitions() {

vector_function_definitions CastToFloatVectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, float_t, CastToFloat>(
CAST_TO_FLOAT_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::FLOAT));
result.push_back(bindVectorFunction<int16_t, float_t, CastToFloat>(
CAST_TO_FLOAT_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::FLOAT));
result.push_back(bindVectorFunction<int32_t, float_t, CastToFloat>(
Expand All @@ -216,6 +229,8 @@ vector_function_definitions CastToFloatVectorFunction::getDefinitions() {

vector_function_definitions CastToSerialVectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, int64_t, CastToSerial>(
CAST_TO_SERIAL_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::SERIAL));
result.push_back(bindVectorFunction<int16_t, int64_t, CastToSerial>(
CAST_TO_SERIAL_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::SERIAL));
result.push_back(bindVectorFunction<int32_t, int64_t, CastToSerial>(
Expand All @@ -230,6 +245,8 @@ vector_function_definitions CastToSerialVectorFunction::getDefinitions() {

vector_function_definitions CastToInt64VectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, int64_t, CastToInt64>(
CAST_TO_INT64_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::INT64));
result.push_back(bindVectorFunction<int16_t, int64_t, CastToInt64>(
CAST_TO_INT64_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::INT64));
result.push_back(bindVectorFunction<int32_t, int64_t, CastToInt64>(
Expand All @@ -244,6 +261,8 @@ vector_function_definitions CastToInt64VectorFunction::getDefinitions() {

vector_function_definitions CastToInt32VectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, int32_t, CastToInt32>(
CAST_TO_INT32_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::INT32));
result.push_back(bindVectorFunction<int16_t, int32_t, CastToInt32>(
CAST_TO_INT32_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::INT32));
// down cast
Expand All @@ -258,6 +277,8 @@ vector_function_definitions CastToInt32VectorFunction::getDefinitions() {

vector_function_definitions CastToInt16VectorFunction::getDefinitions() {
vector_function_definitions result;
result.push_back(bindVectorFunction<int8_t, int16_t, CastToInt16>(
CAST_TO_INT16_FUNC_NAME, LogicalTypeID::INT8, LogicalTypeID::INT16));
// down cast
result.push_back(bindVectorFunction<int32_t, int16_t, CastToInt16>(
CAST_TO_INT16_FUNC_NAME, LogicalTypeID::INT32, LogicalTypeID::INT16));
Expand All @@ -270,5 +291,21 @@ vector_function_definitions CastToInt16VectorFunction::getDefinitions() {
return result;
}

vector_function_definitions CastToInt8VectorFunction::getDefinitions() {
vector_function_definitions result;
// down cast
result.push_back(bindVectorFunction<int16_t, int8_t, CastToInt8>(
CAST_TO_INT8_FUNC_NAME, LogicalTypeID::INT16, LogicalTypeID::INT8));
result.push_back(bindVectorFunction<int32_t, int8_t, CastToInt8>(
CAST_TO_INT8_FUNC_NAME, LogicalTypeID::INT32, LogicalTypeID::INT8));
result.push_back(bindVectorFunction<int64_t, int8_t, CastToInt8>(
CAST_TO_INT8_FUNC_NAME, LogicalTypeID::INT64, LogicalTypeID::INT8));
result.push_back(bindVectorFunction<float_t, int8_t, CastToInt8>(
CAST_TO_INT8_FUNC_NAME, LogicalTypeID::FLOAT, LogicalTypeID::INT8));
result.push_back(bindVectorFunction<double_t, int8_t, CastToInt8>(
CAST_TO_INT8_FUNC_NAME, LogicalTypeID::DOUBLE, LogicalTypeID::INT8));
return result;
}

Check warning on line 308 in src/function/vector_cast_functions.cpp

View check run for this annotation

Codecov / codecov/patch

src/function/vector_cast_functions.cpp#L308

Added line #L308 was not covered by tests

} // namespace function
} // namespace kuzu
3 changes: 3 additions & 0 deletions src/function/vector_hash_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ void VectorHashFunction::computeHash(ValueVector* operand, ValueVector* result)
case PhysicalTypeID::INT16: {
UnaryHashFunctionExecutor::execute<int16_t, hash_t>(*operand, *result);
} break;
case PhysicalTypeID::INT8: {
UnaryHashFunctionExecutor::execute<int8_t, hash_t>(*operand, *result);
} break;

Check warning on line 31 in src/function/vector_hash_functions.cpp

View check run for this annotation

Codecov / codecov/patch

src/function/vector_hash_functions.cpp#L29-L31

Added lines #L29 - L31 were not covered by tests
case PhysicalTypeID::DOUBLE: {
UnaryHashFunctionExecutor::execute<double, hash_t>(*operand, *result);
} break;
Expand Down
30 changes: 30 additions & 0 deletions src/function/vector_list_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ std::unique_ptr<FunctionBindData> ListExtractVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<list_entry_t, int64_t, int16_t, ListExtract>;
} break;
case PhysicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<list_entry_t, int64_t, int8_t, ListExtract>;
} break;
case PhysicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<list_entry_t, int64_t, double_t, ListExtract>;
Expand Down Expand Up @@ -233,6 +237,10 @@ std::unique_ptr<FunctionBindData> ListPrependVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<int16_t, list_entry_t, list_entry_t, ListPrepend>;
} break;
case PhysicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<int8_t, list_entry_t, list_entry_t, ListPrepend>;
} break;
case PhysicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
BinaryExecListStructFunction<double_t, list_entry_t, list_entry_t, ListPrepend>;
Expand Down Expand Up @@ -359,6 +367,9 @@ std::unique_ptr<FunctionBindData> ListSortVectorFunction::bindFunc(
case LogicalTypeID::INT16: {
getExecFunction<int16_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
case LogicalTypeID::INT8: {
getExecFunction<int8_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
case LogicalTypeID::DOUBLE: {
getExecFunction<double_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
Expand Down Expand Up @@ -430,6 +441,9 @@ std::unique_ptr<FunctionBindData> ListReverseSortVectorFunction::bindFunc(
case LogicalTypeID::INT16: {
getExecFunction<int16_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
case LogicalTypeID::INT8: {
getExecFunction<int8_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
case LogicalTypeID::DOUBLE: {
getExecFunction<double_t>(arguments, vectorFunctionDefinition->execFunc);
} break;
Expand Down Expand Up @@ -499,6 +513,10 @@ std::unique_ptr<FunctionBindData> ListSumVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int16_t, ListSum>;
} break;
case LogicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int8_t, ListSum>;
} break;
case LogicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, double_t, ListSum>;
Expand Down Expand Up @@ -539,6 +557,10 @@ std::unique_ptr<FunctionBindData> ListDistinctVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, list_entry_t, ListDistinct<int16_t>>;
} break;
case LogicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, list_entry_t, ListDistinct<int8_t>>;
} break;
case LogicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, list_entry_t, ListDistinct<double_t>>;
Expand Down Expand Up @@ -603,6 +625,10 @@ std::unique_ptr<FunctionBindData> ListUniqueVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int64_t, ListUnique<int16_t>>;
} break;
case LogicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int64_t, ListUnique<int8_t>>;
} break;
case LogicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int64_t, ListUnique<double_t>>;
Expand Down Expand Up @@ -668,6 +694,10 @@ std::unique_ptr<FunctionBindData> ListAnyValueVectorFunction::bindFunc(
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int16_t, ListAnyValue>;
} break;
case LogicalTypeID::INT8: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, int8_t, ListAnyValue>;
} break;
case LogicalTypeID::DOUBLE: {
vectorFunctionDefinition->execFunc =
UnaryExecListStructFunction<list_entry_t, double_t, ListAnyValue>;
Expand Down
1 change: 1 addition & 0 deletions src/include/common/expression_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const std::string CAST_TO_SERIAL_FUNC_NAME = "TO_SERIAL";
const std::string CAST_TO_INT64_FUNC_NAME = "TO_INT64";
const std::string CAST_TO_INT32_FUNC_NAME = "TO_INT32";
const std::string CAST_TO_INT16_FUNC_NAME = "TO_INT16";
const std::string CAST_TO_INT8_FUNC_NAME = "TO_INT8";
const std::string CAST_TO_BLOB_FUNC_NAME = "BLOB";

// list
Expand Down
Loading

0 comments on commit 0938ee9

Please sign in to comment.