This is an automated email from the ASF dual-hosted git repository. diwu pushed a commit to branch streaming-job-dev in repository https://gitbox.apache.org/repos/asf/doris.git
commit 5ce7a4b1726735f176d29ef242c3ffa42d6cbedc Merge: b2adc933555 62a96bace09 Author: wudi <[email protected]> AuthorDate: Thu Sep 18 16:58:56 2025 +0800 Merge branch 'master' into streaming-job-dev # Conflicts: # fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceClient.java # fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceProxy.java # fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertJob.java # fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertTask.java .github/workflows/stale.yml | 19 +- .licenserc.yaml | 2 + be/CMakeLists.txt | 3 + be/src/agent/heartbeat_server.cpp | 7 + be/src/cloud/cloud_base_compaction.cpp | 10 +- .../src/cloud/cloud_cluster_info.h | 22 +- be/src/cloud/cloud_tablet.cpp | 3 + be/src/cloud/cloud_tablet_mgr.cpp | 8 + be/src/cloud/config.cpp | 4 + be/src/cloud/config.h | 4 + be/src/cloud/delete_bitmap_file_reader.cpp | 2 +- be/src/cloud/delete_bitmap_file_writer.cpp | 2 +- be/src/cloud/injection_point_action.cpp | 9 - be/src/common/atomic_shared_ptr.h | 62 + be/src/common/compare.h | 26 + be/src/common/config.cpp | 8 +- be/src/common/config.h | 6 +- be/src/common/daemon.cpp | 2 +- be/src/common/status.h | 2 +- be/src/exec/es/es_scroll_parser.cpp | 21 + be/src/exec/olap_common.cpp | 12 + be/src/exec/olap_common.h | 100 +- be/src/exec/rowid_fetcher.cpp | 23 +- be/src/exec/rowid_fetcher.h | 5 + be/src/exec/schema_scanner.cpp | 3 + .../schema_active_queries_scanner.cpp | 1 + .../schema_encryption_keys_scanner.cpp | 3 +- .../schema_sql_block_rule_status_scanner.cpp | 164 ++ .../schema_sql_block_rule_status_scanner.h} | 44 +- be/src/exec/table_connector.h | 3 - be/src/exprs/hybrid_set.h | 56 +- be/src/http/action/check_encryption_action.cpp | 174 ++ .../action/check_encryption_action.h} | 22 +- be/src/http/action/delete_bitmap_action.cpp | 8 + be/src/http/action/file_cache_action.cpp | 3 + be/src/http/action/stream_load.cpp | 5 +- be/src/io/CMakeLists.txt | 25 + be/src/io/cache/block_file_cache.cpp | 21 +- be/src/io/cache/block_file_cache.h | 4 +- be/src/io/cache/block_file_cache_factory.cpp | 30 +- be/src/io/cache/block_file_cache_factory.h | 6 + be/src/io/cache/block_file_cache_profile.cpp | 2 +- be/src/io/cache/cache_lru_dumper.cpp | 53 +- be/src/io/cache/cache_lru_dumper.h | 17 +- be/src/io/cache/cached_remote_file_reader.cpp | 10 +- be/src/io/cache/file_cache_lru_tool.cpp | 233 +++ be/src/io/fs/broker_file_system.cpp | 6 +- be/src/io/fs/buffered_reader.cpp | 4 +- be/src/io/fs/buffered_reader.h | 3 +- be/src/io/fs/encrypted_fs_factory.h | 2 - be/src/io/fs/file_writer.h | 7 +- be/src/io/fs/local_file_reader.cpp | 10 +- be/src/io/fs/multi_table_pipe.cpp | 9 +- be/src/io/fs/s3_file_writer.cpp | 16 +- be/src/io/fs/stream_load_pipe.cpp | 9 +- be/src/io/fs/stream_load_pipe.h | 16 +- be/src/io/tools/file_cache_microbench.cpp | 15 +- be/src/olap/base_tablet.cpp | 2 + be/src/olap/collection_statistics.h | 1 + be/src/olap/compaction.cpp | 96 +- be/src/olap/compaction.h | 7 + be/src/olap/comparison_predicate.h | 21 +- be/src/olap/in_list_predicate.h | 19 +- be/src/olap/iterators.h | 5 +- be/src/olap/memtable_writer.cpp | 9 +- be/src/olap/push_handler.cpp | 3 - be/src/olap/rowset/beta_rowset_writer.cpp | 15 +- be/src/olap/rowset/rowset.cpp | 31 + be/src/olap/rowset/rowset.h | 4 + be/src/olap/rowset/rowset_meta.cpp | 28 +- be/src/olap/rowset/rowset_meta.h | 14 + be/src/olap/rowset/segment_creator.cpp | 62 +- .../olap/rowset/segment_v2/ann_index/ann_index.h | 5 +- .../segment_v2/ann_index/ann_index_reader.cpp | 8 + .../rowset/segment_v2/ann_index/ann_index_reader.h | 4 +- .../segment_v2/ann_index/ann_index_writer.cpp | 12 +- .../rowset/segment_v2/ann_index/ann_index_writer.h | 1 + .../ann_index/ann_range_search_runtime.cpp | 6 +- .../ann_index/ann_range_search_runtime.h | 29 +- .../segment_v2/ann_index/ann_search_params.h | 2 +- .../segment_v2/ann_index/ann_topn_runtime.cpp | 149 +- .../rowset/segment_v2/ann_index/ann_topn_runtime.h | 5 +- .../segment_v2/ann_index/faiss_ann_index.cpp | 52 +- .../rowset/segment_v2/ann_index/faiss_ann_index.h | 24 +- be/src/olap/rowset/segment_v2/column_reader.cpp | 66 +- be/src/olap/rowset/segment_v2/column_reader.h | 8 +- .../olap/rowset/segment_v2/column_reader_cache.cpp | 6 +- .../inverted_index/query_v2/boolean_query.cpp | 91 - .../inverted_index/query_v2/boolean_query.h | 56 - .../query_v2/boolean_query/boolean_query.h | 71 + .../query_v2/boolean_query/boolean_weight.h | 63 + .../query_v2/buffered_union_scorer.cpp | 258 +++ .../query_v2/buffered_union_scorer.h | 65 + .../inverted_index/query_v2/composite_reader.h | 64 + .../inverted_index/query_v2/conjunction_op.cpp | 94 - .../inverted_index/query_v2/disjunction_op.cpp | 86 - .../inverted_index/query_v2/disjunction_op.h | 59 - .../segment_v2/inverted_index/query_v2/doc_set.h | 55 + .../segment_v2/inverted_index/query_v2/factory.cpp | 36 - .../inverted_index/query_v2/factory.inline.h | 47 - .../query_v2/intersection_scorer.cpp | 158 ++ .../query_v2/{operator.h => intersection_scorer.h} | 34 +- .../segment_v2/inverted_index/query_v2/node.h | 128 -- .../segment_v2/inverted_index/query_v2/operator.h | 27 +- .../inverted_index/query_v2/phrase_query.h | 38 - .../segment_v2/inverted_index/query_v2/query.h | 31 +- .../inverted_index/query_v2/roaring_query.cpp | 25 - .../inverted_index/query_v2/roaring_query.h | 62 - .../inverted_index/query_v2/score_combiner.h | 70 + .../query_v2/{term_query.h => scorer.h} | 34 +- .../inverted_index/query_v2/segment_postings.h | 107 ++ .../query_v2/term_query/term_query.h | 52 + .../query_v2/term_query/term_scorer.h | 52 + .../query_v2/term_query/term_weight.h | 74 + .../query_v2/{factory.h => weight.h} | 25 +- .../inverted_index/similarity/bm25_similarity.cpp | 29 +- .../inverted_index/similarity/bm25_similarity.h | 3 + .../inverted_index/similarity/similarity.h | 4 +- .../segment_v2/inverted_index/util/term_iterator.h | 21 +- .../inverted_index/util/term_position_iterator.h | 9 +- .../segment_v2/inverted_index/util/tiny_set.h | 59 + .../olap/rowset/segment_v2/inverted_index_common.h | 29 +- be/src/olap/rowset/segment_v2/segment.cpp | 99 +- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 507 +++--- be/src/olap/rowset/segment_v2/segment_iterator.h | 27 +- .../variant/hierarchical_data_iterator.cpp | 27 +- be/src/olap/rowset/segment_v2/zone_map_index.cpp | 57 +- be/src/olap/rowset/segment_v2/zone_map_index.h | 12 + be/src/olap/storage_policy.cpp | 4 +- be/src/olap/tablet.cpp | 15 +- be/src/olap/tablet.h | 5 +- be/src/olap/tablet_meta.cpp | 5 + be/src/olap/tablet_meta.h | 2 + be/src/olap/version_graph.cpp | 7 +- be/src/olap/wal/wal_table.cpp | 4 + be/src/olap/wal/wal_writer.cpp | 5 + be/src/olap/wrapper_field.h | 1 + be/src/pipeline/dependency.cpp | 224 --- be/src/pipeline/dependency.h | 39 - be/src/pipeline/exec/aggregation_sink_operator.cpp | 9 + be/src/pipeline/exec/aggregation_sink_operator.h | 1 + be/src/pipeline/exec/cache_sink_operator.cpp | 4 +- be/src/pipeline/exec/data_queue.cpp | 22 +- be/src/pipeline/exec/data_queue.h | 4 +- .../distinct_streaming_aggregation_operator.cpp | 1 + .../exec/group_commit_block_sink_operator.cpp | 3 +- be/src/pipeline/exec/hashjoin_build_sink.cpp | 2 +- be/src/pipeline/exec/materialization_opertor.cpp | 362 ++++ be/src/pipeline/exec/materialization_opertor.h | 125 ++ .../exec/materialization_sink_operator.cpp | 155 -- .../pipeline/exec/materialization_sink_operator.h | 70 - .../exec/materialization_source_operator.cpp | 72 - .../exec/materialization_source_operator.h | 72 - be/src/pipeline/exec/mock_scan_operator.h | 3 + be/src/pipeline/exec/olap_scan_operator.cpp | 5 + be/src/pipeline/exec/operator.cpp | 12 +- be/src/pipeline/exec/operator.h | 5 +- .../exec/partitioned_hash_join_sink_operator.cpp | 2 +- be/src/pipeline/exec/scan_operator.cpp | 14 +- be/src/pipeline/exec/scan_operator.h | 6 +- be/src/pipeline/exec/set_sink_operator.cpp | 2 +- .../exec/streaming_aggregation_operator.cpp | 1 + be/src/pipeline/exec/union_sink_operator.cpp | 16 +- be/src/pipeline/exec/union_sink_operator.h | 11 + be/src/pipeline/exec/union_source_operator.cpp | 12 + be/src/pipeline/exec/union_source_operator.h | 1 + be/src/pipeline/pipeline_fragment_context.cpp | 50 +- be/src/pipeline/pipeline_fragment_context.h | 3 +- be/src/pipeline/pipeline_task.cpp | 21 + be/src/pipeline/pipeline_task.h | 20 +- be/src/pipeline/pipeline_tracing.cpp | 4 +- be/src/pipeline/pipeline_tracing.h | 3 +- be/src/pipeline/task_queue.cpp | 10 +- be/src/pipeline/task_scheduler.cpp | 11 +- be/src/pipeline/task_scheduler.h | 8 +- be/src/runtime/define_primitive_type.h | 39 +- be/src/runtime/exec_env.h | 7 + be/src/runtime/exec_env_init.cpp | 8 +- be/src/runtime/fold_constant_executor.cpp | 8 +- be/src/runtime/fragment_mgr.cpp | 17 +- be/src/runtime/fragment_mgr.h | 6 - be/src/runtime/group_commit_mgr.cpp | 3 + be/src/runtime/load_stream.cpp | 25 +- be/src/runtime/load_stream.h | 4 +- be/src/runtime/plugin/cloud_plugin_downloader.cpp | 149 ++ be/src/runtime/plugin/cloud_plugin_downloader.h | 67 + be/src/runtime/primitive_type.cpp | 8 +- be/src/runtime/primitive_type.h | 23 + be/src/runtime/query_context.cpp | 10 + be/src/runtime/query_context.h | 4 + .../routine_load/routine_load_task_executor.cpp | 11 +- be/src/runtime/runtime_state.cpp | 3 + be/src/runtime/runtime_state.h | 3 + be/src/runtime/stream_load/stream_load_context.cpp | 19 +- be/src/runtime/stream_load/stream_load_context.h | 1 + .../runtime/stream_load/stream_load_executor.cpp | 13 +- be/src/runtime/user_function_cache.cpp | 45 +- be/src/runtime/user_function_cache.h | 3 +- be/src/runtime_filter/runtime_filter_producer.cpp | 2 - .../runtime_filter_producer_helper.cpp | 13 - .../runtime_filter_producer_helper.h | 3 +- be/src/service/backend_service.cpp | 63 - be/src/service/backend_service.h | 23 - be/src/service/http_service.cpp | 9 + be/src/service/internal_service.cpp | 56 +- be/src/util/debug_points.cpp | 9 +- be/src/util/debug_points.h | 3 +- be/src/util/disk_info_mac.cpp | 2 +- be/src/util/faststring.cc | 6 +- be/src/util/jsonb_document.cpp | 3 +- be/src/util/jsonb_document_cast.h | 20 + be/src/util/jsonb_writer.h | 17 +- be/src/util/mem_info.h | 2 +- be/src/util/simd/bits.h | 2 +- be/src/util/slice.h | 2 +- be/src/util/string_parser.hpp | 2 +- be/src/util/thrift_rpc_helper.cpp | 2 +- be/src/util/thrift_rpc_helper.h | 2 + .../vec/aggregate_functions/aggregate_function.h | 2 + .../aggregate_function_ai_agg.h | 2 + .../aggregate_function_approx_top.h | 116 -- .../aggregate_function_approx_top_k.cpp | 42 - .../aggregate_function_approx_top_k.h | 232 --- .../aggregate_function_approx_top_sum.cpp | 69 - .../aggregate_function_approx_top_sum.h | 248 --- .../aggregate_function_histogram.h | 9 +- .../aggregate_functions/aggregate_function_null.h | 2 + .../aggregate_function_simple_factory.cpp | 4 - .../aggregate_function_window_funnel.cpp | 3 +- .../aggregate_function_window_funnel.h | 32 +- be/src/vec/columns/column.h | 9 +- be/src/vec/columns/column_array.cpp | 4 + be/src/vec/columns/column_array.h | 3 + be/src/vec/columns/column_const.cpp | 4 + be/src/vec/columns/column_const.h | 2 + be/src/vec/columns/column_dictionary.h | 51 +- be/src/vec/columns/column_map.cpp | 107 +- be/src/vec/columns/column_map.h | 17 + be/src/vec/columns/column_nullable.h | 32 +- be/src/vec/columns/column_struct.cpp | 6 + be/src/vec/columns/column_struct.h | 1 + be/src/vec/columns/column_varbinary.cpp | 181 ++ be/src/vec/columns/column_varbinary.h | 171 ++ be/src/vec/columns/column_variant.cpp | 39 +- be/src/vec/columns/column_vector.cpp | 21 + be/src/vec/columns/column_vector.h | 2 + be/src/vec/common/allocator.cpp | 2 +- be/src/vec/common/allocator.h | 2 +- be/src/vec/common/arithmetic_overflow.h | 45 +- be/src/vec/common/custom_allocator.h | 74 + be/src/vec/common/hash_table/phmap_fwd_decl.h | 5 +- be/src/vec/common/string_view.cpp | 56 + be/src/vec/common/string_view.h | 157 ++ be/src/vec/core/block.cpp | 22 +- be/src/vec/core/column_with_type_and_name.cpp | 8 +- be/src/vec/core/field.cpp | 24 +- be/src/vec/core/field.h | 16 +- be/src/vec/data_types/data_type.cpp | 1 - be/src/vec/data_types/data_type_decimal.h | 6 +- be/src/vec/data_types/data_type_factory.cpp | 4 + be/src/vec/data_types/data_type_number_base.cpp | 4 +- be/src/vec/data_types/data_type_varbinary.cpp | 157 ++ be/src/vec/data_types/data_type_varbinary.h | 106 ++ .../vec/data_types/serde/data_type_array_serde.cpp | 19 + .../vec/data_types/serde/data_type_array_serde.h | 2 + .../data_types/serde/data_type_datetimev2_serde.h | 1 + .../data_types/serde/data_type_decimal_serde.cpp | 68 +- .../vec/data_types/serde/data_type_decimal_serde.h | 8 + .../vec/data_types/serde/data_type_jsonb_serde.cpp | 12 + .../vec/data_types/serde/data_type_jsonb_serde.h | 2 + .../vec/data_types/serde/data_type_map_serde.cpp | 64 + be/src/vec/data_types/serde/data_type_map_serde.h | 5 + .../data_types/serde/data_type_nullable_serde.cpp | 10 + .../data_types/serde/data_type_nullable_serde.h | 2 + .../data_types/serde/data_type_number_serde.cpp | 141 +- .../vec/data_types/serde/data_type_number_serde.h | 9 + be/src/vec/data_types/serde/data_type_serde.cpp | 45 + be/src/vec/data_types/serde/data_type_serde.h | 33 + .../data_types/serde/data_type_string_serde.cpp | 52 + .../vec/data_types/serde/data_type_string_serde.h | 6 + .../data_types/serde/data_type_struct_serde.cpp | 13 + .../vec/data_types/serde/data_type_struct_serde.h | 2 + be/src/vec/data_types/serde/data_type_time_serde.h | 1 + .../data_types/serde/data_type_varbinary_serde.cpp | 68 + ...variant_serde.h => data_type_varbinary_serde.h} | 53 +- .../data_types/serde/data_type_variant_serde.cpp | 6 + .../vec/data_types/serde/data_type_variant_serde.h | 1 + be/src/vec/exec/format/csv/csv_reader.cpp | 35 +- .../file_reader/new_plain_binary_line_reader.h | 3 +- be/src/vec/exec/format/json/new_json_reader.cpp | 14 +- be/src/vec/exec/format/json/new_json_reader.h | 7 +- be/src/vec/exec/format/orc/orc_file_reader.cpp | 3 +- be/src/vec/exec/format/orc/orc_file_reader.h | 3 +- be/src/vec/exec/format/orc/vorc_reader.cpp | 13 +- .../format/parquet/byte_array_dict_decoder.cpp | 2 +- .../exec/format/parquet/byte_array_dict_decoder.h | 3 +- be/src/vec/exec/format/parquet/decoder.h | 6 +- .../format/parquet/fix_length_dict_decoder.hpp | 3 +- .../vec/exec/format/parquet/parquet_thrift_util.h | 12 +- .../parquet/vparquet_column_chunk_reader.cpp | 6 +- .../format/parquet/vparquet_column_chunk_reader.h | 2 +- .../exec/format/parquet/vparquet_column_reader.cpp | 1 + .../exec/format/parquet/vparquet_group_reader.cpp | 9 +- .../exec/format/parquet/vparquet_group_reader.h | 3 +- be/src/vec/exec/format/parquet/vparquet_reader.cpp | 11 +- be/src/vec/exec/format/parquet/vparquet_reader.h | 3 +- be/src/vec/exec/format/table/iceberg_reader.cpp | 3 +- be/src/vec/exec/format/table/iceberg_reader.h | 7 +- .../vec/exec/format/table/table_format_reader.cpp | 11 +- be/src/vec/exec/format/table/table_format_reader.h | 21 +- be/src/vec/exec/jni_connector.cpp | 49 +- be/src/vec/exec/jni_connector.h | 7 +- be/src/vec/exec/scan/file_scanner.cpp | 5 +- be/src/vec/exec/scan/olap_scanner.cpp | 3 + be/src/vec/exec/vjdbc_connector.cpp | 46 +- be/src/vec/exec/vjdbc_connector.h | 9 +- be/src/vec/exprs/vcase_expr.cpp | 66 +- be/src/vec/exprs/vcase_expr.h | 238 ++- be/src/vec/exprs/vcast_expr.cpp | 29 +- be/src/vec/exprs/vectorized_agg_fn.cpp | 6 + be/src/vec/exprs/vectorized_agg_fn.h | 2 + be/src/vec/exprs/vectorized_fn_call.cpp | 63 +- be/src/vec/exprs/vectorized_fn_call.h | 5 + be/src/vec/exprs/vexpr.cpp | 1 + be/src/vec/exprs/vexpr.h | 25 +- be/src/vec/exprs/vtopn_pred.h | 21 +- be/src/vec/functions/ai/ai_functions.h | 151 +- .../vec/functions/array/function_array_range.cpp | 6 +- be/src/vec/functions/array/function_array_remove.h | 226 ++- .../vec/functions/array/function_arrays_overlap.h | 84 +- be/src/vec/functions/cast/cast_to_jsonb.h | 34 +- be/src/vec/functions/cast/cast_to_map.h | 6 +- be/src/vec/functions/cast/cast_to_string.h | 190 +- be/src/vec/functions/function.h | 56 +- be/src/vec/functions/function_case.h | 458 ----- .../function_date_or_datetime_computation.cpp | 68 - .../function_date_or_datetime_computation.h | 193 +- .../function_date_or_datetime_computation_v2.cpp | 12 - .../vec/functions/function_datetime_floor_ceil.cpp | 20 +- be/src/vec/functions/function_json.cpp | 61 +- be/src/vec/functions/function_jsonb.cpp | 416 ++++- be/src/vec/functions/function_map.cpp | 449 ++++- .../functions/function_math_unary_alway_nullable.h | 10 +- be/src/vec/functions/function_soundex.cpp | 131 ++ be/src/vec/functions/function_string.h | 31 +- be/src/vec/functions/function_utility.cpp | 5 +- be/src/vec/functions/match.cpp | 11 +- be/src/vec/functions/math.cpp | 4 +- be/src/vec/functions/round.h | 2 + be/src/vec/functions/simple_function_factory.h | 6 +- be/src/vec/functions/uniform.cpp | 187 ++ be/src/vec/olap/olap_data_convertor.h | 34 +- be/src/vec/olap/vcollect_iterator.cpp | 4 + be/src/vec/runtime/time_value.h | 8 +- be/src/vec/runtime/vdata_stream_mgr.cpp | 11 +- be/src/vec/runtime/vdatetime_value.cpp | 22 +- be/src/vec/runtime/vdatetime_value.h | 19 +- be/src/vec/sink/load_stream_map_pool.cpp | 6 +- be/src/vec/sink/load_stream_map_pool.h | 1 + be/src/vec/sink/load_stream_stub.cpp | 11 +- be/src/vec/sink/load_stream_stub.h | 4 +- be/src/vec/sink/vtablet_block_convertor.cpp | 5 +- be/src/vec/sink/writer/vfile_result_writer.cpp | 4 +- be/src/vec/utils/histogram_helpers.hpp | 28 +- ...test.cpp => aggregate_function_ai_agg_test.cpp} | 3 +- ...{build_prompt_test.cpp => ai_function_test.cpp} | 27 + be/test/cloud/cloud_compaction_test.cpp | 240 ++- be/test/common/check_overflow.cpp | 148 ++ be/test/exprs/bloom_filter_func_test.cpp | 2 +- be/test/io/cache/block_file_cache_test.cpp | 3 +- be/test/io/fs/hdfs_file_system_test.cpp | 1 + be/test/olap/block_column_predicate_test.cpp | 916 ++++++++++ be/test/olap/collection_statistics_test.cpp | 37 + .../inverted_index/query_v2/boolean_query_test.cpp | 399 +++++ .../query_v2/composite_reader_test.cpp | 80 + .../inverted_index/query_v2/doc_set_test.cpp | 86 + .../inverted_index/query_v2/query_test.cpp | 183 -- .../query_v2/score_combiner_test.cpp | 103 ++ .../query_v2/segment_postings_test.cpp | 165 ++ .../olap/rowset/segment_v2/zone_map_index_test.cpp | 202 +++ be/test/olap/stale_at_test.cpp | 101 ++ .../olap/vector_search/ann_index_reader_test.cpp | 4 +- .../olap/vector_search/ann_range_search_test.cpp | 63 +- .../vector_search/ann_topn_descriptor_test.cpp | 26 +- .../ann_topn_runtime_negative_test.cpp | 148 ++ be/test/olap/vector_search/vector_search_utils.cpp | 10 + be/test/pipeline/exec/data_queue_test.cpp | 2 +- .../operator/materialization_shared_state_test.cpp | 66 +- .../operator/scan_normalize_predicate_test.cpp | 474 +++++ .../plugin/cloud_plugin_downloader_test.cpp | 241 +++ be/test/runtime/user_function_cache_test.cpp | 159 +- .../runtime_filter_producer_helper_test.cpp | 2 +- be/test/util/bit_util_test.cpp | 93 + .../vec/aggregate_functions/agg_function_test.h | 2 +- .../aggregate_functions/vec_window_funnel_test.cpp | 8 +- be/test/vec/columns/column_array_test.cpp | 5 - be/test/vec/columns/column_const_test.cpp | 26 + be/test/vec/columns/column_dictionary_test.cpp | 15 +- be/test/vec/columns/column_varbinary_test.cpp | 477 +++++ be/test/vec/columns/common_column_test.h | 16 - be/test/vec/common/custom_allocator_test.cpp | 90 + be/test/vec/common/schema_util_rowset_test.cpp | 60 +- be/test/vec/common/string_view_test.cpp | 249 +++ be/test/vec/core/column_map_test.cpp | 250 +++ .../vec/data_types/data_type_varbinary_test.cpp | 205 +++ .../serde/data_type_serde_varbinary_test.cpp | 208 +++ .../parquet/byte_array_dict_decoder_test.cpp | 11 +- .../parquet/fix_length_dict_decoder_test.cpp | 11 +- .../exec/format/parquet/parquet_reader_test.cpp | 1 - be/test/vec/exec/orc/orc_reader_fill_data_test.cpp | 19 +- be/test/vec/exec/vjdbc_connector_test.cpp | 272 +++ be/test/vec/function/cast/cast_to_date_test.cpp | 2 + .../vec/function/cast/cast_to_datetime_test.cpp | 1 + be/test/vec/function/cast/cast_to_string.cpp | 23 + .../vec/function/function_arrays_overlap_test.cpp | 13 +- be/test/vec/function/function_string_test.cpp | 69 + be/test/vec/function/function_time_test.cpp | 327 +--- be/test/vec/runtime/vdatetime_value_test.cpp | 434 +++++ bin/start_fe.sh | 12 +- build.sh | 14 + cloud/CMakeLists.txt | 93 +- cloud/script/start.sh | 90 +- cloud/src/common/bvars.cpp | 59 +- cloud/src/common/bvars.h | 46 +- cloud/src/common/config.h | 11 +- cloud/src/meta-service/meta_server.cpp | 4 +- cloud/src/meta-service/meta_service.cpp | 40 +- cloud/src/meta-service/meta_service.h | 30 +- cloud/src/meta-service/meta_service_job.cpp | 35 +- cloud/src/meta-service/meta_service_resource.cpp | 13 +- cloud/src/meta-service/meta_service_snapshot.cpp | 115 +- cloud/src/meta-store/keys.cpp | 91 +- cloud/src/meta-store/keys.h | 9 + cloud/src/meta-store/mem_txn_kv.cpp | 27 + cloud/src/meta-store/mem_txn_kv.h | 13 + cloud/src/meta-store/meta_reader.cpp | 217 +++ cloud/src/meta-store/meta_reader.h | 39 + cloud/src/meta-store/txn_kv.cpp | 55 + cloud/src/meta-store/txn_kv.h | 25 + cloud/src/recycler/CMakeLists.txt | 4 + cloud/src/recycler/checker.cpp | 485 ++++- cloud/src/recycler/checker.h | 32 + cloud/src/recycler/meta_checker.cpp | 383 ++-- cloud/src/recycler/meta_checker.h | 83 +- cloud/src/recycler/recycler.cpp | 287 ++- cloud/src/recycler/recycler.h | 49 +- cloud/src/recycler/recycler_operation_log.cpp | 548 +++--- cloud/src/recycler/recycler_snapshot.cpp | 85 + cloud/src/recycler/util.h | 2 +- cloud/src/snapshot/CMakeLists.txt | 4 + cloud/src/snapshot/snapshot_manager.cpp | 77 + cloud/src/snapshot/snapshot_manager.h | 67 + cloud/test/CMakeLists.txt | 19 +- cloud/test/fdb_injection_test.cpp | 4 +- cloud/test/keys_test.cpp | 143 +- cloud/test/mem_txn_kv_test.cpp | 80 + cloud/test/meta_reader_test.cpp | 446 ++++- cloud/test/meta_server_test.cpp | 9 +- cloud/test/meta_service_http_test.cpp | 43 +- cloud/test/meta_service_job_test.cpp | 244 ++- cloud/test/meta_service_snapshot_test.cpp | 272 +++ cloud/test/meta_service_test.cpp | 60 +- cloud/test/rate_limiter_test.cpp | 3 +- cloud/test/recycle_versioned_keys_test.cpp | 1869 ++++++++++++++++++++ cloud/test/recycler_operation_log_test.cpp | 262 ++- cloud/test/recycler_test.cpp | 1112 ++++++++---- cloud/test/resource_test.cpp | 3 +- cloud/test/rpc_kv_bvar_test.cpp | 6 +- cloud/test/txn_kv_test.cpp | 63 + cloud/test/txn_lazy_commit_test.cpp | 3 +- docker/runtime/be/Dockerfile | 2 +- .../be/resource/be_disaggregated_entrypoint.sh | 209 ++- .../runtime/be/resource/be_disaggregated_probe.sh | 69 +- docker/runtime/doris-compose/cluster.py | 20 +- docker/runtime/doris-compose/command.py | 14 +- docker/runtime/doris-compose/resource/init_fe.sh | 2 + docker/runtime/fe/Dockerfile | 2 +- .../fe/resource/fe_disaggregated_entrypoint.sh | 136 +- .../runtime/fe/resource/fe_disaggregated_probe.sh | 57 +- docker/runtime/ms/Dockerfile | 2 +- docker/thirdparties/custom_settings.env | 4 +- .../scripts/data/composite_type_array_bulk.json | 20 +- .../index/array_meta_composite_type_array.json | 3 +- .../scripts/index/es6_composite_type_array.json | 10 +- .../scripts/index/es7_composite_type_array.json | 10 +- .../docker-compose/hive/hadoop-hive.env.tpl | 7 + .../hive/scripts/data/default/account_fund/run.sh | 3 +- .../hive/scripts/data/default/hive01/run.sh | 3 +- .../hive/scripts/data/default/sale_table/run.sh | 3 +- .../hive/scripts/data/default/string_table/run.sh | 3 +- .../hive/scripts/data/default/student/run.sh | 3 +- .../hive/scripts/data/default/test1/run.sh | 3 +- .../hive/scripts/data/default/test2/run.sh | 3 +- .../scripts/data/default/test_hive_doris/run.sh | 3 +- .../scripts/data/multi_catalog/datev2_csv/run.sh | 3 +- .../scripts/data/multi_catalog/datev2_orc/run.sh | 3 +- .../data/multi_catalog/datev2_parquet/run.sh | 3 +- .../multi_catalog/hive_text_complex_type/run.sh | 3 +- .../multi_catalog/hive_text_complex_type2/run.sh | 3 +- .../multi_catalog/hive_text_complex_type3/run.sh | 3 +- .../hive_text_complex_type_delimiter/run.sh | 3 +- .../hive_text_complex_type_delimiter2/run.sh | 3 +- .../hive_text_complex_type_delimiter3/run.sh | 3 +- .../hive_textfile_array_all_types/run.sh | 3 +- .../hive_textfile_array_delimiter/run.sh | 3 +- .../multi_catalog/hive_textfile_nestedarray/run.sh | 3 +- .../data/multi_catalog/hive_upper_case_orc/run.sh | 3 +- .../multi_catalog/hive_upper_case_parquet/run.sh | 3 +- .../data/multi_catalog/logs1_parquet/run.sh | 10 - .../data/multi_catalog/one_partition/run.sh | 3 +- .../data/multi_catalog/orc_nested_types/run.sh | 3 +- .../multi_catalog/orc_partitioned_columns/run.sh | 3 +- .../orc_partitioned_one_column/run.sh | 3 +- .../multi_catalog/par_fields_in_file_orc/run.sh | 3 +- .../par_fields_in_file_parquet/run.sh | 3 +- .../parquet_alter_column_to_bigint/run.sh | 3 +- .../parquet_alter_column_to_boolean/run.sh | 3 +- .../parquet_alter_column_to_char/run.sh | 3 +- .../parquet_alter_column_to_date/run.sh | 3 +- .../parquet_alter_column_to_decimal/run.sh | 3 +- .../parquet_alter_column_to_double/run.sh | 3 +- .../parquet_alter_column_to_float/run.sh | 3 +- .../parquet_alter_column_to_int/run.sh | 3 +- .../parquet_alter_column_to_smallint/run.sh | 3 +- .../parquet_alter_column_to_string/run.sh | 3 +- .../parquet_alter_column_to_timestamp/run.sh | 3 +- .../parquet_alter_column_to_tinyint/run.sh | 3 +- .../parquet_alter_column_to_varchar/run.sh | 3 +- .../multi_catalog/parquet_lz4_compression/run.sh | 3 +- .../multi_catalog/parquet_lzo_compression/run.sh | 3 +- .../data/multi_catalog/parquet_nested_types/run.sh | 3 +- .../parquet_partitioned_columns/run.sh | 3 +- .../parquet_partitioned_one_column/run.sh | 3 +- .../multi_catalog/parquet_predicate_table/run.sh | 3 +- .../data/multi_catalog/partition_location_1/run.sh | 3 +- .../data/multi_catalog/partition_location_2/run.sh | 3 +- .../multi_catalog/partition_manual_remove/run.sh | 3 +- .../data/multi_catalog/test_chinese_orc/run.sh | 3 +- .../data/multi_catalog/test_chinese_parquet/run.sh | 3 +- .../data/multi_catalog/test_chinese_text/run.sh | 3 +- .../data/multi_catalog/test_complex_types/run.sh | 10 - .../multi_catalog/test_compress_partitioned/run.sh | 10 - .../multi_catalog/test_csv_format_error/run.sh | 3 +- .../test_date_string_partition/run.sh | 3 +- .../test_hive_same_db_table_name/run.sh | 3 +- .../test_hive_special_char_partition/run.sh | 3 +- .../test_mixed_par_locations_orc/run.sh | 3 +- .../test_mixed_par_locations_parquet/run.sh | 3 +- .../data/multi_catalog/test_multi_langs_orc/run.sh | 3 +- .../multi_catalog/test_multi_langs_parquet/run.sh | 3 +- .../multi_catalog/test_multi_langs_text/run.sh | 3 +- .../multi_catalog/test_special_orc_formats/run.sh | 3 +- .../run.sh | 3 +- .../run.sh | 3 +- .../run.sh | 3 +- .../data/multi_catalog/test_wide_table/run.sh | 10 - .../multi_catalog/text_partitioned_columns/run.sh | 3 +- .../text_partitioned_one_column/run.sh | 3 +- .../multi_catalog/timestamp_with_time_zone/run.sh | 3 +- .../data/multi_catalog/two_partition/run.sh | 3 +- .../data/multi_catalog/type_change_orc/run.sh | 3 +- .../data/multi_catalog/type_change_origin/run.sh | 3 +- .../data/multi_catalog/type_change_parquet/run.sh | 3 +- .../data/partition_type/bigint_partition/run.sh | 3 +- .../data/partition_type/char_partition/run.sh | 3 +- .../data/partition_type/date_partition/run.sh | 3 +- .../data/partition_type/decimal_partition/run.sh | 3 +- .../data/partition_type/double_partition/run.sh | 3 +- .../data/partition_type/float_partition/run.sh | 3 +- .../data/partition_type/int_partition/run.sh | 3 +- .../data/partition_type/smallint_partition/run.sh | 3 +- .../data/partition_type/string_partition/run.sh | 3 +- .../data/partition_type/tinyint_partition/run.sh | 3 +- .../data/partition_type/varchar_partition/run.sh | 3 +- .../hive/scripts/data/regression/crdmm_data/run.sh | 3 +- .../hive/scripts/data/statistics/statistics/run.sh | 3 +- .../hive/scripts/data/statistics/stats/run.sh | 3 +- .../hive/scripts/data/test/hive_test/run.sh | 3 +- .../scripts/data/tpch_1000_parquet/part/run.sh | 2 +- .../data/tvf/test_hdfs_tvf_compression/run.sh | 10 - .../hive/scripts/data/tvf/test_tvf/run.sh | 10 - .../docker-compose/hive/scripts/hive-metastore.sh | 95 +- .../hive/scripts/prepare-hive-data.sh | 148 ++ .../iceberg-rest/docker-compose.yaml.tpl | 130 +- .../iceberg-rest/iceberg-rest_settings.env | 40 +- .../kerberos/entrypoint-hive-master.sh | 7 + .../docker-compose/kerberos/hadoop-hive.env.tpl | 7 + .../docker-compose/kerberos/kerberos.yaml.tpl | 2 + .../docker-compose/kerberos/kerberos1_settings.env | 7 +- .../docker-compose/kerberos/kerberos2_settings.env | 7 +- ...-5414d3da-b984-4a28-a501-e7dc42a1760f-0.parquet | Bin 0 -> 563 bytes ...manifest-3224f4a3-e7f2-402a-b1b1-bd1fe57d57ad-0 | Bin 0 -> 2016 bytes ...est-list-7dbac4ab-1226-4c1f-8346-3b388de65ea3-0 | Bin 0 -> 884 bytes ...est-list-7dbac4ab-1226-4c1f-8346-3b388de65ea3-1 | Bin 0 -> 986 bytes .../hdfs_db.db/external_test_table/schema/schema-0 | 29 + .../external_test_table/snapshot/EARLIEST | 1 + .../hdfs_db.db/external_test_table/snapshot/LATEST | 1 + .../external_test_table/snapshot/snapshot-1 | 19 + .../kerberos/sql/create_paimon_hive_table.hql | 7 + .../docker-compose/mysql/init/01-drop-db.sql | 1 + .../docker-compose/mysql/init/02-create-db.sql | 1 + .../docker-compose/mysql/init/03-create-table.sql | 5 + .../docker-compose/mysql/init/04-insert.sql | 2 + docker/thirdparties/run-thirdparties-docker.sh | 49 +- .../apache/doris/common/jni/vec/ColumnType.java | 14 +- .../apache/doris/common/jni/vec/VectorColumn.java | 50 +- .../org/apache/doris/jdbc/BaseJdbcExecutor.java | 6 + .../org/apache/doris/jdbc/MySQLJdbcExecutor.java | 7 + .../org/apache/doris/catalog/PrimitiveType.java | 12 + .../java/org/apache/doris/catalog/ScalarType.java | 24 + .../main/java/org/apache/doris/catalog/Type.java | 71 +- .../java/org/apache/doris/catalog/VariantType.java | 8 +- .../main/java/org/apache/doris/common/Config.java | 33 +- .../antlr4/org/apache/doris/nereids/DorisLexer.g4 | 11 + .../antlr4/org/apache/doris/nereids/DorisParser.g4 | 19 + .../src/main/java/org/apache/doris/DorisFE.java | 13 + .../main/java/org/apache/doris/alter/Alter.java | 9 + .../java/org/apache/doris/alter/AlterJobV2.java | 7 + .../doris/alter/AlterLightSchChangeHelper.java | 1 + .../java/org/apache/doris/alter/RollupJobV2.java | 23 +- .../apache/doris/alter/SchemaChangeHandler.java | 14 +- .../org/apache/doris/alter/SchemaChangeJobV2.java | 24 +- .../doris/analysis/AnnIndexPropertiesChecker.java | 7 + .../apache/doris/analysis/BuildIndexClause.java | 7 +- .../java/org/apache/doris/analysis/IndexDef.java | 16 +- .../org/apache/doris/analysis/LargeIntLiteral.java | 6 +- .../org/apache/doris/analysis/PartitionDesc.java | 70 + .../doris/analysis/ReplacePartitionClause.java | 13 +- .../org/apache/doris/analysis/SchemaTableType.java | 2 + .../org/apache/doris/analysis/SetLdapPassVar.java | 62 - .../org/apache/doris/analysis/SetNamesVar.java | 73 - .../java/org/apache/doris/analysis/SetPassVar.java | 100 -- .../java/org/apache/doris/analysis/SetStmt.java | 108 -- .../apache/doris/analysis/SetUserDefinedVar.java | 30 - .../apache/doris/analysis/SetUserPropertyVar.java | 130 -- .../apache/doris/analysis/SinglePartitionDesc.java | 99 ++ .../org/apache/doris/analysis/SlotDescriptor.java | 1 + .../java/org/apache/doris/analysis/StmtType.java | 1 + .../apache/doris/analysis/VarBinaryLiteral.java | 142 ++ .../org/apache/doris/backup/BackupHandler.java | 92 +- .../java/org/apache/doris/backup/BackupJob.java | 38 +- .../org/apache/doris/backup/BackupJobInfo.java | 70 - .../java/org/apache/doris/backup/Repository.java | 35 - .../java/org/apache/doris/backup/RestoreJob.java | 69 +- .../org/apache/doris/blockrule/SqlBlockRule.java | 22 + .../apache/doris/blockrule/SqlBlockRuleMgr.java | 25 +- .../org/apache/doris/catalog/AzureResource.java | 2 +- .../doris/catalog/BuiltinAggregateFunctions.java | 4 - .../doris/catalog/BuiltinScalarFunctions.java | 12 +- .../apache/doris/catalog/CatalogRecycleBin.java | 11 + .../main/java/org/apache/doris/catalog/Env.java | 83 +- .../org/apache/doris/catalog/FunctionRegistry.java | 2 +- .../org/apache/doris/catalog/HdfsStorageVault.java | 9 +- .../java/org/apache/doris/catalog/HiveTable.java | 6 +- .../org/apache/doris/catalog/JdbcResource.java | 25 +- .../org/apache/doris/catalog/OlapTableFactory.java | 37 +- .../java/org/apache/doris/catalog/S3Resource.java | 2 +- .../org/apache/doris/catalog/S3StorageVault.java | 9 +- .../java/org/apache/doris/catalog/SchemaTable.java | 93 +- .../org/apache/doris/catalog/StorageVaultMgr.java | 5 +- .../org/apache/doris/catalog/TableProperty.java | 8 +- .../org/apache/doris/cloud/catalog/CloudEnv.java | 34 +- .../cloud/datasource/CloudInternalCatalog.java | 8 +- .../apache/doris/cloud/rpc/MetaServiceClient.java | 35 + .../apache/doris/cloud/rpc/MetaServiceProxy.java | 28 + .../doris/cloud/snapshot/CloudSnapshotHandler.java | 90 + .../snapshot/SnapshotState.java} | 33 +- .../apache/doris/cloud/storage/AzureRemote.java | 27 +- .../apache/doris/cloud/storage/DefaultRemote.java | 33 + .../org/apache/doris/cloud/storage/MockRemote.java | 11 + .../org/apache/doris/cloud/storage/RemoteBase.java | 5 + .../doris/cloud/system/CloudSystemInfoService.java | 43 +- .../org/apache/doris/common/ArgumentParser.java | 35 +- .../org/apache/doris/common/ArgumentParsers.java | 308 ++++ .../apache/doris/common/CommandLineOptions.java | 12 + .../org/apache/doris/common/NamedArguments.java | 326 ++++ .../cache/NereidsSortedPartitionsCacheManager.java | 4 + .../doris/common/cache/NereidsSqlCacheManager.java | 255 ++- .../doris/common/plugin/CloudPluginDownloader.java | 164 ++ .../org/apache/doris/common/profile/Profile.java | 2 - .../doris/common/profile/RuntimeProfile.java | 9 - .../doris/common/profile/SummaryProfile.java | 46 +- .../org/apache/doris/common/util/DebugUtil.java | 61 +- .../apache/doris/common/util/IdGeneratorUtil.java | 20 - .../org/apache/doris/common/util/PrintableMap.java | 7 +- .../apache/doris/common/util/PropertyAnalyzer.java | 51 +- .../org/apache/doris/datasource/CatalogIf.java | 17 +- .../apache/doris/datasource/CatalogProperty.java | 27 +- .../apache/doris/datasource/ExternalCatalog.java | 45 +- .../apache/doris/datasource/InternalCatalog.java | 1268 +------------ .../AbstractVendedCredentialsProvider.java | 103 ++ .../credentials/CredentialExtractor.java | 41 - .../datasource/credentials/CredentialUtils.java | 68 +- .../credentials/VendedCredentialsFactory.java | 72 + .../doris/datasource/hive/HMSExternalCatalog.java | 52 +- .../doris/datasource/hive/HMSExternalTable.java | 3 +- .../apache/doris/datasource/hive/HiveDlaTable.java | 2 +- .../doris/datasource/hive/HiveMetaStoreCache.java | 14 +- .../doris/datasource/hive/HiveMetadataOps.java | 117 -- .../iceberg/IcebergDLFExternalCatalog.java | 16 +- .../datasource/iceberg/IcebergExternalCatalog.java | 14 +- .../datasource/iceberg/IcebergMetadataOps.java | 58 - .../iceberg/IcebergS3CredentialExtractor.java | 53 - .../iceberg/IcebergVendedCredentialsProvider.java | 80 +- .../iceberg/action/BaseIcebergAction.java | 84 + .../action/IcebergCherrypickSnapshotAction.java | 75 + .../action/IcebergExpireSnapshotsAction.java | 127 ++ .../iceberg/action/IcebergFastForwardAction.java | 75 + .../action/IcebergOptimizeActionFactory.java | 105 ++ .../action/IcebergRewriteDataFilesAction.java | 149 ++ .../action/IcebergRollbackToSnapshotAction.java | 72 + .../action/IcebergRollbackToTimestampAction.java | 97 + .../action/IcebergSetCurrentSnapshotAction.java | 91 + .../datasource/iceberg/source/IcebergScanNode.java | 27 +- .../datasource/jdbc/client/JdbcMySQLClient.java | 5 +- .../lakesoul/source/LakeSoulScanNode.java | 17 +- .../datasource/operations/ExternalMetadataOps.java | 17 - .../datasource/paimon/PaimonExternalCatalog.java | 20 +- .../paimon/PaimonOssCredentialExtractor.java | 68 - .../paimon/PaimonVendedCredentialsProvider.java | 87 +- .../datasource/paimon/source/PaimonScanNode.java | 30 +- .../property/constants/AzureProperties.java | 70 - .../property/constants/S3Properties.java | 336 ---- .../metastore/AWSGlueMetaStoreBaseProperties.java | 6 +- .../metastore/AWSGlueMetaStoreProperties.java | 76 - .../metastore/AbstractPaimonProperties.java | 2 +- .../property/metastore/DataProcProperties.java | 37 - .../metastore/FileMetastoreProperties.java | 46 - .../IcebergFileSystemMetaStoreProperties.java | 7 +- .../metastore/IcebergGlueMetaStoreProperties.java | 5 - .../metastore/IcebergHMSMetaStoreProperties.java | 25 +- .../property/metastore/IcebergRestProperties.java | 2 +- .../IcebergS3TablesMetaStoreProperties.java | 4 +- .../PaimonAliyunDLFMetaStoreProperties.java | 1 + .../metastore/PaimonHMSMetaStoreProperties.java | 6 +- .../property/storage/AzureProperties.java | 5 +- .../datasource/property/storage/COSProperties.java | 2 - .../datasource/property/storage/GCSProperties.java | 2 - .../property/storage/HdfsProperties.java | 1 + .../property/storage/HdfsPropertiesUtils.java | 80 +- .../datasource/property/storage/OSSProperties.java | 11 +- .../datasource/property/storage/S3Properties.java | 289 ++- .../org/apache/doris/encryption/EncryptionKey.java | 62 + .../apache/doris/encryption/KeyManagerStore.java | 61 +- .../doris/insertoverwrite/InsertOverwriteUtil.java | 6 +- .../doris/job/extensions/insert/InsertJob.java | 16 + .../doris/job/extensions/insert/InsertTask.java | 6 +- .../apache/doris/job/extensions/mtmv/MTMVTask.java | 13 +- .../java/org/apache/doris/journal/Journal.java | 6 + .../org/apache/doris/journal/JournalEntity.java | 6 + .../apache/doris/journal/bdbje/BDBJEJournal.java | 5 + .../doris/journal/bdbje/BDBJournalCursor.java | 18 +- .../apache/doris/journal/local/LocalJournal.java | 5 + .../main/java/org/apache/doris/load/EtlStatus.java | 12 + .../org/apache/doris/load/GroupCommitManager.java | 20 +- .../org/apache/doris/load/StreamLoadRecord.java | 5 +- .../org/apache/doris/load/StreamLoadRecordMgr.java | 8 +- .../apache/doris/load/loadv2/BrokerLoadJob.java | 5 +- .../load/loadv2/BrokerLoadingTaskAttachment.java | 8 +- .../apache/doris/load/loadv2/InsertLoadJob.java | 6 +- .../java/org/apache/doris/load/loadv2/LoadJob.java | 3 + .../apache/doris/load/loadv2/LoadLoadingTask.java | 1 + .../org/apache/doris/load/loadv2/LoadManager.java | 6 +- .../java/org/apache/doris/master/Checkpoint.java | 16 + .../doris/mtmv/MTMVPartitionExprDateTrunc.java | 4 +- .../java/org/apache/doris/mtmv/MTMVPlanUtil.java | 7 +- ...MTMVRelatedPartitionDescSyncLimitGenerator.java | 27 +- .../org/apache/doris/mysql/MysqlSerializer.java | 44 +- .../org/apache/doris/mysql/privilege/Auth.java | 15 - .../apache/doris/mysql/privilege/UserProperty.java | 4 +- .../org/apache/doris/nereids/NereidsPlanner.java | 25 +- .../org/apache/doris/nereids/SqlCacheContext.java | 121 +- .../glue/translator/PhysicalPlanTranslator.java | 62 +- .../doris/nereids/jobs/executor/Rewriter.java | 5 +- .../doris/nereids/load/NereidsDataDescription.java | 12 +- .../nereids/load/NereidsLoadScanProvider.java | 99 +- .../doris/nereids/parser/LogicalPlanBuilder.java | 109 +- .../post/materialize/MaterializeProbeVisitor.java | 15 +- .../org/apache/doris/nereids/rules/RuleType.java | 1 + .../doris/nereids/rules/analysis/BindRelation.java | 78 +- .../nereids/rules/analysis/ExpressionAnalyzer.java | 35 +- .../rules/analysis/FoldConstantForSqlCache.java | 98 + .../mv/InitMaterializationContextHook.java | 6 +- .../exploration/mv/MaterializationContext.java | 13 + .../mv/PreMaterializedViewRewriter.java | 1 + .../rules/expression/ExpressionRuleType.java | 1 + .../nereids/rules/expression/check/CheckCast.java | 24 +- .../expression/rules/FoldConstantRuleOnBE.java | 61 +- .../expression/rules/JsonFunctionRewrite.java | 26 +- .../rules/SimplifyComparisonPredicate.java | 78 +- .../rules/rewrite/DistinctAggStrategySelector.java | 26 +- .../rules/rewrite/DistinctAggregateRewriter.java | 6 +- .../rewrite/EliminateGroupByKeyByUniform.java | 7 +- .../doris/nereids/rules/rewrite/InitJoinOrder.java | 7 +- .../rewrite/PushDownFilterIntoSchemaScan.java | 2 +- .../rewrite/PushDownVectorTopNIntoOlapScan.java | 4 +- .../PushDownVirtualColumnsIntoOlapScan.java | 75 +- .../rules/rewrite/SplitMultiDistinctStrategy.java | 6 - .../rules/rewrite/VariantSubPathPruning.java | 34 + .../doris/nereids/stats/FilterEstimation.java | 14 +- .../doris/nereids/stats/StatsCalculator.java | 31 +- .../doris/nereids/trees/expressions/Cast.java | 15 +- .../expressions/functions/ComputeSignature.java | 2 +- .../ComputeSignatureForDateArithmetic.java | 16 +- .../functions/ComputeSignatureHelper.java | 31 +- .../expressions/functions/SearchSignature.java | 2 +- .../expressions/functions/agg/ApproxTopK.java | 99 -- .../expressions/functions/agg/ApproxTopSum.java | 99 -- .../trees/expressions/functions/agg/Histogram.java | 16 +- .../trees/expressions/functions/agg/MapAgg.java | 4 +- .../trees/expressions/functions/agg/MapAggV2.java | 4 +- .../functions/executable/DateTimeAcquire.java | 6 +- .../functions/executable/DateTimeArithmetic.java | 219 +-- .../executable/DateTimeExtractAndTransform.java | 17 + .../functions/executable/NumericArithmetic.java | 19 + .../functions/executable/StringArithmetic.java | 55 + .../functions/executable/TimeRoundSeries.java | 369 +--- .../functions/scalar/AesCryptoFunction.java | 5 + .../trees/expressions/functions/scalar/Array.java | 16 +- .../expressions/functions/scalar/ArrayRemove.java | 20 +- .../functions/scalar/ArrayReverseSort.java | 8 +- .../expressions/functions/scalar/ArraySort.java | 8 +- .../expressions/functions/scalar/ArraySortBy.java | 11 + .../expressions/functions/scalar/ArraySum.java | 8 +- .../expressions/functions/scalar/ArrayUnion.java | 12 + .../expressions/functions/scalar/ArrayZip.java | 2 +- .../functions/scalar/ArraysOverlap.java | 12 + .../expressions/functions/scalar/Coalesce.java | 82 +- .../expressions/functions/scalar/CountEqual.java | 12 + .../expressions/functions/scalar/CreateMap.java | 5 + .../functions/scalar/CreateNamedStruct.java | 9 +- .../expressions/functions/scalar/CreateStruct.java | 14 + .../expressions/functions/scalar/CurrentDate.java | 4 +- .../expressions/functions/scalar/DayCeil.java | 8 +- .../expressions/functions/scalar/DayFloor.java | 8 +- .../expressions/functions/scalar/DaysAdd.java | 29 +- .../expressions/functions/scalar/DaysSub.java | 29 +- .../expressions/functions/scalar/Greatest.java | 67 +- .../functions/scalar/GreatestLeast.java | 83 + .../expressions/functions/scalar/HourCeil.java | 8 +- .../expressions/functions/scalar/HourFloor.java | 8 +- .../expressions/functions/scalar/HoursAdd.java | 17 +- .../expressions/functions/scalar/HoursSub.java | 17 +- .../trees/expressions/functions/scalar/If.java | 108 +- .../scalar/{JsonbValid.java => JsonRemove.java} | 49 +- .../expressions/functions/scalar/JsonbValid.java | 5 +- .../trees/expressions/functions/scalar/Least.java | 68 +- .../functions/scalar/MapContainsEntry.java | 112 ++ .../expressions/functions/scalar/MapEntries.java | 96 + .../trees/expressions/functions/scalar/Mask.java | 30 +- .../functions/scalar/MicroSecondsAdd.java | 12 +- .../functions/scalar/MicroSecondsSub.java | 12 +- .../functions/scalar/MilliSecondsAdd.java | 12 +- .../functions/scalar/MilliSecondsSub.java | 12 +- .../expressions/functions/scalar/MinuteCeil.java | 8 +- .../expressions/functions/scalar/MinuteFloor.java | 8 +- .../expressions/functions/scalar/MinutesAdd.java | 19 +- .../expressions/functions/scalar/MinutesSub.java | 19 +- .../expressions/functions/scalar/MonthCeil.java | 8 +- .../expressions/functions/scalar/MonthFloor.java | 8 +- .../expressions/functions/scalar/MonthsAdd.java | 28 +- .../expressions/functions/scalar/MonthsSub.java | 28 +- .../trees/expressions/functions/scalar/NullIf.java | 67 +- .../trees/expressions/functions/scalar/Nvl.java | 67 +- .../expressions/functions/scalar/QuartersAdd.java | 5 +- .../expressions/functions/scalar/QuartersSub.java | 5 +- .../expressions/functions/scalar/SecToTime.java | 5 +- .../expressions/functions/scalar/SecondCeil.java | 8 +- .../expressions/functions/scalar/SecondFloor.java | 8 +- .../expressions/functions/scalar/SecondsAdd.java | 19 +- .../expressions/functions/scalar/SecondsSub.java | 19 +- .../scalar/{SecToTime.java => Soundex.java} | 26 +- .../functions/scalar/StructElement.java | 14 +- .../trees/expressions/functions/scalar/ToJson.java | 18 + .../expressions/functions/scalar/Uniform.java | 117 ++ .../expressions/functions/scalar/WeekCeil.java | 8 +- .../expressions/functions/scalar/WeekFloor.java | 8 +- .../expressions/functions/scalar/WeeksAdd.java | 28 +- .../expressions/functions/scalar/WeeksSub.java | 28 +- .../expressions/functions/scalar/YearCeil.java | 8 +- .../expressions/functions/scalar/YearFloor.java | 8 +- .../expressions/functions/scalar/YearsAdd.java | 28 +- .../expressions/functions/scalar/YearsSub.java | 28 +- .../trees/expressions/literal/ArrayLiteral.java | 2 +- .../trees/expressions/literal/DateLiteral.java | 2 + .../trees/expressions/literal/DateTimeLiteral.java | 2 + .../expressions/literal/DateTimeV2Literal.java | 8 +- .../trees/expressions/literal/Interval.java | 2 +- .../trees/expressions/literal/LargeIntLiteral.java | 8 + .../nereids/trees/expressions/literal/Literal.java | 27 +- .../trees/expressions/literal/MapLiteral.java | 69 +- .../expressions/literal/StringLikeLiteral.java | 2 +- .../trees/expressions/literal/StructLiteral.java | 2 +- .../trees/expressions/literal/TimeV2Literal.java | 24 +- .../expressions/literal/VarBinaryLiteral.java | 150 ++ .../visitor/AggregateFunctionVisitor.java | 10 - .../expressions/visitor/ExpressionVisitor.java | 5 + .../expressions/visitor/ScalarFunctionVisitor.java | 25 + .../apache/doris/nereids/trees/plans/PlanType.java | 6 + .../nereids/trees/plans/algebra/Aggregate.java | 13 + .../AdminBackupClusterSnapshotCommand.java | 110 ++ .../commands/AdminDropClusterSnapshotCommand.java | 108 ++ .../commands/AdminSetClusterSnapshotCommand.java | 154 ++ .../commands/AdminShowClusterSnapshotCommand.java | 126 ++ .../AdminShowClusterSnapshotPropertiesCommand.java | 110 ++ .../plans/commands/CreateFunctionCommand.java | 57 +- .../trees/plans/commands/CreateMTMVCommand.java | 6 +- .../trees/plans/commands/CreatePolicyCommand.java | 42 +- .../plans/commands/CreateStorageVaultCommand.java | 2 +- .../trees/plans/commands/CreateTableCommand.java | 80 +- .../trees/plans/commands/OptimizeTableCommand.java | 144 ++ .../trees/plans/commands/ShowLoadCommand.java | 4 +- .../plans/commands/ShowProcessListCommand.java | 2 +- .../plans/commands/ShowTransactionCommand.java | 5 +- .../plans/commands/ShowUserPropertyCommand.java | 6 +- .../commands/alter/AlterRepositoryCommand.java | 23 +- .../trees/plans/commands/info/CopyIntoInfo.java | 5 +- .../trees/plans/commands/info/CreateMTMVInfo.java | 143 +- .../plans/commands/info/CreateResourceInfo.java | 4 +- .../trees/plans/commands/info/CreateTableInfo.java | 218 ++- .../plans/commands/info/FixedRangePartition.java | 8 + .../trees/plans/commands/info/InPartition.java | 4 + .../trees/plans/commands/info/IndexDefinition.java | 3 +- .../plans/commands/info/LessThanPartition.java | 4 + .../plans/commands/info/PartitionDefinition.java | 32 + .../plans/commands/info/PartitionTableInfo.java | 4 + .../plans/commands/info/ReplacePartitionOp.java | 3 +- .../plans/commands/info/RollupDefinition.java | 21 + .../plans/commands/info/SetUserPropertyVarOp.java | 2 + .../trees/plans/commands/info/TableRefInfo.java | 38 +- .../insert/BaseExternalTableInsertExecutor.java | 6 + .../plans/commands/insert/JdbcInsertExecutor.java | 6 + .../insert/OlapGroupCommitInsertExecutor.java | 6 + .../plans/commands/insert/OlapInsertExecutor.java | 9 +- .../commands/optimize/BaseOptimizeAction.java | 211 +++ .../plans/commands/optimize/OptimizeAction.java | 98 + .../commands/optimize/OptimizeActionFactory.java | 83 + .../trees/plans/distribute/DistributePlanner.java | 3 +- .../trees/plans/logical/LogicalSetOperation.java | 14 + .../trees/plans/physical/PhysicalOlapScan.java | 19 +- .../plans/physical/PhysicalOneRowRelation.java | 13 + .../trees/plans/visitor/CommandVisitor.java | 35 + .../plans/visitor/ExpressionLineageReplacer.java | 4 +- .../apache/doris/nereids/types/AggStateType.java | 8 + .../org/apache/doris/nereids/types/BigIntType.java | 5 + .../org/apache/doris/nereids/types/DataType.java | 11 + .../apache/doris/nereids/types/DecimalV3Type.java | 17 +- .../apache/doris/nereids/types/IntegerType.java | 5 + .../apache/doris/nereids/types/LargeIntType.java | 5 + .../apache/doris/nereids/types/SmallIntType.java | 5 + .../apache/doris/nereids/types/StructField.java | 2 + .../org/apache/doris/nereids/types/StructType.java | 24 +- .../apache/doris/nereids/types/TinyIntType.java | 5 + .../apache/doris/nereids/types/VarBinaryType.java | 103 ++ .../apache/doris/nereids/types/VariantType.java | 10 +- .../doris/nereids/types/coercion/AnyDataType.java | 6 + .../types/coercion/FollowToAnyDataType.java | 5 + .../doris/nereids/types/coercion/IntegralType.java | 7 + .../doris/nereids/util/MoreFieldsThread.java | 31 + .../doris/nereids/util/TypeCoercionUtils.java | 537 +++++- .../java/org/apache/doris/persist/EditLog.java | 10 + .../apache/doris/persist/GlobalVarPersistInfo.java | 5 + .../org/apache/doris/persist/OperationType.java | 2 + .../planner/BackendPartitionedSchemaScanNode.java | 1 + .../apache/doris/planner/GroupCommitPlanner.java | 11 + .../org/apache/doris/planner/IcebergTableSink.java | 26 +- .../org/apache/doris/planner/SchemaScanNode.java | 18 +- .../org/apache/doris/policy/StoragePolicy.java | 2 +- .../java/org/apache/doris/qe/ConnectContext.java | 50 +- .../java/org/apache/doris/qe/ConnectProcessor.java | 83 +- .../main/java/org/apache/doris/qe/Coordinator.java | 9 + .../main/java/org/apache/doris/qe/DdlExecutor.java | 54 - .../java/org/apache/doris/qe/FEOpExecutor.java | 5 + .../java/org/apache/doris/qe/GlobalVariable.java | 26 +- .../main/java/org/apache/doris/qe/LoadContext.java | 9 + .../org/apache/doris/qe/NereidsCoordinator.java | 5 + .../java/org/apache/doris/qe/SessionVariable.java | 146 +- .../main/java/org/apache/doris/qe/SetExecutor.java | 70 - .../java/org/apache/doris/qe/StmtExecutor.java | 97 +- .../main/java/org/apache/doris/qe/VariableMgr.java | 14 +- .../org/apache/doris/qe/cache/CacheAnalyzer.java | 30 +- .../org/apache/doris/qe/runtime/LoadProcessor.java | 3 + .../WorkloadActionSetSessionVar.java | 14 +- .../org/apache/doris/rpc/BackendServiceProxy.java | 33 - .../apache/doris/service/FrontendServiceImpl.java | 64 +- .../sessions/FlightSqlConnectContext.java | 8 +- .../apache/doris/statistics/AnalysisManager.java | 26 +- .../apache/doris/statistics/BaseAnalysisTask.java | 8 +- .../org/apache/doris/statistics/ColStatsData.java | 5 +- .../apache/doris/statistics/ColumnStatistic.java | 24 +- .../apache/doris/statistics/HMSAnalysisTask.java | 2 + .../apache/doris/statistics/OlapAnalysisTask.java | 2 + .../doris/statistics/StatisticsRepository.java | 15 +- .../doris/statistics/util/StatisticsUtil.java | 7 +- .../main/java/org/apache/doris/system/Backend.java | 5 + .../java/org/apache/doris/system/HeartbeatMgr.java | 4 + .../doris/tablefunction/MetadataGenerator.java | 67 + .../java/org/apache/doris/task/AgentClient.java | 61 - .../apache/doris/task/PushStoragePolicyTask.java | 2 +- .../org/apache/doris/analysis/AccessTestUtil.java | 2 +- .../org/apache/doris/backup/BackupJobTest.java | 98 +- .../org/apache/doris/catalog/S3ResourceTest.java | 2 +- .../org/apache/doris/catalog/SchemaTableTest.java | 96 + .../doris/cloud/catalog/HdfsStorageVaultTest.java | 2 +- .../cloud/datasource/CloudInternalCatalogTest.java | 819 --------- .../cloud/system/CloudSystemInfoServiceTest.java | 33 + .../apache/doris/common/ArgumentParsersTest.java | 422 +++++ .../org/apache/doris/common/CacheFactoryTest.java | 32 + .../org/apache/doris/common/GenericPoolTest.java | 35 - .../apache/doris/common/NamedArgumentsTest.java | 394 +++++ .../common/plugin/CloudPluginDownloaderTest.java | 173 ++ .../doris/common/profile/SummaryProfileTest.java | 63 + .../apache/doris/common/util/LocationPathTest.java | 20 +- .../doris/datasource/InternalCatalogTest.java | 600 ------- .../AbstractVendedCredentialsProviderTest.java | 297 ++++ .../credentials/CredentialUtilsTest.java | 246 +++ .../credentials/VendedCredentialsFactoryTest.java | 213 +++ .../doris/datasource/hive/HiveMetadataOpsTest.java | 170 -- .../IcebergVendedCredentialsProviderTest.java | 361 ++-- .../PaimonVendedCredentialsProviderTest.java | 456 +++-- .../paimon/source/PaimonScanNodeTest.java | 12 +- .../property/constants/AzurePropertiesTest.java | 55 - .../AWSGlueMetaStoreBasePropertiesTest.java | 111 ++ .../metastore/AWSGlueMetaStorePropertiesTest.java | 174 -- .../metastore/AbstractIcebergPropertiesTest.java | 125 ++ .../property/metastore/GlueCatalogTest.java | 7 +- .../HMSAliyunDLFMetaStorePropertiesTest.java | 51 + .../metastore/HMSGlueMetaStorePropertiesTest.java | 2 +- .../IcebergAliyunDLFMetaStorePropertiesTest.java | 106 ++ .../IcebergFileSystemMetaStorePropertiesTest.java | 69 + .../IcebergGlueMetaStorePropertiesTest.java | 66 + .../IcebergHMSMetaStorePropertiesTest.java | 69 + .../IcebergS3TablesMetaStorePropertiesTest.java | 59 + .../PaimonAliyunDLFMetaStorePropertiesTest.java | 139 ++ .../property/metastore/PaimonCatalogTest.java | 5 +- .../PaimonFileSystemMetaStorePropertiesTest.java | 63 + .../PaimonHMSMetaStorePropertiesTest.java | 65 + .../property/storage/COSPropertiesTest.java | 15 + .../property/storage/GCSPropertiesTest.java | 14 + .../property/storage/HdfsPropertiesTest.java | 6 + .../property/storage/HdfsPropertiesUtilsTest.java | 70 + .../property/storage/OBSPropertyTest.java | 15 + .../property/storage/OSSPropertiesTest.java | 15 + .../property/storage/S3PropertiesTest.java | 10 + .../apache/doris/external/hms/HmsCatalogTest.java | 5 + .../apache/doris/fs/obj/AzureObjStorageTest.java | 2 +- .../org/apache/doris/fs/obj/S3FileSystemTest.java | 2 +- .../doris/fs/obj/S3ObjStorageGlobListTest.java | 2 +- .../doris/load/loadv2/InsertLoadJobTest.java | 2 +- .../apache/doris/load/loadv2/LoadManagerTest.java | 8 +- ...RelatedPartitionDescSyncLimitGeneratorTest.java | 4 +- .../doris/mysql/privilege/SetPasswordTest.java | 29 +- .../glue/translator/CountStarSmallestSlotTest.java | 460 +++++ .../mv/PreMaterializedViewRewriterTest.java | 17 + .../doris/nereids/parser/NereidsParserTest.java | 37 + .../nereids/parser/VarBinaryLiteralParserTest.java | 175 ++ .../postprocess/TopnLazyMaterializeTest.java | 27 + .../doris/nereids/properties/UniqueTest.java | 4 +- .../nereids/rules/analysis/BindRelationTest.java | 32 + .../nereids/rules/expression/FoldConstantTest.java | 243 +-- .../expression/SimplifyArithmeticRuleTest.java | 1 - .../rules/SimplifyComparisonPredicateTest.java | 146 +- .../rules/SimplifyConditionalFunctionTest.java | 10 +- .../rewrite/DistinctAggregateRewriterTest.java | 38 + .../PushDownVirtualColumnsIntoOlapScanTest.java | 414 ++++- .../rules/rewrite/SplitMultiDistinctTest.java | 15 + .../doris/nereids/stats/FilterEstimationTest.java | 11 +- .../doris/nereids/stats/StatsCalculatorTest.java | 54 +- .../apache/doris/nereids/stats/StatsTestUtil.java | 2 +- .../doris/nereids/trees/expressions/UdfTest.java | 23 +- .../trees/expressions/VarBinaryLiteralTest.java | 103 ++ .../functions/ComputeSignatureHelperTest.java | 67 +- .../trees/expressions/literal/DateLiteralTest.java | 3 + .../expressions/literal/DateTimeLiteralTest.java | 5 + .../expressions/literal/IntegerLiteralTest.java | 22 +- .../expressions/literal/LargeIntLiteralTest.java | 89 + .../expressions/literal/VarBinaryLiteralTest.java | 110 ++ .../trees/plans/CreateTableCommandTest.java | 183 ++ .../AdminBackupClusterSnapshotCommandTest.java | 123 ++ .../AdminDropClusterSnapshotCommandTest.java | 119 ++ .../AdminSetClusterSnapshotCommandTest.java | 154 ++ .../AdminShowClusterSnapshotCommandTest.java | 101 ++ ...inShowClusterSnapshotPropertiesCommandTest.java | 101 ++ .../trees/plans/commands/LoadCommandTest.java | 42 + .../doris/nereids/types/VarBinaryTypeTest.java | 88 + .../org/apache/doris/nereids/util/PlanChecker.java | 80 +- .../doris/nereids/util/TypeCoercionMatrixTest.java | 1272 +++++++++++++ .../doris/nereids/util/TypeCoercionUtilsTest.java | 558 +----- .../java/org/apache/doris/policy/PolicyTest.java | 2 +- .../apache/doris/qe/ConnectProcessorRetryTest.java | 181 ++ .../java/org/apache/doris/qe/SetExecutorTest.java | 94 - .../java/org/apache/doris/qe/SqlCacheTest.java | 7 +- .../org/apache/doris/rewrite/FEFunctionsTest.java | 4 +- .../doris/statistics/AnalysisManagerTest.java | 4 +- .../doris/statistics/OlapAnalysisTaskTest.java | 8 +- .../doris/statistics/util/StatisticsUtilTest.java | 22 +- .../apache/doris/utframe/MockedBackendFactory.java | 33 - gensrc/proto/cloud.proto | 25 +- gensrc/proto/internal_service.proto | 2 + gensrc/proto/segment_v2.proto | 6 + gensrc/script/Makefile | 4 +- gensrc/script/gen_build_version.sh | 17 +- gensrc/thrift/BackendService.thrift | 25 +- gensrc/thrift/Descriptors.thrift | 5 +- gensrc/thrift/Exprs.thrift | 6 + gensrc/thrift/FrontendService.thrift | 16 +- gensrc/thrift/HeartbeatService.thrift | 5 + gensrc/thrift/PaloInternalService.thrift | 183 +- gensrc/thrift/PlanNodes.thrift | 6 +- gensrc/thrift/Types.thrift | 13 +- regression-test/conf/regression-conf.groovy | 4 + .../data/ann_index_p0/cast_string_as_array.out | Bin 0 -> 363 bytes .../scalar_quantization.out} | Bin 133 -> 143 bytes .../default_vcg_auto_failover.out | Bin 0 -> 299 bytes .../failover_standby_disable_compaction.out} | Bin 129 -> 171 bytes .../standby_disable_compaction.out} | Bin 129 -> 171 bytes .../use_default_vcg_read_write.out | Bin 0 -> 299 bytes .../use_vcg_read_write_routine_load.out | Bin 0 -> 3581 bytes .../use_vcg_read_write_unhealthy_node_50.out | Bin 0 -> 299 bytes .../virtual_compute_group/vcg_auto_failover.out | Bin 0 -> 299 bytes .../vcg_auto_failover_manual_failback.out | Bin 0 -> 367 bytes .../test_compaction_with_empty_rowset.out | Bin 0 -> 349 bytes .../data/correctness/test_time_function.out | Bin 447 -> 860 bytes .../test_outer_join_with_window_function.out | Bin 223 -> 220 bytes ...test_outer_join_with_window_function_datev2.out | Bin 223 -> 220 bytes .../data/correctness_p0/test_select_constant.out | Bin 214 -> 216 bytes .../data/datatype_p0/datetimev2/test_exprs.out | Bin 2316 -> 2496 bytes .../float/test_float_special_values.out | Bin 11870 -> 66662 bytes .../one_level_nestedtypes_with_s3data.out | Bin 3604422 -> 3598328 bytes .../nested_types/query/sql/nested_with_join.out | Bin 1020 -> 1024 bytes .../test_nestedtypes_csv_insert_into_with_s3.out | Bin 436103 -> 412376 bytes .../test_nestedtypes_json_insert_into_with_s3.out | Bin 733470 -> 705865 bytes .../get_assignment_compatible_type.out | Bin 753 -> 767 bytes .../test_create_view_nereids.out | Bin 18763 -> 19317 bytes .../data/ddl_p0/test_alter_view_nereids.out | Bin 1051 -> 1076 bytes .../data/doc/sql-manual/StructNullsafe.out | Bin 0 -> 379 bytes .../basic-elements/data-types/array-md.out | Bin 1969 -> 1984 bytes .../sql-function/test_array_function.out | Bin 0 -> 7755 bytes .../sql-manual/sql-functions/date_functions.out | Bin 0 -> 17973 bytes .../outfile/csv/test_outfile_csv_complex_type.out | Bin 8605 -> 8561 bytes .../outfile/csv/test_outfile_csv_map_type.out | Bin 14057 -> 13059 bytes .../csv/test_outfile_csv_one_nested_type.out | Bin 9348 -> 9244 bytes .../orc/test_outfile_orc_one_nested_type.out | Bin 9323 -> 9219 bytes .../parquet/test_outfile_parquet_complex_type.out | Bin 8574 -> 8522 bytes .../parquet/test_outfile_parquet_map_type.out | Bin 13740 -> 12302 bytes .../test_outfile_parquet_one_nested_type.out | Bin 9323 -> 9219 bytes .../export_p0/test_outfile_orc_complex_type.out | Bin 8549 -> 8505 bytes .../data/export_p0/test_outfile_orc_map_type.out | Bin 14304 -> 13292 bytes .../data/external_table_p0/es/test_es_query.out | Bin 154465 -> 162279 bytes .../orc/test_hive_read_orc_complex_type.out | Bin 20515 -> 20471 bytes .../external_table_p0/hive/hive_config_test.out | Bin 399 -> 464 bytes .../hive/test_hive_basic_type.out | Bin 4557927 -> 4557891 bytes .../hive/test_hive_get_schema_from_table.out | Bin 45855 -> 83101 bytes .../data/external_table_p0/hive/test_hive_orc.out | Bin 357273 -> 624091 bytes .../hive/test_hive_topn_lazy_mat.out | Bin 19465 -> 79711 bytes .../action/test_iceberg_optimize_actions.out} | Bin 129 -> 143 bytes .../jdbc/test_jdbc_query_mysql.out | Bin 82549 -> 82496 bytes .../external_table_p0/jdbc/test_jdbc_query_tvf.out | Bin 2354 -> 2372 bytes .../jdbc/test_mysql_jdbc_catalog.out | Bin 24751 -> 24345 bytes .../type_test/ctas/test_mysql_all_types_ctas.out | Bin 91700 -> 91466 bytes .../select/test_mysql_all_types_select.out | Bin 94289 -> 94636 bytes .../type_test/tvf/test_mysql_all_types_tvf.out | Bin 6215 -> 6251 bytes .../paimon/test_paimon_catalog.out | Bin 791619 -> 788923 bytes .../external_table_p0/paimon/test_paimon_gcs.out | Bin 0 -> 665 bytes .../external_table_p2/hudi/test_hudi_snapshot.out | Bin 696105 -> 696473 bytes .../paimon/test_paimon_hms_catalog.out | Bin 2143 -> 3483 bytes .../data/function_p0/test_array_agg.out | Bin 344 -> 311 bytes .../data/function_p0/test_math_function.out | Bin 0 -> 1486 bytes regression-test/data/insert_p0/insert.out | Bin 15882 -> 16004 bytes .../analyzer/test_custom_analyzer.out | Bin 1217 -> 1277 bytes .../test_cloud_build_index_basic.out | Bin 0 -> 551 bytes .../test_cloud_build_index_update.out | Bin 0 -> 605 bytes .../test_array_contains_with_inverted_index.out | Bin 44492 -> 56354 bytes .../inverted_index_p0/test_index_approx_top_k.out | Bin 9037 -> 0 bytes .../test_index_approx_top_sum.out | Bin 9145 -> 0 bytes .../test_inverted_index_storage_format_upgrade.out | Bin 1241 -> 0 bytes .../data/json_p0/test_json_load_and_function.out | Bin 261057 -> 261045 bytes .../data/jsonb_p0/test_json_to_json.out | Bin 2295 -> 2791 bytes .../data/jsonb_p0/test_jsonb_load_and_function.out | Bin 189130 -> 189123 bytes .../data/load_p0/broker_load/test_array_load.out | Bin 7679 -> 11903 bytes .../broker_load/test_broker_load_seq.out} | Bin 129 -> 138 bytes .../broker_load/test_broker_load_with_negtive.out | Bin 0 -> 578 bytes .../load_p0/broker_load/test_s3_load_with_set.out | Bin 0 -> 224 bytes .../test_ingestion_load_alter_partition.out} | Bin 129 -> 162 bytes .../data/load_p0/stream_load/test_bitmap.csv | 1 + .../stream_load/test_map_load_and_function.out | Bin 23868 -> 39200 bytes .../stream_load/test_stream_load_bitmap.out} | Bin 129 -> 115 bytes .../stream_load/test_stream_load_with_set.out} | Bin 129 -> 113 bytes .../data/load_p0/tvf/test_tvf_error_data.out | Bin 0 -> 629 bytes .../data/mtmv_p0/test_create_with_json_object.out | Bin 236 -> 239 bytes .../array/test_array_char(255).csv | 4 +- .../array/test_array_double.csv | 2 +- .../array/test_array_varchar(65535).csv | 2 +- .../test_array_varchar(65535)_hive_serde_res.csv | 2 +- .../cast_function/test_cast_map_function.out | Bin 784 -> 745 bytes .../nereids_function_p0/scalar_function/Array.out | Bin 770399 -> 771727 bytes .../nereids_function_p0/scalar_function/Array1.out | Bin 33267319 -> 34343181 bytes .../data/nereids_function_p0/scalar_function/J.out | Bin 160542 -> 160535 bytes .../nereids_function_p0/scalar_function/Map.out | Bin 28228 -> 28192 bytes .../data/nereids_function_p0/scalar_function/S.out | Bin 53833 -> 53858 bytes .../data/nereids_function_p0/type_coercion.out | Bin 732 -> 777 bytes .../data/nereids_p0/datatype/test_map.out | Bin 746 -> 1322 bytes .../nereids_p0/ddl/show_view/show_view_command.out | Bin 1995 -> 2071 bytes .../fold_constant/fe_constant_cast_to_date.out | Bin 2083 -> 2109 bytes .../fold_constant/fe_constant_cast_to_datetime.out | Bin 2927 -> 2966 bytes .../fold_constant/fold_constant_by_be.out | Bin 222 -> 223 bytes .../operator/test_arithmetic_operators.out | Bin 8249 -> 7894 bytes .../data/nereids_p0/show/test_show_create_view.out | Bin 763 -> 837 bytes .../conditional_functions/test_coalesce.out | Bin 8653 -> 8703 bytes .../test_conditional_function.out | Bin 2498 -> 2722 bytes .../conditional_functions/test_nullif.out | Bin 4252 -> 4701 bytes .../string_functions/test_string_function.out | Bin 3233 -> 4097 bytes .../data/nereids_p0/union/test_union.out | Bin 13835 -> 13952 bytes .../adjust_nullable/test_adjust_nullable.out | Bin 1121 -> 489 bytes .../agg_skew_rewrite/agg_skew_rewrite.out | Bin 8320 -> 8202 bytes .../nereids_rules_p0/agg_strategy/agg_strategy.out | Bin 21517 -> 21077 bytes .../distinct_agg_strategy_selector.out | Bin 4760 -> 4377 bytes .../agg_strategy/test_variables.out | Bin 6275 -> 6211 bytes .../constant_propagation/constant_propagation.out | Bin 21556 -> 21658 bytes .../distinct_split/disitinct_split.out | Bin 13518 -> 13158 bytes .../nereids_rules_p0/eager_aggregate/basic.out | Bin 3111 -> 3201 bytes .../eager_aggregate/basic_one_side.out | Bin 3131 -> 3221 bytes ...simplify_comparison_predicate_int_vs_double.out | Bin 0 -> 6124 bytes .../filter_push_down/push_filter_through.out | Bin 9740 -> 9770 bytes .../extend_infer_equal_predicate.out | Bin 30311 -> 30295 bytes .../infer_predicate/infer_intersect_except.out | Bin 4358 -> 4335 bytes .../infer_predicate/pull_up_predicate_literal.out | Bin 72316 -> 69355 bytes .../infer_predicate/pull_up_predicate_set_op.out | Bin 19686 -> 19873 bytes .../max_min_filter_push_down.out | Bin 5969 -> 5984 bytes .../merge_aggregate/merge_aggregate.out | Bin 7977 -> 7803 bytes .../mv/date_trunc/mv_with_date_trunc.out | Bin 4435 -> 4378 bytes .../union_all_compensate/union_all_compensate.out | Bin 1287 -> 2103 bytes .../union_rewrite_grace_big.out | Bin 4063 -> 6417 bytes .../data/nereids_rules_p0/pkfk/eliminate_inner.out | Bin 6967 -> 7072 bytes .../pull_up_join_from_union.out | Bin 5762 -> 5777 bytes .../simplify_conditional_function.out | Bin 1229 -> 1281 bytes .../data/nereids_rules_p0/sumRewrite.out | Bin 17085 -> 16815 bytes .../add_project_for_unique_function.out | Bin 13431 -> 13215 bytes .../data/nereids_syntax_p0/agg_4_phase.out | Bin 245 -> 316 bytes .../data/nereids_syntax_p0/set_operation.out | Bin 3623 -> 5494 bytes .../sql/test_compare_expression.out | Bin 898 -> 781 bytes .../test_arithmetic_operators.out | Bin 8249 -> 7894 bytes .../data/point_query_p0/test_point_query.out | Bin 9949 -> 9954 bytes regression-test/data/query_p0/cache/sql_cache.out | Bin 669 -> 837 bytes regression-test/data/query_p0/cast/test_cast.out | Bin 1214 -> 1412 bytes .../query_p0/cast/test_complextype_to_json.out | Bin 1410 -> 1498 bytes .../test_inject_send_filter_size_fail.out | Bin 197 -> 200 bytes .../join/test_slow_close/test_slow_close.out | Bin 133 -> 135 bytes .../operator/test_arithmetic_operators.out | Bin 3289 -> 3193 bytes .../schema_table/test_sql_block_rule_status.out | Bin 0 -> 270 bytes .../test_aggregate_all_functions2.out | Bin 9232 -> 9232 bytes .../sql_functions/array_functions/sql/q02.out | Bin 2827 -> 2854 bytes .../array_functions/test_array_functions.out | Bin 28349 -> 29216 bytes .../test_array_functions_by_literal.out | Bin 29801 -> 30420 bytes .../test_array_functions_with_where.out | Bin 1869 -> 1911 bytes .../array_functions/test_array_with_scale_type.out | Bin 7941 -> 8143 bytes .../cast_function/test_cast_map_function.out | Bin 784 -> 745 bytes .../conditional_functions/test_coalesce.out | Bin 8649 -> 8703 bytes .../test_conditional_function.out | Bin 3456 -> 3303 bytes .../conditional_functions/test_json_parse.out | Bin 768 -> 1066 bytes .../conditional_functions/test_nullif.out | Bin 4280 -> 4574 bytes .../datetime_functions/test_date_floor_ceil.out | Bin 886 -> 6924 bytes .../json_functions/test_json_function.out | Bin 2071 -> 2996 bytes .../sql_functions/math_functions/test_round.out | Bin 5553 -> 5583 bytes .../string_functions/test_str_to_map.out | Bin 17405 -> 8142 bytes .../query_p0/topn_lazy/topn_lazy_on_data_model.out | Bin 1272 -> 2130 bytes regression-test/data/query_p0/union/test_union.out | Bin 13835 -> 13952 bytes .../adjust_virtual_slot_nullable.out | Bin 693 -> 626 bytes .../fix_array_type_and_lambda_func.out | Bin 0 -> 232 bytes .../data/shape_check/clickbench/query10.out | Bin 467 -> 415 bytes .../data/shape_check/clickbench/query11.out | Bin 508 -> 472 bytes .../data/shape_check/clickbench/query12.out | Bin 508 -> 472 bytes .../data/shape_check/clickbench/query14.out | Bin 504 -> 468 bytes .../data/shape_check/clickbench/query23.out | Bin 567 -> 531 bytes .../data/shape_check/clickbench/query9.out | Bin 448 -> 414 bytes .../tpcds_sf100/constraints/query23.out | Bin 4992 -> 4986 bytes .../tpcds_sf100/noStatsRfPrune/query1.out | Bin 2031 -> 2025 bytes .../tpcds_sf100/noStatsRfPrune/query11.out | Bin 3423 -> 3391 bytes .../tpcds_sf100/noStatsRfPrune/query14.out | Bin 10059 -> 9921 bytes .../tpcds_sf100/noStatsRfPrune/query23.out | Bin 4787 -> 4781 bytes .../tpcds_sf100/noStatsRfPrune/query24.out | Bin 3122 -> 3116 bytes .../tpcds_sf100/noStatsRfPrune/query30.out | Bin 3113 -> 3107 bytes .../tpcds_sf100/noStatsRfPrune/query4.out | Bin 5313 -> 5217 bytes .../tpcds_sf100/noStatsRfPrune/query44.out | Bin 4889 -> 4877 bytes .../tpcds_sf100/noStatsRfPrune/query58.out | Bin 7035 -> 7071 bytes .../tpcds_sf100/noStatsRfPrune/query65.out | Bin 2774 -> 2771 bytes .../tpcds_sf100/noStatsRfPrune/query72.out | Bin 4354 -> 4381 bytes .../tpcds_sf100/noStatsRfPrune/query74.out | Bin 3355 -> 3323 bytes .../tpcds_sf100/noStatsRfPrune/query81.out | Bin 3069 -> 3063 bytes .../tpcds_sf100/no_stats_shape/query1.out | Bin 2155 -> 2149 bytes .../tpcds_sf100/no_stats_shape/query11.out | Bin 3497 -> 3465 bytes .../tpcds_sf100/no_stats_shape/query14.out | Bin 10693 -> 10555 bytes .../tpcds_sf100/no_stats_shape/query23.out | Bin 4964 -> 4958 bytes .../tpcds_sf100/no_stats_shape/query24.out | Bin 3278 -> 3272 bytes .../tpcds_sf100/no_stats_shape/query30.out | Bin 3272 -> 3266 bytes .../tpcds_sf100/no_stats_shape/query4.out | Bin 5411 -> 5315 bytes .../tpcds_sf100/no_stats_shape/query44.out | Bin 4889 -> 4877 bytes .../tpcds_sf100/no_stats_shape/query58.out | Bin 7077 -> 7113 bytes .../tpcds_sf100/no_stats_shape/query65.out | Bin 2860 -> 2857 bytes .../tpcds_sf100/no_stats_shape/query72.out | Bin 4556 -> 4583 bytes .../tpcds_sf100/no_stats_shape/query74.out | Bin 3429 -> 3397 bytes .../tpcds_sf100/no_stats_shape/query81.out | Bin 3228 -> 3222 bytes .../shape_check/tpcds_sf100/rf_prune/query1.out | Bin 2103 -> 2097 bytes .../shape_check/tpcds_sf100/rf_prune/query14.out | Bin 10129 -> 9991 bytes .../shape_check/tpcds_sf100/rf_prune/query23.out | Bin 4974 -> 4968 bytes .../shape_check/tpcds_sf100/rf_prune/query24.out | Bin 3122 -> 3116 bytes .../shape_check/tpcds_sf100/rf_prune/query30.out | Bin 3239 -> 3233 bytes .../shape_check/tpcds_sf100/rf_prune/query4.out | Bin 5167 -> 5215 bytes .../shape_check/tpcds_sf100/rf_prune/query44.out | Bin 4689 -> 4677 bytes .../shape_check/tpcds_sf100/rf_prune/query58.out | Bin 7152 -> 7188 bytes .../shape_check/tpcds_sf100/rf_prune/query65.out | Bin 2916 -> 2913 bytes .../shape_check/tpcds_sf100/rf_prune/query8.out | Bin 10064 -> 10064 bytes .../shape_check/tpcds_sf100/rf_prune/query81.out | Bin 3061 -> 3055 bytes .../data/shape_check/tpcds_sf100/shape/query1.out | Bin 2176 -> 2170 bytes .../data/shape_check/tpcds_sf100/shape/query14.out | Bin 10603 -> 10465 bytes .../data/shape_check/tpcds_sf100/shape/query23.out | Bin 5016 -> 5010 bytes .../data/shape_check/tpcds_sf100/shape/query24.out | Bin 3277 -> 3271 bytes .../data/shape_check/tpcds_sf100/shape/query30.out | Bin 3291 -> 3285 bytes .../data/shape_check/tpcds_sf100/shape/query4.out | Bin 5265 -> 5313 bytes .../data/shape_check/tpcds_sf100/shape/query44.out | Bin 4689 -> 4677 bytes .../data/shape_check/tpcds_sf100/shape/query58.out | Bin 7194 -> 7230 bytes .../data/shape_check/tpcds_sf100/shape/query65.out | Bin 3002 -> 2999 bytes .../data/shape_check/tpcds_sf100/shape/query8.out | Bin 10108 -> 10108 bytes .../data/shape_check/tpcds_sf100/shape/query81.out | Bin 3220 -> 3214 bytes .../tpcds_sf1000/bs_downgrade_shape/query44.out | Bin 4683 -> 4671 bytes .../tpcds_sf1000/bs_downgrade_shape/query8.out | Bin 10108 -> 10108 bytes .../data/shape_check/tpcds_sf1000/hint/query1.out | Bin 2259 -> 2253 bytes .../data/shape_check/tpcds_sf1000/hint/query14.out | Bin 10758 -> 10620 bytes .../data/shape_check/tpcds_sf1000/hint/query23.out | Bin 5016 -> 5010 bytes .../data/shape_check/tpcds_sf1000/hint/query24.out | Bin 3433 -> 3427 bytes .../data/shape_check/tpcds_sf1000/hint/query30.out | Bin 3411 -> 3405 bytes .../data/shape_check/tpcds_sf1000/hint/query44.out | Bin 4761 -> 4749 bytes .../data/shape_check/tpcds_sf1000/hint/query58.out | Bin 7213 -> 7249 bytes .../data/shape_check/tpcds_sf1000/hint/query65.out | Bin 3240 -> 3237 bytes .../data/shape_check/tpcds_sf1000/hint/query8.out | Bin 10311 -> 10311 bytes .../data/shape_check/tpcds_sf1000/hint/query81.out | Bin 3359 -> 3353 bytes .../data/shape_check/tpcds_sf1000/shape/query1.out | Bin 2178 -> 2172 bytes .../shape_check/tpcds_sf1000/shape/query14.out | Bin 10599 -> 10461 bytes .../shape_check/tpcds_sf1000/shape/query23.out | Bin 5016 -> 5010 bytes .../shape_check/tpcds_sf1000/shape/query24.out | Bin 3282 -> 3276 bytes .../shape_check/tpcds_sf1000/shape/query30.out | Bin 3272 -> 3266 bytes .../data/shape_check/tpcds_sf1000/shape/query4.out | Bin 5265 -> 5313 bytes .../shape_check/tpcds_sf1000/shape/query44.out | Bin 4683 -> 4671 bytes .../shape_check/tpcds_sf1000/shape/query58.out | Bin 7194 -> 7230 bytes .../shape_check/tpcds_sf1000/shape/query65.out | Bin 3002 -> 2999 bytes .../data/shape_check/tpcds_sf1000/shape/query8.out | Bin 10108 -> 10108 bytes .../shape_check/tpcds_sf1000/shape/query81.out | Bin 3220 -> 3214 bytes .../shape_check/tpcds_sf10t_orc/shape/query1.out | Bin 2155 -> 2149 bytes .../shape_check/tpcds_sf10t_orc/shape/query11.out | Bin 3781 -> 3749 bytes .../shape_check/tpcds_sf10t_orc/shape/query14.out | Bin 10621 -> 10483 bytes .../shape_check/tpcds_sf10t_orc/shape/query23.out | Bin 5273 -> 5267 bytes .../shape_check/tpcds_sf10t_orc/shape/query24.out | Bin 3272 -> 3266 bytes .../shape_check/tpcds_sf10t_orc/shape/query30.out | Bin 2537 -> 2531 bytes .../shape_check/tpcds_sf10t_orc/shape/query4.out | Bin 5963 -> 5863 bytes .../shape_check/tpcds_sf10t_orc/shape/query44.out | Bin 4841 -> 4829 bytes .../shape_check/tpcds_sf10t_orc/shape/query58.out | Bin 7077 -> 7113 bytes .../shape_check/tpcds_sf10t_orc/shape/query65.out | Bin 2860 -> 2857 bytes .../shape_check/tpcds_sf10t_orc/shape/query72.out | Bin 4561 -> 4588 bytes .../shape_check/tpcds_sf10t_orc/shape/query74.out | Bin 3769 -> 3737 bytes .../shape_check/tpcds_sf10t_orc/shape/query81.out | Bin 2537 -> 2531 bytes .../data/shape_check/tpch_sf1000/hint/q11.out | Bin 2074 -> 2068 bytes .../tpch_sf1000/nostats_rf_prune/q11.out | Bin 2168 -> 2162 bytes .../tpch_sf1000/nostats_rf_prune/q16.out | Bin 1200 -> 1148 bytes .../data/shape_check/tpch_sf1000/rf_prune/q11.out | Bin 2176 -> 2170 bytes .../data/shape_check/tpch_sf1000/shape/q11.out | Bin 2176 -> 2170 bytes .../shape_check/tpch_sf1000/shape_no_stats/q11.out | Bin 2168 -> 2162 bytes .../shape_check/tpch_sf1000/shape_no_stats/q16.out | Bin 1200 -> 1148 bytes .../test_show_create_table_and_views_nereids.out | Bin 6596 -> 6614 bytes .../data/variant_p0/test_array_function.out | Bin 374 -> 355 bytes .../data/variant_p0/variant_hirachinal.out | Bin 697 -> 889 bytes .../test_array_contains_with_inverted_index.out | Bin 46962 -> 56604 bytes .../create_view_star_except_and_cast_to_sql.out | Bin 739 -> 763 bytes regression-test/data/view_p0/view_p0.out | Bin 3484 -> 3590 bytes regression-test/framework/pom.xml | 13 + .../org/apache/doris/regression/Config.groovy | 48 +- .../apache/doris/regression/ConfigOptions.groovy | 49 + .../doris/regression/action/HttpCliAction.groovy | 7 +- .../org/apache/doris/regression/suite/Suite.groovy | 213 ++- .../doris/regression/suite/SuiteCluster.groovy | 13 + .../apache/doris/regression/util/GlobalLock.groovy | 58 + .../apache/doris/regression/util/JdbcUtils.groovy | 42 +- .../doris/regression/util/OutputUtils.groovy | 46 + .../regression/util/RemoteFileOperator.groovy | 370 ++++ .../cloud_p0/conf/regression-conf-custom.groovy | 1 + .../pipeline/external/conf/regression-conf.groovy | 4 + .../nonConcurrent/conf/regression-conf.groovy | 4 + .../pipeline/p0/conf/regression-conf.groovy | 5 + .../plugins/plugin_curl_requester.groovy | 13 +- regression-test/plugins/plugin_index_change.groovy | 92 +- regression-test/plugins/test_helper.groovy | 2 +- .../suites/ai_p0/test_ai_functions.groovy | 12 +- .../alter_p2/test_alter_colocate_group.groovy | 10 +- .../ann_index_p0/cast_string_as_array.groovy | 155 ++ .../suites/ann_index_p0/scalar_quantization.groovy | 60 + .../auth_call/test_assistant_command_auth.groovy | 4 +- .../suites/auth_call/test_ddl_catalog_auth.groovy | 12 +- .../test_master_slave_consistency_auth.groovy | 6 +- .../suites/auth_p0/test_select_column_auth.groovy | 2 +- .../test_backup_restore_colocate.groovy | 2 +- .../backup_restore/test_backup_restore_hdfs.groovy | 2 +- .../test_backup_restore_with_hdfs.groovy | 2 +- .../test_create_and_drop_repository.groovy | 2 +- .../suites/ccr_syncer_p0/test_txn_insert.groovy | 4 +- .../cloud/multi_cluster/vcluster/vcluster.groovy | 173 -- .../cloud_p0/cache/ttl/test_ttl_lru_evict.groovy | 374 ++-- .../virtual_compute_group/ddl/nation.sql | 12 + .../virtual_compute_group/ddl/nation_delete.sql | 1 + .../virtual_compute_group/ddl/nation_load.sql | 6 + .../default_vcg_auto_failover.groovy | 111 +- .../failover_standby_disable_compaction.groovy | 313 ++++ .../load_trigger_failover.groovy | 164 ++ .../standby_disable_compaction.groovy | 275 +++ .../use_default_vcg_read_write.groovy | 159 +- .../use_vcg_read_write.groovy | 136 +- ...oovy => use_vcg_read_write_routine_load.groovy} | 348 ++-- ...te.groovy => use_vcg_read_write_s3_load.groovy} | 320 ++-- ...=> use_vcg_read_write_unhealthy_node_50.groovy} | 155 +- .../virtual_compute_group/vcg_auto_failover.groovy | 88 +- ...vy => vcg_auto_failover_manual_failback.groovy} | 286 +-- .../recycler/test_recycler_with_drop_column.groovy | 2 +- .../recycler/test_recycler_with_drop_index.groovy | 2 +- .../recycler/test_recycler_with_drop_mv.groovy | 4 +- .../recycler/test_recycler_with_drop_rollup.groovy | 2 +- .../cloud_p0/snapshot/test_snapshot_command.groovy | 55 + .../compaction_width_array_column.groovy | 8 +- ...paction_with_dup_key_max_file_size_limit.groovy | 2 +- .../test_compaction_fail_release_lock.groovy | 14 +- .../compaction/test_compaction_score_action.groovy | 1 + .../test_compaction_uniq_keys_row_store.groovy | 2 +- .../test_compaction_with_empty_rowset.groovy | 101 ++ .../test_config_prune_delete_sign.groovy | 29 +- .../test_filecache_with_base_compaction.groovy | 8 +- ...ilecache_with_base_compaction_thresthold.groovy | 740 ++++++++ .../test_single_replica_compaction.groovy | 2 +- .../suites/correctness/test_time_function.groovy | 35 + .../test_inlineview_with_project.groovy | 2 +- .../correctness_p0/test_mask_function.groovy | 23 + .../suites/correctness_p0/test_time_round.groovy | 130 ++ .../datetimev1/test_datetimev1_calc.groovy | 74 - .../datatype_p0/datetimev2/test_exprs.groovy | 70 +- .../datatype_p0/datev1/test_datev1_calc.groovy | 80 - .../decimalv3/test_arithmetic_expressions.groovy | 118 ++ .../float/test_float_special_values.groovy | 480 +++++ .../one_level_nestedtypes_with_s3data.groovy | 4 +- .../nested_types/query/sql/nested_with_join.sql | 6 +- .../suites/demo_p0/test_lru_persist.groovy | 37 +- .../suites/doc/sql-manual/StructNullsafe.groovy | 53 + .../sql-function/test_array_function.groovy | 534 ++++++ .../sql-manual/sql-functions/date_functions.groovy | 1584 +++++++++++++++++ .../manual-partitioning.md.groovy | 3 +- .../suites/export/test_array_export.groovy | 14 +- .../parquet/test_outfile_parquet_map_type.groovy | 19 +- .../external_table_p0/hive/hive_config_test.groovy | 10 +- .../hive/test_hive_basic_type.groovy | 22 +- .../hive/test_hive_get_schema_from_table.groovy | 22 + .../external_table_p0/hive/test_hive_orc.groovy | 23 + .../hive/test_hive_query_cache.groovy | 179 +- .../hive/test_hive_topn_lazy_mat.groovy | 18 + .../action/test_iceberg_optimize_actions.groovy | 341 ++++ .../jdbc/test_jdbc_query_mysql.groovy | 24 +- .../jdbc/test_mysql_jdbc_catalog.groovy | 4 +- .../ctas/test_mysql_all_types_ctas.groovy | 4 +- .../select/test_mysql_all_types_select.groovy | 7 + .../type_test/tvf/test_mysql_all_types_tvf.groovy | 1 - .../test_iceberg_hadoop_catalog_kerberos.groovy | 1 + .../paimon/paimon_base_filesystem.groovy | 39 +- .../paimon/test_paimon_catalog.groovy | 491 ++--- .../paimon/test_paimon_deletion_vector_oss.groovy | 7 +- .../paimon/test_paimon_gcs.groovy | 84 + .../paimon/test_paimon_minio.groovy | 18 + .../external_table_p0/paimon/test_paimon_s3.groovy | 9 + .../tvf/test_hdfs_parquet_group6.groovy | 1 - .../tvf/test_tvf_topn_lazy_mat.groovy | 9 +- .../hive/test_cloud_accessible_oss.groovy | 9 +- .../paimon/test_paimon_dlf_catalog.groovy | 10 +- .../test_paimon_dlf_catalog_miss_dlf_param.groovy | 12 +- .../test_paimon_dlf_catalog_new_param.groovy | 14 +- .../paimon/test_paimon_hms_catalog.groovy | 77 +- .../hive_on_hms_and_dlf.groovy | 62 +- .../iceberg_on_hms_and_filesystem_and_dlf.groovy | 155 +- .../iceberg_rest_s3_storage_vended_test.groovy} | 78 +- .../iceberg_rest_storage_test.groovy} | 89 +- ..._writer_v2_back_pressure_fault_injection.groovy | 29 +- .../suites/function_p0/test_array_agg.groovy | 2 - .../suites/function_p0/test_math_function.groovy | 157 ++ .../test_group_commit_replay_wal.groovy | 16 + .../insert_p0/insert_group_commit_into.groovy | 12 +- .../suites/insert_p0/test_insert_docs_demo.groovy | 2 +- .../test_insert_partition_fail_url.groovy | 4 +- .../insert_p0/test_insert_strict_fail_url.groovy | 4 +- .../analyzer/test_custom_analyzer.groovy | 23 + .../test_cloud_build_index_basic.groovy | 138 ++ .../test_cloud_build_index_error.groovy | 163 ++ .../test_cloud_build_index_update.groovy | 156 ++ .../index_change/test_add_drop_index.groovy | 78 +- .../test_add_drop_index_ignore_case_column.groovy | 22 +- .../test_add_drop_index_on_table_with_mv.groovy | 23 +- .../test_add_drop_index_repeatly.groovy | 19 +- .../test_add_drop_index_with_data.groovy | 46 +- .../test_add_drop_index_with_delete_data.groovy | 26 +- .../index_change/test_index_change_1.groovy | 34 +- .../index_change/test_index_change_2.groovy | 34 +- .../index_change/test_index_change_3.groovy | 63 +- .../index_change/test_index_change_4.groovy | 34 +- .../index_change/test_index_change_5.groovy | 31 +- .../index_change/test_index_change_6.groovy | 45 +- .../test_index_change_on_new_column.groovy | 29 +- .../test_index_change_on_renamed_column.groovy | 23 +- ..._index_change_with_cumulative_compaction.groovy | 32 +- .../test_index_change_with_full_compaction.groovy | 35 +- .../index_change/test_pk_uk_index_change.groovy | 28 +- .../inverted_index_p0/load/test_spark_load.groovy | 3 + .../inverted_index_p0/test_create_index_2.groovy | 28 +- .../test_index_approx_top_k.groovy | 153 -- .../test_index_approx_top_sum.groovy | 153 -- ...st_inverted_index_storage_format_upgrade.groovy | 409 ----- .../test_pk_no_need_read_data.groovy | 13 +- .../suites/jsonb_p0/test_json_to_json.groovy | 56 +- .../load_p0/broker_load/test_array_load.groovy | 22 +- .../broker_load/test_broker_load_seq.groovy | 11 +- .../broker_load/test_broker_load_with_merge.groovy | 4 +- .../test_broker_load_with_negtive.groovy | 144 ++ .../test_broker_load_with_partition.groovy | 27 +- .../test_broker_load_with_properties.groovy | 7 +- .../broker_load/test_broker_load_with_where.groovy | 15 +- .../test_broker_load_without_filepath.groovy | 18 +- .../load_p0/broker_load/test_etl_failed.groovy | 3 +- .../broker_load/test_s3_load_with_set.groovy | 218 +++ .../load_p0/http_stream/test_http_stream.groovy | 19 + .../ingestion_load/test_ingestion_load.groovy | 28 +- .../test_ingestion_load_alter_column.groovy | 30 +- .../test_ingestion_load_alter_partition.groovy | 43 +- .../test_ingestion_load_drop_table.groovy | 21 +- .../test_ingestion_load_multi_table.groovy | 20 +- .../test_ingestion_load_with_inverted_index.groovy | 16 +- .../test_ingestion_load_with_partition.groovy | 31 +- .../load_p0/routine_load/test_black_list.groovy | 4 + .../load_p0/spark_load/test_spark_load.groovy | 2 +- .../test_csv_with_none_utf8_data.groovy | 2 +- .../load_p0/stream_load/test_json_load.groovy | 2 +- .../stream_load/test_map_load_and_function.groovy | 210 +++ .../stream_load/test_stream_load_bitmap.groovy | 54 + .../test_stream_load_err_log_limit.groovy | 4 +- .../stream_load/test_stream_load_error_url.groovy | 4 +- .../test_stream_load_with_filtered_rows.groovy | 3 +- .../stream_load/test_stream_load_with_set.groovy | 96 + .../load_p0/tvf/test_tvf_error_column.groovy | 160 ++ .../suites/load_p0/tvf/test_tvf_error_data.groovy | 202 +++ .../suites/manager/test_manager_interface_5.groovy | 6 +- .../metrics_p0/test_delete_bitmap_metrics.groovy | 16 +- .../mtmv_p0/test_hive_empty_partition_mtmv.groovy | 81 + .../mtmv_p0/test_mtmv_sql_cache_and_profile.groovy | 117 +- .../suites/mv_p0/agg_table_mv/agg_table_mv.groovy | 83 + .../nereids_function_p0/scalar_function/Map.groovy | 8 +- .../nereids_function_p0/scalar_function/U.groovy | 47 + .../cache/parse_sql_from_sql_cache.groovy | 1760 ++++++++++-------- .../cache/prepare_stmt_with_sql_cache.groovy | 57 +- .../suites/nereids_p0/datatype/test_cast.groovy | 8 +- .../suites/nereids_p0/datatype/test_map.groovy | 14 +- .../suites/nereids_p0/delta_row/delta_row.groovy | 4 +- .../expression/expression_depth_check.groovy | 6 +- .../fold_constant/fe_constant_cast_to_date.groovy | 2 + .../fe_constant_cast_to_datetime.groovy | 2 + .../fold_constant/fold_constant_by_be.groovy | 27 +- .../fold_constant_numeric_arithmatic.groovy | 2 + .../fold_constant_string_arithmatic.groovy | 43 + .../insert_into_table/insert_values.groovy | 3 +- .../initial_join_order/initial_join_order.groovy | 2 +- .../suites/nereids_p0/join/test_join_14.groovy | 24 +- .../suites/nereids_p0/join/test_join_on.groovy | 2 +- .../agg_state/test_outfile_agg_state.groovy | 19 +- .../agg_state_array/test_outfile_agg_array.groovy | 17 +- .../test_outfile_agg_state_bitmap.groovy | 17 +- .../nereids_p0/outfile/hll/test_outfile_hll.groovy | 19 +- .../test_outfile_quantile_state.groovy | 19 +- .../show/test_nereids_show_load_warnings.groovy | 30 +- .../nereids_p0/show/test_show_create_view.groovy | 8 +- .../test_aggregate_histogram.groovy | 215 --- .../test_aggregate_window_functions.groovy | 4 + .../test_encryption_function.groovy | 12 + .../string_functions/test_string_function.groovy | 53 + .../nereids_p0/stats/partitionRowCount.groovy | 2 +- .../suites/nereids_p0/stats/virtual_column.groovy | 40 + .../suites/nereids_p0/union/test_union.groovy | 13 +- .../agg_strategy/agg_strategy.groovy | 1 + .../agg_strategy/distinct_agg_rewriter.groovy | 1 + .../distinct_agg_strategy_selector.groovy | 15 +- .../agg_strategy/physical_agg_regulator.groovy | 1 + .../agg_strategy/test_variables.groovy | 1 + .../distinct_split/disitinct_split.groovy | 1 + ...aggr_distinct_through_join_one_side_cust.groovy | 2 +- ...plify_comparison_predicate_int_vs_double.groovy | 161 ++ .../infer_predicate/infer_intersect_except.groovy | 9 +- .../pull_up_predicate_literal.groovy | 18 - .../mv/agg_variety/agg_variety.groovy | 1 + .../mv/date_trunc/mv_with_date_trunc.groovy | 45 +- .../partition_mv_rewrite.groovy | 12 +- .../union_all_compensate.groovy | 528 +++--- .../union_rewrite_grace_big.groovy | 1093 ++++++------ .../nereids_rules_p0/mv/variant/variant_mv.groovy | 2 +- .../nereids_rules_p0/skew_join/skew_join.groovy | 2 +- .../suites/nereids_syntax_p0/agg_4_phase.groovy | 23 + .../suites/nereids_syntax_p0/array_function.groovy | 11 +- .../suites/nereids_syntax_p0/mask_function.groovy | 2 +- .../mv/aggregate/agg_sync_mv.groovy | 2 +- .../test_simplify_comparison.groovy | 10 +- .../mv/aggregate/agg_sync_mv.groovy | 2 +- .../test_cloud_plugin_auto_download.groovy | 121 ++ .../suites/point_query_p0/test_point_query.groovy | 2 +- .../suites/prepared_stmt_p0/prepared_stmt.groovy | 2 +- .../suites/query_p0/cache/sql_cache.groovy | 123 +- .../suites/query_p0/cast/test_cast.groovy | 26 +- .../query_p0/cast/test_complextype_to_json.groovy | 31 +- .../suites/query_p0/join/test_join.groovy | 24 +- .../operative_slots/operative_slots.groovy | 32 +- .../query_p0/operator/test_sort_operator.groovy | 2 +- .../schema_table/test_active_queries.groovy | 6 +- .../schema_table/test_sql_block_rule_status.groovy | 65 + .../test_aggregate_all_functions2.groovy | 8 +- .../test_aggregate_histogram.groovy | 5 + .../sql_functions/array_functions/sql/q02.sql | 2 +- .../array_functions/test_array_functions.groovy | 2 +- .../test_array_functions_by_literal.groovy | 10 +- .../test_array_functions_with_where.groovy | 2 +- .../sql_functions/conditional_functions/data.txt | 1 + .../test_conditional_function.groovy | 256 ++- .../conditional_functions/test_json_parse.groovy | 2 + .../conditional_functions/test_nullif.groovy | 2 +- .../datetime_functions/test_date_floor_ceil.groovy | 224 +++ .../json_function/test_query_json_array.groovy | 10 - .../json_functions/test_json_function.groovy | 124 +- .../math_functions/test_format_round.groovy | 7 +- .../sql_functions/math_functions/test_round.groovy | 17 + .../query_p0/system/test_table_properties.groovy | 3 + .../suites/query_p0/test_multiple_stmt.groovy | 50 +- .../suites/query_p0/test_row_policy.groovy | 50 + .../topn_lazy/topn_lazy_on_data_model.groovy | 16 +- .../suites/query_p0/union/test_union.groovy | 9 +- .../adjust_virtual_slot_nullable.groovy | 19 +- .../fix_array_type_and_lambda_func.groovy | 57 + .../return_in_advance_if_block_is_empty.groovy | 9 +- .../suites/s3_vault/default_vault_p2/load.groovy | 8 + .../suites/s3_vault/multi_vault_p2/load.groovy | 8 + .../suites/shape_check/clickbench/query5.groovy | 1 + .../suites/show_p0/test_show_data_warehouse.groovy | 10 +- .../suites/show_p0/test_show_processlist.groovy | 6 +- .../test_show_txn_error_msg.groovy} | 25 +- regression-test/suites/ssb_sf1_p2/load.groovy | 8 + .../suites/statistics/test_hot_value.groovy | 59 +- .../ssb_unique_load_zstd/ddl/customer_create.sql | 3 +- .../ssb_unique_load_zstd/ddl/date_create.sql | 3 +- .../ssb_unique_load_zstd/ddl/lineorder_create.sql | 3 +- .../ssb_unique_load_zstd/ddl/part_create.sql | 3 +- .../ssb_unique_load_zstd/ddl/supplier_create.sql | 3 +- .../ddl/supplier_sequence_create.sql | 3 +- .../four/load_four_step.groovy | 2 +- .../three/load_three_step.groovy | 2 +- .../suites/variant_p0/test_array_function.groovy | 2 - .../suites/variant_p0/variant_hirachinal.groovy | 13 + .../suites/variant_p0/with_index/load.groovy | 31 +- regression-test/suites/variant_p2/load.groovy | 26 +- .../sql/monotonicEvaluationSegfault.sql | 2 +- .../sql/nereids_monotonicEvaluationSegfault.sql | 2 +- run-be-ut.sh | 2 + run-cloud-ut.sh | 1 + tools/coffeebench-tools/README.md | 42 + tools/coffeebench-tools/bin/create-tables.sh | 100 ++ tools/coffeebench-tools/bin/load-data.sh | 159 ++ tools/coffeebench-tools/bin/run-queries.sh | 180 ++ .../coffeebench-tools/conf/doris-cluster.conf | 22 +- tools/coffeebench-tools/ddl/create-tables.sql | 144 ++ tools/coffeebench-tools/queries/q1.sql | 18 + tools/coffeebench-tools/queries/q10.sql | 25 + tools/coffeebench-tools/queries/q11.sql | 26 + tools/coffeebench-tools/queries/q12.sql | 30 + tools/coffeebench-tools/queries/q13.sql | 30 + tools/coffeebench-tools/queries/q14.sql | 29 + tools/coffeebench-tools/queries/q15.sql | 61 + tools/coffeebench-tools/queries/q16.sql | 27 + tools/coffeebench-tools/queries/q17.sql | 66 + tools/coffeebench-tools/queries/q2.sql | 17 + tools/coffeebench-tools/queries/q3.sql | 31 + tools/coffeebench-tools/queries/q4.sql | 20 + tools/coffeebench-tools/queries/q5.sql | 23 + tools/coffeebench-tools/queries/q6.sql | 19 + tools/coffeebench-tools/queries/q7.sql | 30 + tools/coffeebench-tools/queries/q8.sql | 25 + tools/coffeebench-tools/queries/q9.sql | 23 + 1688 files changed, 55827 insertions(+), 22375 deletions(-) diff --cc fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceClient.java index 2b0673d6453,0d0acfa11f7..aa9d34bcb5b --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceClient.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceClient.java @@@ -493,9 -493,38 +493,44 @@@ public class MetaServiceClient .createInstance(request); } + public Cloud.GetStreamingTaskCommitAttachResponse + getStreamingTaskCommitAttach(Cloud.GetStreamingTaskCommitAttachRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .getStreamingTaskCommitAttach(request); + } ++ + public Cloud.AlterInstanceResponse alterInstance(Cloud.AlterInstanceRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .alterInstance(request); + } + + public Cloud.BeginSnapshotResponse beginSnapshot(Cloud.BeginSnapshotRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .beginSnapshot(request); + } + + public Cloud.CommitSnapshotResponse commitSnapshot(Cloud.CommitSnapshotRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .commitSnapshot(request); + } + + public Cloud.AbortSnapshotResponse abortSnapshot(Cloud.AbortSnapshotRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .abortSnapshot(request); + } + + public Cloud.ListSnapshotResponse listSnapshot(Cloud.ListSnapshotRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .listSnapshot(request); + } + + public Cloud.DropSnapshotResponse dropSnapshot(Cloud.DropSnapshotRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .dropSnapshot(request); + } + + public Cloud.CloneInstanceResponse cloneInstance(Cloud.CloneInstanceRequest request) { + return blockingStub.withDeadlineAfter(Config.meta_service_brpc_timeout_ms, TimeUnit.MILLISECONDS) + .cloneInstance(request); + } } diff --cc fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceProxy.java index 8710209ff8a,ed4cd45e19a..a843b4790ce --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceProxy.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/rpc/MetaServiceProxy.java @@@ -433,8 -433,31 +433,36 @@@ public class MetaServiceProxy return w.executeRequest((client) -> client.createInstance(request)); } + public Cloud.GetStreamingTaskCommitAttachResponse getStreamingTaskCommitAttach( + Cloud.GetStreamingTaskCommitAttachRequest request) throws RpcException { + return w.executeRequest((client) -> client.getStreamingTaskCommitAttach(request)); + } ++ + public Cloud.AlterInstanceResponse alterInstance(Cloud.AlterInstanceRequest request) throws RpcException { + return w.executeRequest((client) -> client.alterInstance(request)); + } + + public Cloud.BeginSnapshotResponse beginSnapshot(Cloud.BeginSnapshotRequest request) throws RpcException { + return w.executeRequest((client) -> client.beginSnapshot(request)); + } + + public Cloud.CommitSnapshotResponse commitSnapshot(Cloud.CommitSnapshotRequest request) throws RpcException { + return w.executeRequest((client) -> client.commitSnapshot(request)); + } + + public Cloud.AbortSnapshotResponse abortSnapshot(Cloud.AbortSnapshotRequest request) throws RpcException { + return w.executeRequest((client) -> client.abortSnapshot(request)); + } + + public Cloud.ListSnapshotResponse listSnapshot(Cloud.ListSnapshotRequest request) throws RpcException { + return w.executeRequest((client) -> client.listSnapshot(request)); + } + + public Cloud.DropSnapshotResponse dropSnapshot(Cloud.DropSnapshotRequest request) throws RpcException { + return w.executeRequest((client) -> client.dropSnapshot(request)); + } + + public Cloud.CloneInstanceResponse cloneInstance(Cloud.CloneInstanceRequest request) throws RpcException { + return w.executeRequest((client) -> client.cloneInstance(request)); + } } diff --cc fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertJob.java index a4d6793b0b8,d0f6934f4e0..7658c3cb54d --- a/fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertJob.java @@@ -120,8 -112,7 +120,9 @@@ public class InsertJob extends Abstract .addColumn(new Column("TrackingUrl", ScalarType.createVarchar(200))) .addColumn(new Column("LoadStatistic", ScalarType.createVarchar(200))) .addColumn(new Column("User", ScalarType.createVarchar(50))) + // only execute type = streaming need record + .addColumn(new Column("Offset", ScalarType.createStringType())) + .addColumn(new Column("FirstErrorMsg", ScalarType.createVarchar(200))) .build(); public static final ImmutableMap<String, Integer> COLUMN_TO_INDEX; diff --cc fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertTask.java index 261ca012311,4afb51a591d..8ff292ea8c0 --- a/fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertTask.java +++ b/fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertTask.java @@@ -68,8 -68,7 +68,9 @@@ public class InsertTask extends Abstrac new Column("TrackingUrl", ScalarType.createStringType()), new Column("LoadStatistic", ScalarType.createStringType()), new Column("User", ScalarType.createStringType()), + new Column("Offset", ScalarType.createStringType()), - new Column("OtherMsg", ScalarType.createStringType())); ++ new Column("OtherMsg", ScalarType.createStringType()), + new Column("FirstErrorMsg", ScalarType.createStringType())); public static final ImmutableMap<String, Integer> COLUMN_TO_INDEX; @@@ -274,7 -275,7 +277,8 @@@ } else { trow.addToColumnValue(new TCell().setStringVal(userIdentity.getQualifiedUser())); } + trow.addToColumnValue(new TCell().setStringVal("")); + trow.addToColumnValue(new TCell().setStringVal(firstErrorMsg == null ? "" : firstErrorMsg)); return trow; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
