Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
149 changes: 19 additions & 130 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ endif()

set(DUCKDB_INCLUDE_DIRS
src/duckdb/extension/core_functions/include
src/duckdb/extension/icu/collation/include
src/duckdb/extension/icu/datetime/include
src/duckdb/extension/icu/include
src/duckdb/extension/icu/third_party/icu/common
src/duckdb/extension/icu/third_party/icu/i18n
src/duckdb/extension/json/include
src/duckdb/extension/parquet/include
src/duckdb/src/include
Expand Down Expand Up @@ -102,6 +102,23 @@ set(DUCKDB_SRC_FILES
src/duckdb/extension/core_functions/scalar/enum/enum_functions.cpp
src/duckdb/extension/core_functions/scalar/math/numeric.cpp
src/duckdb/extension/core_functions/scalar/operators/bitwise.cpp
src/duckdb/extension/icu/collation/collation_collator.cpp
src/duckdb/extension/icu/collation/collation_loader.cpp
src/duckdb/extension/icu/collation/collation_normalizer.cpp
src/duckdb/extension/icu/collation/generated/collation_data.cpp
src/duckdb/extension/icu/datetime/astronomy.cpp
src/duckdb/extension/icu/datetime/calendar.cpp
src/duckdb/extension/icu/datetime/chinese.cpp
src/duckdb/extension/icu/datetime/coptic.cpp
src/duckdb/extension/icu/datetime/generated/tz_data.cpp
src/duckdb/extension/icu/datetime/grego.cpp
src/duckdb/extension/icu/datetime/gregorian.cpp
src/duckdb/extension/icu/datetime/hebrew.cpp
src/duckdb/extension/icu/datetime/islamic.cpp
src/duckdb/extension/icu/datetime/japanese.cpp
src/duckdb/extension/icu/datetime/persian.cpp
src/duckdb/extension/icu/datetime/timezone.cpp
src/duckdb/extension/icu/datetime/tz_loader.cpp
src/duckdb/extension/icu/icu-current.cpp
src/duckdb/extension/icu/icu-dateadd.cpp
src/duckdb/extension/icu/icu-datefunc.cpp
Expand All @@ -115,132 +132,6 @@ set(DUCKDB_SRC_FILES
src/duckdb/extension/icu/icu-timebucket.cpp
src/duckdb/extension/icu/icu-timezone.cpp
src/duckdb/extension/icu/icu_extension.cpp
src/duckdb/extension/icu/third_party/icu/common/bytestriebuilder.cpp
src/duckdb/extension/icu/third_party/icu/common/loadednormalizer2impl.cpp
src/duckdb/extension/icu/third_party/icu/common/localebuilder.cpp
src/duckdb/extension/icu/third_party/icu/common/locdistance.cpp
src/duckdb/extension/icu/third_party/icu/common/loclikelysubtags.cpp
src/duckdb/extension/icu/third_party/icu/common/locmap.cpp
src/duckdb/extension/icu/third_party/icu/common/putil.cpp
src/duckdb/extension/icu/third_party/icu/common/static_unicode_sets.cpp
src/duckdb/extension/icu/third_party/icu/common/ubidi_props.cpp
src/duckdb/extension/icu/third_party/icu/common/ubiditransform.cpp
src/duckdb/extension/icu/third_party/icu/common/ucase.cpp
src/duckdb/extension/icu/third_party/icu/common/ucharstriebuilder.cpp
src/duckdb/extension/icu/third_party/icu/common/ucptrie.cpp
src/duckdb/extension/icu/third_party/icu/common/uhash.cpp
src/duckdb/extension/icu/third_party/icu/common/uloc.cpp
src/duckdb/extension/icu/third_party/icu/common/umapfile.cpp
src/duckdb/extension/icu/third_party/icu/common/umutablecptrie.cpp
src/duckdb/extension/icu/third_party/icu/common/unames.cpp
src/duckdb/extension/icu/third_party/icu/common/unifiedcache.cpp
src/duckdb/extension/icu/third_party/icu/common/unormcmp.cpp
src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp
src/duckdb/extension/icu/third_party/icu/common/uresdata.cpp
src/duckdb/extension/icu/third_party/icu/common/uscript_props.cpp
src/duckdb/extension/icu/third_party/icu/common/ustrcase.cpp
src/duckdb/extension/icu/third_party/icu/common/utrie.cpp
src/duckdb/extension/icu/third_party/icu/common/utrie2.cpp
src/duckdb/extension/icu/third_party/icu/common/utrie2_builder.cpp
src/duckdb/extension/icu/third_party/icu/common/uvector.cpp
src/duckdb/extension/icu/third_party/icu/common/wintz.cpp
src/duckdb/extension/icu/third_party/icu/i18n/buddhcal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/calendar.cpp
src/duckdb/extension/icu/third_party/icu/i18n/cecal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/chnsecal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/choicfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/collationroot.cpp
src/duckdb/extension/icu/third_party/icu/i18n/compactdecimalformat.cpp
src/duckdb/extension/icu/third_party/icu/i18n/coptccal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/currpinf.cpp
src/duckdb/extension/icu/third_party/icu/i18n/dayperiodrules.cpp
src/duckdb/extension/icu/third_party/icu/i18n/decNumber.cpp
src/duckdb/extension/icu/third_party/icu/i18n/decimfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-bignum-dtoa.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-bignum.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-cached-powers.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-double-to-string.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-fast-dtoa.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-string-to-double.cpp
src/duckdb/extension/icu/third_party/icu/i18n/double-conversion-strtod.cpp
src/duckdb/extension/icu/third_party/icu/i18n/dtfmtsym.cpp
src/duckdb/extension/icu/third_party/icu/i18n/dtitvfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/dtptngen.cpp
src/duckdb/extension/icu/third_party/icu/i18n/ethpccal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/fmtable.cpp
src/duckdb/extension/icu/third_party/icu/i18n/formattedval_sbimpl.cpp
src/duckdb/extension/icu/third_party/icu/i18n/gregocal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/gregoimp.cpp
src/duckdb/extension/icu/third_party/icu/i18n/hebrwcal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/indiancal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/islamcal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/iso8601cal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/japancal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/measfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/measunit_extra.cpp
src/duckdb/extension/icu/third_party/icu/i18n/msgfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/nfrs.cpp
src/duckdb/extension/icu/third_party/icu/i18n/nfrule.cpp
src/duckdb/extension/icu/third_party/icu/i18n/nfsubs.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_asformat.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_capi.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_compact.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_currencysymbols.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_decimalquantity.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_fluent.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_formatimpl.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_grouping.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_integerwidth.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_longnames.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_mapper.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_multiplier.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_output.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_patternmodifier.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_patternstring.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_rounding.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_scientific.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_simple.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_skeletons.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_symbolswrapper.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_usageprefs.cpp
src/duckdb/extension/icu/third_party/icu/i18n/number_utils.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_affixes.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_compositions.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_currency.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_decimal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_impl.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_parsednumber.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_scientific.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_symbols.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numparse_validators.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numrange_capi.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numrange_fluent.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numrange_impl.cpp
src/duckdb/extension/icu/third_party/icu/i18n/numsys.cpp
src/duckdb/extension/icu/third_party/icu/i18n/persncal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/pluralranges.cpp
src/duckdb/extension/icu/third_party/icu/i18n/plurfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/plurrule.cpp
src/duckdb/extension/icu/third_party/icu/i18n/quantityformatter.cpp
src/duckdb/extension/icu/third_party/icu/i18n/rbnf.cpp
src/duckdb/extension/icu/third_party/icu/i18n/smpdtfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/string_segment.cpp
src/duckdb/extension/icu/third_party/icu/i18n/taiwncal.cpp
src/duckdb/extension/icu/third_party/icu/i18n/timezone.cpp
src/duckdb/extension/icu/third_party/icu/i18n/tmutfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/tzgnames.cpp
src/duckdb/extension/icu/third_party/icu/i18n/ucol.cpp
src/duckdb/extension/icu/third_party/icu/i18n/ucol_res.cpp
src/duckdb/extension/icu/third_party/icu/i18n/units_complexconverter.cpp
src/duckdb/extension/icu/third_party/icu/i18n/units_data.cpp
src/duckdb/extension/icu/third_party/icu/i18n/units_router.cpp
src/duckdb/extension/icu/third_party/icu/i18n/upluralrules.cpp
src/duckdb/extension/icu/third_party/icu/i18n/vtzone.cpp
src/duckdb/extension/icu/third_party/icu/i18n/windtfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/winnmfmt.cpp
src/duckdb/extension/icu/third_party/icu/i18n/wintzimpl.cpp
src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp
src/duckdb/extension/json/json_common.cpp
src/duckdb/extension/json/json_deserializer.cpp
src/duckdb/extension/json/json_enums.cpp
Expand Down Expand Up @@ -476,8 +367,6 @@ set(DUCKDB_SRC_FILES
src/duckdb/ub_extension_core_functions_scalar_string.cpp
src/duckdb/ub_extension_core_functions_scalar_struct.cpp
src/duckdb/ub_extension_core_functions_scalar_union.cpp
src/duckdb/ub_extension_icu_third_party_icu_common.cpp
src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp
src/duckdb/ub_extension_json_json_functions.cpp
src/duckdb/ub_extension_parquet_decoder.cpp
src/duckdb/ub_extension_parquet_reader.cpp
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
#include "core_functions/aggregate/distributive_functions.hpp"
#include "duckdb/common/exception.hpp"
#include "duckdb/common/operator/comparison_operators.hpp"
#include "duckdb/common/smaller_binary.hpp"
#include "duckdb/common/vector_operations/vector_operations.hpp"
#include "core_functions/aggregate/distributive_functions.hpp"
#include "duckdb/function/aggregate/minmax_n_helpers.hpp"
#include "duckdb/function/cast/cast_function_set.hpp"
#include "duckdb/function/create_sort_key.hpp"
#include "duckdb/function/function_set.hpp"
#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
#include "duckdb/planner/expression/bound_comparison_expression.hpp"
#include "duckdb/planner/expression_binder.hpp"
#include "duckdb/function/create_sort_key.hpp"
#include "duckdb/function/aggregate/minmax_n_helpers.hpp"

namespace duckdb {

Expand Down Expand Up @@ -417,7 +418,7 @@ AggregateFunction GetGenericArgMinMaxFunction(const ArgMinMaxNullHandling null_h
template <class OP, class ARG_TYPE, class BY_TYPE>
AggregateFunction GetVectorArgMinMaxFunctionInternal(const LogicalType &by_type, const LogicalType &type,
const ArgMinMaxNullHandling null_handling) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
using STATE = ArgMinMaxVectorState<OP::ORDER, BY_TYPE>;
auto bind = GetBindFunction<OP>(null_handling);
auto function = AggregateFunction({type, by_type}, type, AggregateFunction::StateSize<STATE>,
Expand All @@ -435,7 +436,7 @@ AggregateFunction GetVectorArgMinMaxFunctionInternal(const LogicalType &by_type,
#endif
}

#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
template <class OP, class ARG_TYPE>
AggregateFunction GetVectorArgMinMaxFunctionBy(const LogicalType &by_type, const LogicalType &type,
const ArgMinMaxNullHandling null_handling) {
Expand Down Expand Up @@ -468,7 +469,7 @@ void AddVectorArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType &
const ArgMinMaxNullHandling null_handling) {
auto by_types = ArgMaxByTypes();
for (const auto &by_type : by_types) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
fun.AddFunction(GetVectorArgMinMaxFunctionBy<OP, ARG_TYPE>(by_type, type, null_handling));
#else
fun.AddFunction(GetVectorArgMinMaxFunctionInternal<OP, string_t, string_t>(by_type, type, null_handling));
Expand All @@ -479,7 +480,7 @@ void AddVectorArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType &
template <class OP, class ARG_TYPE, class BY_TYPE>
AggregateFunction GetArgMinMaxFunctionInternal(const LogicalType &by_type, const LogicalType &type,
const ArgMinMaxNullHandling null_handling) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
using STATE = ArgMinMaxState<ARG_TYPE, BY_TYPE>;
auto function = AggregateFunction::BinaryAggregate<STATE, ARG_TYPE, BY_TYPE, ARG_TYPE, OP>(type, by_type, type);
function.SetBindCallback(GetBindFunction<OP>(null_handling));
Expand All @@ -492,7 +493,7 @@ AggregateFunction GetArgMinMaxFunctionInternal(const LogicalType &by_type, const
return function;
}

#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
template <class OP, class ARG_TYPE>
AggregateFunction GetArgMinMaxFunctionBy(const LogicalType &by_type, const LogicalType &type,
const ArgMinMaxNullHandling null_handling) {
Expand All @@ -517,7 +518,7 @@ template <class OP, class ARG_TYPE>
void AddArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType &type, ArgMinMaxNullHandling null_handling) {
auto by_types = ArgMaxByTypes();
for (const auto &by_type : by_types) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
fun.AddFunction(GetArgMinMaxFunctionBy<OP, ARG_TYPE>(by_type, type, null_handling));
#else
fun.AddFunction(GetArgMinMaxFunctionInternal<OP, string_t, string_t>(by_type, type, null_handling));
Expand All @@ -529,7 +530,7 @@ template <class OP>
AggregateFunction GetDecimalArgMinMaxFunction(const LogicalType &by_type, const LogicalType &type,
ArgMinMaxNullHandling null_handling) {
D_ASSERT(type.id() == LogicalTypeId::DECIMAL);
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
switch (type.InternalType()) {
case PhysicalType::INT16:
return GetArgMinMaxFunctionBy<OP, int16_t>(by_type, type, null_handling);
Expand Down Expand Up @@ -617,7 +618,7 @@ void AddGenericArgMinMaxFunction(AggregateFunctionSet &fun, const ArgMinMaxNullH
template <class COMPARATOR, OrderType ORDER_TYPE>
void AddArgMinMaxFunctions(AggregateFunctionSet &fun, const ArgMinMaxNullHandling null_handling) {
using GENERIC_VECTOR_OP = VectorArgMinMaxBase<LessThan, ORDER_TYPE, GenericArgMinMaxState<ORDER_TYPE>>;
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_types)
using OP = ArgMinMaxBase<COMPARATOR>;
using VECTOR_OP = VectorArgMinMaxBase<COMPARATOR, ORDER_TYPE>;
#else
Expand Down Expand Up @@ -759,7 +760,7 @@ void SpecializeArgMinMaxNFunction(BoundAggregateFunction &function) {
template <class VAL_TYPE, class COMPARATOR>
void SpecializeArgMinMaxNFunction(PhysicalType arg_type, BoundAggregateFunction &function) {
switch (arg_type) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_n_types)
case PhysicalType::VARCHAR:
SpecializeArgMinMaxNFunction<VAL_TYPE, MinMaxStringValue, COMPARATOR>(function);
break;
Expand All @@ -785,7 +786,7 @@ void SpecializeArgMinMaxNFunction(PhysicalType arg_type, BoundAggregateFunction
template <class COMPARATOR>
void SpecializeArgMinMaxNFunction(PhysicalType val_type, PhysicalType arg_type, BoundAggregateFunction &function) {
switch (val_type) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_n_types)
case PhysicalType::VARCHAR:
SpecializeArgMinMaxNFunction<MinMaxStringValue, COMPARATOR>(arg_type, function);
break;
Expand Down Expand Up @@ -824,7 +825,7 @@ void SpecializeArgMinMaxNullNFunction(BoundAggregateFunction &function) {
template <class VAL_TYPE, bool NULLS_LAST, class COMPARATOR>
void SpecializeArgMinMaxNullNFunction(PhysicalType arg_type, BoundAggregateFunction &function) {
switch (arg_type) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_n_types)
case PhysicalType::VARCHAR:
SpecializeArgMinMaxNullNFunction<VAL_TYPE, MinMaxFallbackValue, COMPARATOR>(function);
break;
Expand All @@ -850,7 +851,7 @@ void SpecializeArgMinMaxNullNFunction(PhysicalType arg_type, BoundAggregateFunct
template <bool NULLS_LAST, class COMPARATOR>
void SpecializeArgMinMaxNullNFunction(PhysicalType val_type, PhysicalType arg_type, BoundAggregateFunction &function) {
switch (val_type) {
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(arg_min_max_n_types)
case PhysicalType::VARCHAR:
SpecializeArgMinMaxNullNFunction<MinMaxFallbackValue, NULLS_LAST, COMPARATOR>(arg_type, function);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,10 @@ void ApproxQuantileImportState(AggregateImportInputData &input) {
if (!count_entry.IsValid() || !min_entry.IsValid() || !max_entry.IsValid() || !centroid_list.IsValid()) {
throw InvalidInputException("Invalid approx_quantile state - the state fields cannot be NULL");
}
if (count_entry.GetValue() != 0 && centroid_list.GetListLength() == 0) {
throw InvalidInputException(
"Invalid approx_quantile state - non-zero count requires at least one centroid");
}
arena_vector<duckdb_tdigest::Centroid> centroids(input.allocator);
centroids.reserve(centroid_list.GetListLength());
for (const auto centroid_entry : centroid_list.GetChildValues()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include "core_functions/aggregate/holistic_functions.hpp"
#include "duckdb/planner/expression.hpp"
#include "duckdb/common/operator/cast_operators.hpp"
#include "core_functions/aggregate/quantile_state.hpp"
#include "duckdb/common/operator/abs.hpp"
#include "duckdb/common/operator/cast_operators.hpp"
#include "duckdb/common/operator/subtract.hpp"
#include "core_functions/aggregate/quantile_state.hpp"
#include "duckdb/common/smaller_binary.hpp"
#include "duckdb/planner/expression.hpp"

namespace duckdb {

Expand Down Expand Up @@ -276,7 +277,7 @@ AggregateFunction GetTypedMedianAbsoluteDeviationAggregateFunction(const Logical
fun.SetBindCallback(BindMAD);
fun.SetStructStateExport(QuantileStateLayout<STATE>);
fun.SetOrderDependent(AggregateOrderDependent::NOT_ORDER_DEPENDENT);
#ifndef DUCKDB_SMALLER_BINARY
#if !DUCKDB_SMALLER_BINARY(mad_window)
fun.SetWindowBatchCallback(OP::template Window<STATE, INPUT_TYPE, TARGET_TYPE>);
fun.SetWindowInitCallback(OP::template WindowInit<STATE, INPUT_TYPE>);
#endif
Expand Down
Loading
Loading