ClickHouse/tests/performance
Duc Canh Le 5923e1b116
Cache cast function in set during execution (#55712)
* Cache cast function in set during execution

Signed-off-by: Duc Canh Le <duccanh.le@ahrefs.com>

* minor fix for performance test

Signed-off-by: Duc Canh Le <duccanh.le@ahrefs.com>

* Update src/Interpreters/castColumn.cpp

Co-authored-by: Nikita Taranov <nickita.taranov@gmail.com>

* improvement

Signed-off-by: Duc Canh Le <duccanh.le@ahrefs.com>

* fix use-after-free

Signed-off-by: Duc Canh Le <duccanh.le@ahrefs.com>

---------

Signed-off-by: Duc Canh Le <duccanh.le@ahrefs.com>
Co-authored-by: Nikita Taranov <nickita.taranov@gmail.com>
2023-10-23 13:31:44 +02:00
..
agg_functions_min_max_any.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
aggregate_functions_of_group_by_keys.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
aggregate_with_serialized_method.xml optimize 2023-08-08 13:38:25 +08:00
aggregating_merge_tree_simple_aggregate_function_string.xml
aggregating_merge_tree.xml
aggregation_by_partitions.xml Enable perf tests added in #45364 (#46623) 2023-02-28 00:26:11 +01:00
aggregation_external.xml Added performance test 2023-10-11 19:01:00 +03:00
aggregation_in_order_2.xml
aggregation_in_order.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
aggregation_overflow.xml
analyze_array_tuples.xml
and_function.xml
any_anyLast.xml
arithmetic_operations_in_aggr_func.xml
arithmetic.xml
array_auc.xml
array_element.xml
array_fill.xml
array_fold.xml init 2023-05-11 22:54:00 +03:00
array_index_low_cardinality_numbers.xml Fix slow performance test 2022-04-29 04:29:06 +02:00
array_index_low_cardinality_strings.xml
array_join.xml
array_reduce.xml
arrow_format.xml Fix performance test 2022-08-15 11:41:03 +00:00
asof.xml Fix ASOF LEFT JOIN performance degradation (#47544) 2023-03-18 23:53:00 +01:00
async_remote_read.xml Update async_remote_read.xml 2022-11-28 14:00:49 +01:00
avg_weighted.xml Implement batch processing for aggregate functions with multiple nullable arguments (#41058) 2022-09-15 23:51:38 +02:00
avg.xml
base64_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
base64.xml
basename.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
bigint_arithm.xml
bit_operations_fixed_string_numbers.xml
bit_operations_fixed_string.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
bitmap_array_element.xml Update bitmap_array_element.xml 2022-10-03 14:56:34 +02:00
bloom_filter_insert.xml
bloom_filter_select.xml
bounding_ratio.xml
casts.xml
cidr.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
classification.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
codec_none.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
codecs_float_insert.xml added fpc codec to float perftest 2022-05-26 22:32:56 +03:00
codecs_float_select.xml Small follow-up for FPC codec 2022-06-15 14:21:28 +02:00
codecs_int_insert.xml Deprecate Gorilla compression of non-float columns 2023-01-20 17:31:16 +00:00
codecs_int_select.xml Deprecate Gorilla compression of non-float columns 2023-01-20 17:31:16 +00:00
collations.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
column_array_filter.xml Update tests/performance/column_array_filter.xml 2023-02-04 18:49:13 +08:00
column_array_replicate.xml add performance tests 2023-02-02 20:16:16 +08:00
ColumnMap.xml
columns_hashing.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
complex_array_creation.xml
concat_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
conditional.xml optimize function coalesce with two arguments 2022-05-30 22:29:35 +00:00
consistent_hashes.xml Rename yandexConsistentHash to kostikConsistentHash 2022-03-24 02:18:25 +01:00
constant_column_comparison.xml Remove tags as well 2022-05-02 02:35:44 +02:00
constant_column_search.xml Merge pull request #36841 from ClickHouse/fix-performance-test-5 2022-05-02 12:22:56 +03:00
count_from_formats.xml Disable cache in perf test 2023-08-23 21:01:18 +00:00
count.xml
countDigits.xml Add performance test 2023-02-09 04:52:33 +01:00
countIf.xml
countMatches.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
cpu_synthetic.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
cryptographic_hashes.xml Print nicer exception if BLAKE3 is unavailable 2022-10-05 00:11:41 +03:00
date_parsing.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
date_time_64.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
date_time_long.xml Various test, code and docs fixups 2023-01-15 13:47:34 +00:00
date_time_short.xml Various test, code and docs fixups 2023-01-15 13:47:34 +00:00
datetime64_conversion.xml Add a test 2023-02-08 02:17:23 +01:00
datetime_comparison.xml
decimal_aggregates.xml Optimize quantilesExact{Low,High} to use nth_element instead of sort 2022-02-03 12:24:33 +00:00
decimal_casts.xml Whitespace 2023-02-08 03:38:23 +01:00
decimal_format.xml
decimal_parse.xml
destroy_aggregate_states.xml impl 2022-06-04 19:14:38 +00:00
dict_join.xml
direct_dictionary.xml tests/perf: fix dependency check during DROP 2022-12-16 15:15:15 +01:00
distinct_combinator.xml
distinct_in_order.xml Polishing 2023-02-05 13:38:20 +00:00
distributed_aggregation_memory_efficient.xml
distributed_aggregation.xml
empty_string_deserialization.xml
empty_string_serialization.xml
encodeXMLComponent.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
encrypt_decrypt_empty_string.xml Remove trash 2022-06-22 06:23:35 +02:00
encrypt_decrypt.xml Remove trash 2022-06-22 06:23:35 +02:00
entropy.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
enum_in_set.xml Cache cast function in set during execution (#55712) 2023-10-23 13:31:44 +02:00
explain_ast.xml Make explain_ast even larger 2022-10-14 14:06:44 +02:00
extract.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
file_table_function.xml Disable broken performance test 2022-04-25 11:26:05 +02:00
final_with_lonely_parts.xml more stable stateless test + add perf. test 2023-08-31 06:27:06 +00:00
fixed_string16.xml Remove tags as well 2022-05-02 02:35:44 +02:00
flat_dictionary.xml tests/perf: fix dependency check during DROP 2022-12-16 15:15:15 +01:00
float_formatting.xml
float_mod.xml
float_parsing.xml Trim down some tests 2022-04-29 04:33:12 +02:00
format_date_time.xml
format_readable.xml
formats_columns_sampling.xml Fix performance test 2022-05-23 17:42:13 +00:00
function_calculation_after_sorting_and_limit.xml fix SortingStep::updateOutputStream() 2022-04-25 17:29:14 +00:00
functions_coding.xml Trim down some tests 2022-04-29 04:33:12 +02:00
functions_geo.xml
functions_with_hash_tables.xml
fuse_sumcount.xml
fuzz_bits.xml
general_purpose_hashes_on_UUID.xml
general_purpose_hashes.xml Add xxh3 hash function (#43411) 2022-11-26 00:14:08 +01:00
generate_table_function.xml Adjust timezone in performance tests 2022-03-11 23:49:13 +01:00
grace_hash_join.xml Small fixes 2022-11-25 12:04:12 +00:00
great_circle_dist.xml Improve performance of geo distance functions 2022-05-25 14:22:22 +02:00
group_array_moving_sum.xml
group_by_fixed_keys.xml Prefetching in aggregation (#39304) 2022-09-21 18:59:07 +02:00
group_by_sundy_li.xml Make projections production-ready 2023-05-10 03:35:13 +02:00
groupby_onekey_nullable.xml Make projections production-ready 2023-05-10 03:35:13 +02:00
h3.xml Performance tests fix H3 2022-02-18 15:57:54 +00:00
has_all.xml Simplified hasAll performance tests 2022-04-04 13:34:40 +02:00
hash_table_sizes_stats_small.xml Apply preallocation optimisation more carefully (#44455) 2023-01-09 13:30:48 +01:00
hash_table_sizes_stats.xml fix (#41648) 2022-09-21 19:04:03 +02:00
hashed_array_dictionary.xml tests/perf: fix dependency check during DROP 2022-12-16 15:15:15 +01:00
hashed_dictionary_load_factor.xml Add ability to configure maximum load factor for the HASHED/SPARSE_HASHED layout 2023-05-19 06:07:21 +02:00
hashed_dictionary_sharded.xml Optimize SPARSE_HASHED layout (by using PackedHashMap) 2023-05-19 06:07:21 +02:00
hashed_dictionary.xml tests/perf: fix dependency check during DROP 2022-12-16 15:15:15 +01:00
hierarchical_dictionaries.xml Add ability to load hashed dictionaries using multiple threads 2023-01-13 13:39:25 +01:00
if_array_num.xml
if_array_string.xml
if_string_const.xml
if_string_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
if_to_multiif.xml
if_transform_strings_to_enum.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
information_value.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
injective_functions_inside_uniq.xml
insert_parallel.xml
insert_select_default_small_block.xml
insert_sequential_and_background_merges.xml
insert_values_with_expressions.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
inserts_arrays_lowcardinality.xml
int_parsing.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
intDiv.xml
ip_trie.xml
IPv4.xml
IPv6.xml
jit_aggregate_functions.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
jit_large_requests.xml
jit_small_requests.xml
jit_sort.xml Fixed tests 2022-05-11 21:59:51 +02:00
join_append_block.xml Fix significant join performance regression 2022-06-14 21:14:18 +08:00
join_filter_pushdown.xml add perf test 2023-07-24 20:34:01 +02:00
join_max_streams.xml
join_used_flags.xml enable used flags's reinit only when the hash talbe rehash 2023-05-11 11:06:13 +08:00
joins_in_memory.xml
json_extract_rapidjson.xml
json_extract_simdjson.xml update benckmark test 2023-09-15 18:09:58 +08:00
json_type.xml minor fixes 2022-06-28 14:21:21 +00:00
least_greatest_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
leftpad.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
lightweight_delete.xml Enable lightweight delete support by default 2023-03-01 19:35:55 +01:00
line_as_string_parsing.xml Support parallel parsing for LineAsString input format 2022-10-28 21:56:09 +00:00
linear_regression.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
local_replica.xml
logical_functions_large.xml
logical_functions_medium.xml
logical_functions_small.xml
lot_of_subcolumns.xml
low_cardinality_argument.xml Update tests/performance/low_cardinality_argument.xml 2022-07-15 18:24:44 +02:00
low_cardinality_from_json.xml Added reverted files and fixes for failing fuzzer tests 2022-10-28 12:37:59 +02:00
low_cardinality_query.xml Add perftest: low_cardinality_query 2022-11-08 17:19:18 +08:00
lower_upper_utf8.xml tests: add perf test for lowerUTF8()/upperUTF8() 2022-09-17 11:16:45 +02:00
lz4_hits_columns.xml Skip empty literals in lz4 decompression (#40142) 2022-09-06 13:58:26 +02:00
lz4.xml Skip empty literals in lz4 decompression (#40142) 2022-09-06 13:58:26 +02:00
map_populate_series.xml Added additional performance test 2022-02-05 16:11:36 +00:00
map_update.xml add tests 2023-03-28 17:20:05 +00:00
materialized_view_parallel_insert.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
materialized_view_parallelize_output_from_storages.xml Adjust min_insert_block_size_rows for materialized_view_parallelize_output_from_storages 2023-06-14 19:11:23 +03:00
math.xml
memory_bound_merging.xml Parallel replicas. Part [2] (#43772) 2023-02-03 14:34:18 +01:00
memory_cache_friendliness.xml
merge_table_streams.xml fix tests 2022-06-23 21:19:07 +02:00
merge_tree_huge_pk.xml
merge_tree_insert.xml Revert "Improve ColumnDecimal, ColumnVector getPermutation performance using pdqsort with RadixSort" 2023-10-16 19:07:11 +03:00
merge_tree_many_partitions_2.xml Fixed performance tests 2022-03-15 15:43:39 +00:00
merge_tree_many_partitions.xml Fixed performance tests 2022-03-15 15:43:39 +00:00
merge_tree_simple_select.xml
mingroupby-orderbylimit1.xml
mmap_io.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
modulo.xml
monotonous_order_by.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
ngram_distance.xml Remove tags as well 2022-05-02 02:35:44 +02:00
nlp.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
norm_distance_float.xml Perf test for norm/distance with long arrays of floats 2022-07-03 08:01:49 +02:00
norm_distance.xml Use same norm and distance function names for tuples and arrays 2022-05-25 22:39:59 +02:00
normalize_utf8.xml Normalize UTF8 performance test fix 2022-06-09 15:35:53 +02:00
number_formatting_formats.xml Fix some perf tests 2022-01-31 21:07:20 +03:00
optimize_sorting_for_input_stream.xml rename and fix perf test 2022-07-19 21:21:39 +00:00
optimize_window_funnel.xml
optimized_select_final_one_part.xml
optimized_select_final.xml
or_null_default.xml
order_by_decimals.xml Remove tags as well 2022-05-02 02:35:44 +02:00
order_by_read_in_order.xml Tests 2022-07-06 22:27:53 +00:00
order_by_single_column.xml Remove tags as well 2022-05-02 02:35:44 +02:00
order_by_tuple.xml Fix: remove heeavy performance tests, introduced within this PR 2022-07-07 07:57:05 +00:00
order_with_limit.xml Remove tags as well 2022-05-02 02:35:44 +02:00
parallel_final.xml deprecate old MergeTree syntax 2022-06-23 11:24:54 +02:00
parallel_index.xml
parallel_insert.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
parallel_mv.xml tests/performance: improve parallel_mv test 2022-07-18 16:23:17 +03:00
parquet_filter.xml Performance test 2023-08-21 14:15:52 -07:00
parse_engine_file.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
point_in_polygon_const.xml
point_in_polygon.xml
polymorphic_parts_l.xml
polymorphic_parts_m.xml
polymorphic_parts_s.xml Deprecate in-memory parts 2023-05-03 00:31:09 +02:00
position_empty_needle.xml change as request 2023-01-30 16:13:12 +08:00
pre_limit_no_sorting.xml
prefetch_in_aggregation.xml Prefetching in aggregation (#39304) 2022-09-21 18:59:07 +02:00
prepare_hash_before_merge.xml Optimize the merge if all hashSets are singleLevel in UniqExactSet (#52973) 2023-08-30 11:26:16 +02:00
prewhere_with_row_level_filter.xml
prewhere.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
push_down_limit.xml
quantile_merge.xml
quantile.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
queries_over_aggregation.xml more parallelism 2022-08-16 18:56:22 +02:00
query_interpretation_join.xml Add benchmark for query interpretation with JOINs 2022-11-23 13:15:35 +01:00
rand.xml Add function canonicalRand (#43124) 2022-11-15 00:27:19 +01:00
random_fixed_string.xml
random_printable_ascii.xml
random_string_utf8.xml
random_string.xml
range_hashed_dictionary.xml tests/perf: fix dependency check during DROP 2022-12-16 15:15:15 +01:00
range.xml
re2_regex_caching.xml Fix performance test for regexp cache 2023-07-09 02:21:48 +02:00
read_from_comp_parts.xml
read_hits_with_aio.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
read_in_order_many_parts.xml Performance tests fix 2022-03-15 15:43:39 +00:00
reading_from_file.xml Perf test 2023-04-07 20:06:11 +00:00
README.md Performance test 2023-08-21 14:15:52 -07:00
redundant_functions_in_order_by.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
reinterpret_as.xml
removing_group_by_keys.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
rewrite_array_exists.xml add perf test 2023-02-09 12:30:50 +08:00
rewrite_sumIf.xml
right.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
round_down.xml
round_methods.xml
scalar2.xml deprecate old MergeTree syntax 2022-06-23 11:24:54 +02:00
scalar.xml
schema_inference_text_formats.xml Refactor and improve schema inference for text formats 2022-12-07 21:19:27 +00:00
select_format.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
sequence_match.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
set_disable_skip_index.xml add perf test 2023-04-04 21:29:52 +00:00
set_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
set_index.xml
set.xml
short_circuit_functions.xml
simple_join_query.xml
single_fixed_string_groupby.xml fix (#41648) 2022-09-21 19:04:03 +02:00
slices_hits.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
sort_radix_trivial.xml
sort.xml Enable query_plan_remove_redundant_sorting optimization by default 2023-01-24 13:38:21 +00:00
sparse_column.xml add perf test 2022-05-28 12:56:38 +00:00
split_filter.xml
storage_join_direct_join.xml fix performance test 2023-08-07 06:25:46 +00:00
string_join.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
string_set.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
string_sort.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
string_to_int.xml
subqueries.xml
sum_map.xml
sum.xml
sumIf.xml
synthetic_hardware_benchmark.xml fix (#41648) 2022-09-21 19:04:03 +02:00
trim_numbers.xml
trim_urls.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
trim_whitespace.xml
tsv_csv_nullable_parsing.xml
unary_arithmetic_functions.xml Dynamic dispatch infrastructure style fixes 2022-05-24 14:25:29 +02:00
unary_logical_functions.xml UnaryLogicalFunctions improve performance using dynamic dispatch 2022-06-14 17:30:11 +02:00
uniq_stored.xml impl 2022-09-16 15:41:15 +02:00
uniq_without_key.xml Optimize merge of uniqExact without_key (#43072) 2022-11-17 13:19:02 +01:00
uniq.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
uniqExactIf.xml Add parallel state merge for some other combinator except If (#50413) 2023-06-08 00:41:32 +02:00
url_hits.xml Add tests and doc for some url-related functions 2022-10-26 10:52:57 +00:00
vectorize_aggregation_combinators.xml
views_max_insert_threads.xml Fix max_insert_threads while pushing to views 2022-07-03 15:14:05 +03:00
visit_param_extract_raw.xml
website.xml fix (#41648) 2022-09-21 19:04:03 +02:00
window_functions.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00
writing_valid_utf8.xml Remove "preconditions" from performance tests (overengineering, unneeded feature) 2022-05-02 02:33:22 +02:00

ClickHouse performance tests

This directory contains .xml-files with performance tests for @akuzm tool.

How to write performance test

First of all you should check existing tests don't cover your case. If there are no such tests then you should write your own.

You can use substitions, create, fill and drop queries to prepare test. You can find examples in this folder.

If your test takes more than 10 minutes, please, add tag long to have an opportunity to run all tests and skip long ones.

How to run performance test

TODO @akuzm

How to validate single test

pip3 install clickhouse_driver scipy
../../docker/test/performance-comparison/perf.py --runs 1 insert_parallel.xml