Files
doris/be/src/vec/CMakeLists.txt
gitccl 20b3bdb000 [vectorized](function) support array_first_index function (#18175)
mysql> select array_first_index(x->x+1>3, [2, 3, 4]);
+-------------------------------------------------------------------+
| array_first_index(array_map([x] -> x(0) + 1 > 3, ARRAY(2, 3, 4))) |
+-------------------------------------------------------------------+
|                                                                 2 |
+-------------------------------------------------------------------+

mysql> select array_first_index(x -> x is null, [null, 1, 2]);
+----------------------------------------------------------------------+
| array_first_index(array_map([x] -> x(0) IS NULL, ARRAY(NULL, 1, 2))) |
+----------------------------------------------------------------------+
|                                                                    1 |
+----------------------------------------------------------------------+

mysql> select array_first_index(x->power(x,2)>10, [1, 2, 3, 4]);
+---------------------------------------------------------------------------------+
| array_first_index(array_map([x] -> power(x(0), 2.0) > 10.0, ARRAY(1, 2, 3, 4))) |
+---------------------------------------------------------------------------------+
|                                                                               4 |
+---------------------------------------------------------------------------------+
2023-03-31 12:51:29 +08:00

342 lines
12 KiB
CMake

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# where to put generated libraries
set(LIBRARY_OUTPUT_PATH "${BUILD_DIR}/src/vec")
# where to put generated binaries
set(EXECUTABLE_OUTPUT_PATH "${BUILD_DIR}/src/vec")
set(VEC_FILES
aggregate_functions/aggregate_function_sequence_match.cpp
aggregate_functions/aggregate_function_retention.cpp
aggregate_functions/aggregate_function_window_funnel.cpp
aggregate_functions/aggregate_function_avg.cpp
aggregate_functions/aggregate_function_collect.cpp
aggregate_functions/aggregate_function_count.cpp
aggregate_functions/aggregate_function_distinct.cpp
aggregate_functions/aggregate_function_sum.cpp
aggregate_functions/aggregate_function_sort.cpp
aggregate_functions/aggregate_function_min_max.cpp
aggregate_functions/aggregate_function_min_max_by.cpp
aggregate_functions/aggregate_function_uniq.cpp
aggregate_functions/aggregate_function_hll_union_agg.cpp
aggregate_functions/aggregate_function_bit.cpp
aggregate_functions/aggregate_function_bitmap.cpp
aggregate_functions/aggregate_function_reader.cpp
aggregate_functions/aggregate_function_window.cpp
aggregate_functions/aggregate_function_stddev.cpp
aggregate_functions/aggregate_function_topn.cpp
aggregate_functions/aggregate_function_approx_count_distinct.cpp
aggregate_functions/aggregate_function_group_concat.cpp
aggregate_functions/aggregate_function_percentile_approx.cpp
aggregate_functions/aggregate_function_simple_factory.cpp
aggregate_functions/aggregate_function_orthogonal_bitmap.cpp
aggregate_functions/aggregate_function_avg_weighted.cpp
aggregate_functions/aggregate_function_histogram.cpp
aggregate_functions/aggregate_function_quantile_state.cpp
columns/column.cpp
columns/column_array.cpp
columns/column_struct.cpp
columns/column_const.cpp
columns/column_decimal.cpp
columns/column_nullable.cpp
columns/column_string.cpp
columns/column_vector.cpp
columns/column_map.cpp
columns/columns_common.cpp
columns/column_object.cpp
json/json_parser.cpp
json/parse2column.cpp
json/path_in_data.cpp
common/schema_util.cpp
common/demangle.cpp
common/mremap.cpp
common/pod_array.cpp
common/string_ref.cpp
common/sort/heap_sorter.cpp
common/sort/sorter.cpp
common/sort/topn_sorter.cpp
common/sort/vsort_exec_exprs.cpp
common/string_utils/string_utils.cpp
common/hex.cpp
core/block.cpp
core/block_spill_reader.cpp
core/block_spill_writer.cpp
core/column_with_type_and_name.cpp
core/field.cpp
core/field.cpp
core/sort_block.cpp
core/materialize_block.cpp
data_types/data_type.cpp
data_types/data_type_array.cpp
data_types/data_type_struct.cpp
data_types/data_type_bitmap.cpp
data_types/data_type_factory.cpp
data_types/data_type_fixed_length_object.cpp
data_types/data_type_hll.cpp
data_types/data_type_nothing.cpp
data_types/data_type_nothing.cpp
data_types/data_type_nullable.cpp
data_types/data_type_nullable.cpp
data_types/data_type_number_base.cpp
data_types/data_type_string.cpp
data_types/data_type_decimal.cpp
data_types/data_type_map.cpp
data_types/data_type_quantilestate.cpp
data_types/get_least_supertype.cpp
data_types/convert_field_to_type.cpp
data_types/nested_utils.cpp
data_types/data_type_date.cpp
data_types/data_type_date_time.cpp
data_types/data_type_time_v2.cpp
data_types/data_type_jsonb.cpp
data_types/data_type_time.cpp
data_types/data_type_object.cpp
exec/vaggregation_node.cpp
exec/varrow_scanner.cpp
exec/vsort_node.cpp
exec/vexchange_node.cpp
exec/vset_operation_node.cpp
exec/vunion_node.cpp
exec/vselect_node.cpp
exec/vschema_scan_node.cpp
exec/vempty_set_node.cpp
exec/vanalytic_eval_node.cpp
exec/vassert_num_rows_node.cpp
exec/vrepeat_node.cpp
exec/vtable_function_node.cpp
exec/vjdbc_connector.cpp
exec/vparquet_scanner.cpp
exec/join/vhash_join_node.cpp
exec/join/vjoin_node_base.cpp
exec/join/vnested_loop_join_node.cpp
exec/join/inner_join_impl.cpp
exec/join/left_semi_join_impl.cpp
exec/join/left_anti_join_impl.cpp
exec/join/left_outer_join_impl.cpp
exec/join/full_outer_join_impl.cpp
exec/join/right_outer_join_impl.cpp
exec/join/cross_join_impl.cpp
exec/join/right_semi_join_impl.cpp
exec/join/right_anti_join_impl.cpp
exec/join/null_aware_left_anti_join_impl.cpp
exec/data_gen_functions/vnumbers_tvf.cpp
exec/vdata_gen_scan_node.cpp
exprs/vectorized_agg_fn.cpp
exprs/vectorized_fn_call.cpp
exprs/vexpr.cpp
exprs/vexpr_context.cpp
exprs/vliteral.cpp
exprs/varray_literal.cpp
exprs/vmap_literal.cpp
exprs/vstruct_literal.cpp
exprs/vin_predicate.cpp
exprs/vbloom_predicate.cpp
exprs/vbitmap_predicate.cpp
exprs/vruntimefilter_wrapper.cpp
exprs/vtuple_is_null_predicate.cpp
exprs/vslot_ref.cpp
exprs/vcast_expr.cpp
exprs/vcase_expr.cpp
exprs/vinfo_func.cpp
exprs/vschema_change_expr.cpp
exprs/table_function/table_function_factory.cpp
exprs/table_function/vexplode.cpp
exprs/table_function/vexplode_split.cpp
exprs/table_function/vexplode_numbers.cpp
exprs/table_function/vexplode_bitmap.cpp
exprs/lambda_function/varray_map_function.cpp
exprs/lambda_function/varray_filter_function.cpp
functions/array/function_array_index.cpp
functions/array/function_array_element.cpp
functions/array/function_array_register.cpp
functions/array/function_array_size.cpp
functions/array/function_array_aggregation.cpp
functions/array/function_array_sort.cpp
functions/array/function_array_sortby.cpp
functions/array/function_array_utils.cpp
functions/array/function_arrays_overlap.cpp
functions/array/function_array_distinct.cpp
functions/array/function_array_remove.cpp
functions/array/function_array_union.cpp
functions/array/function_array_except.cpp
functions/array/function_array_exists.cpp
functions/array/function_array_intersect.cpp
functions/array/function_array_slice.cpp
functions/array/function_array_difference.cpp
functions/array/function_array_enumerate.cpp
functions/array/function_array_enumerate_uniq.cpp
functions/array/function_array_range.cpp
functions/array/function_array_compact.cpp
functions/array/function_array_popback.cpp
functions/array/function_array_popfront.cpp
functions/array/function_array_constructor.cpp
functions/array/function_array_with_constant.cpp
functions/array/function_array_apply.cpp
functions/array/function_array_concat.cpp
functions/array/function_array_zip.cpp
functions/array/function_array_pushfront.cpp
functions/array/function_array_first_index.cpp
functions/function_map.cpp
exprs/table_function/vexplode_json_array.cpp
functions/math.cpp
functions/function_bitmap.cpp
functions/function_bitmap_variadic.cpp
functions/comparison.cpp
functions/comparison_less.cpp
functions/comparison_equals.cpp
functions/comparison_greater.cpp
functions/function.cpp
functions/function_helpers.cpp
functions/function_hash.cpp
functions/functions_logical.cpp
functions/function_case.cpp
functions/function_cast.cpp
functions/function_conv.cpp
functions/function_encryption.cpp
functions/function_regexp.cpp
functions/function_hex.cpp
functions/function_string.cpp
functions/function_timestamp.cpp
functions/function_utility.cpp
functions/comparison_equal_for_null.cpp
functions/function_json.cpp
functions/function_jsonb.cpp
functions/function_datetime_floor_ceil.cpp
functions/functions_geo.cpp
functions/hll_cardinality.cpp
functions/hll_empty.cpp
functions/hll_hash.cpp
functions/plus.cpp
functions/modulo.cpp
functions/multiply.cpp
functions/minus.cpp
functions/int_div.cpp
functions/divide.cpp
functions/function_bit.cpp
functions/is_null.cpp
functions/is_not_null.cpp
functions/in.cpp
functions/like.cpp
functions/to_time_function.cpp
functions/time_of_function.cpp
functions/if.cpp
functions/function_ifnull.cpp
functions/nullif.cpp
functions/random.cpp
functions/uuid.cpp
functions/function_coalesce.cpp
functions/function_date_or_datetime_computation.cpp
functions/function_date_or_datetime_computation_v2.cpp
functions/function_date_or_datetime_to_string.cpp
functions/function_datetime_string_to_string.cpp
functions/function_grouping.cpp
functions/function_java_udf.cpp
functions/function_rpc.cpp
functions/function_convert_tz.cpp
functions/function_nonnullable.cpp
functions/least_greast.cpp
functions/function_fake.cpp
functions/url/function_url.cpp
functions/functions_multi_string_position.cpp
functions/functions_multi_string_search.cpp
functions/function_running_difference.cpp
functions/function_width_bucket.cpp
functions/match.cpp
functions/function_quantile_state.cpp
jsonb/serialize.cpp
olap/vgeneric_iterators.cpp
olap/vcollect_iterator.cpp
olap/block_reader.cpp
olap/olap_data_convertor.cpp
olap/vertical_merge_iterator.cpp
olap/vertical_block_reader.cpp
sink/vmysql_result_writer.cpp
sink/vresult_sink.cpp
sink/vdata_stream_sender.cpp
sink/vtablet_sink.cpp
sink/vmemory_scratch_sink.cpp
sink/vmysql_table_writer.cpp
sink/vmysql_table_sink.cpp
sink/vodbc_table_sink.cpp
sink/vresult_file_sink.cpp
sink/vjdbc_table_sink.cpp
sink/vtable_sink.cpp
runtime/vdatetime_value.cpp
runtime/vdata_stream_recvr.cpp
runtime/vdata_stream_mgr.cpp
runtime/vfile_result_writer.cpp
runtime/vparquet_writer.cpp
runtime/vorc_writer.cpp
runtime/vsorted_run_merger.cpp
runtime/shared_hash_table_controller.cpp
utils/arrow_column_to_doris_column.cpp
exec/format/parquet/vparquet_column_chunk_reader.cpp
exec/format/parquet/vparquet_group_reader.cpp
exec/format/parquet/vparquet_page_index.cpp
exec/format/parquet/vparquet_reader.cpp
exec/format/parquet/vparquet_file_metadata.cpp
exec/format/parquet/vparquet_page_reader.cpp
exec/format/parquet/schema_desc.cpp
exec/format/parquet/vparquet_column_reader.cpp
exec/format/parquet/level_decoder.cpp
exec/format/parquet/decoder.cpp
exec/format/parquet/fix_length_plain_decoder.cpp
exec/format/parquet/byte_array_plain_decoder.cpp
exec/format/parquet/byte_array_dict_decoder.cpp
exec/format/parquet/bool_plain_decoder.cpp
exec/format/parquet/parquet_common.cpp
exec/scan/vscan_node.cpp
exec/scan/vscanner.cpp
exec/scan/scanner_context.cpp
exec/scan/scanner_scheduler.cpp
exec/scan/new_olap_scan_node.cpp
exec/scan/new_olap_scanner.cpp
exec/scan/new_file_scan_node.cpp
exec/scan/vfile_scanner.cpp
exec/scan/new_odbc_scanner.cpp
exec/scan/new_odbc_scan_node.cpp
exec/scan/new_jdbc_scanner.cpp
exec/scan/new_jdbc_scan_node.cpp
exec/scan/new_es_scanner.cpp
exec/scan/new_es_scan_node.cpp
exec/scan/vmeta_scan_node.cpp
exec/scan/vmeta_scanner.cpp
exec/format/csv/csv_reader.cpp
exec/format/orc/vorc_reader.cpp
exec/format/json/new_json_reader.cpp
exec/format/table/table_format_reader.cpp
exec/format/table/iceberg_reader.cpp
exec/format/file_reader/new_plain_text_line_reader.cpp
exec/format/file_reader/new_plain_binary_line_reader.cpp
exec/format/parquet/delta_bit_pack_decoder.cpp
exec/format/parquet/bool_rle_decoder.cpp
exec/jni_connector.cpp
exec/scan/jni_reader.cpp
)
if (WITH_MYSQL)
set(VEC_FILES
${VEC_FILES}
exec/vmysql_scan_node.cpp
exec/scan/mysql_scanner.cpp)
endif ()
add_library(Vec STATIC
${VEC_FILES}
)